โบว์ลิ่งรหัสปรับเปลี่ยนได้


14

ท้าทายการใช้รหัส

เขียนโปรแกรมหรือฟังก์ชั่นที่สร้างเอาต์พุตเดียวกันไม่ว่าคุณจะจัดเรียงซอร์สโค้ดใหม่อย่างไร (เอาต์พุตไม่สามารถเป็นข้อผิดพลาดได้)


เกณฑ์การให้คะแนนPangram

  • คะแนนของคุณคือจำนวนอักขระที่ไม่ซ้ำกันในซอร์สโค้ดของคุณ

    โปรแกรมที่มีซอร์สโค้ดAJBจะมีคะแนนของ3
    โปรแกรมที่มีซอร์สโค้ดAAJจะมีคะแนนของ2
    โปรแกรมที่มีซอร์สโค้ด111จะมีคะแนนเป็น1

  • นี่คือตัวแปรง โปรแกรมที่มีคะแนนสูงสุดจะเป็นผู้ชนะ!

(เพื่อความสะดวกของคุณมีการสร้างเครื่องมือให้คะแนนอัตโนมัติที่นี่ )


กฏท้าทาย

  1. อินพุต
    โปรแกรม / ฟังก์ชั่นสามารถรับอินพุตซึ่งเป็นตัวเลือกทั้งหมด

  2. เอาท์พุทเอาท์พุท
    นี้สามารถเป็นอะไรก็ได้ที่คุณต้องการ แต่มันควรจะไม่ใช่ไม่มี, ไม่ใช่โมฆะ, ไม่ว่างเปล่าและไม่ผิดพลาด (ดังนั้นจะต้องมีอย่างน้อย 1 ไบต์)

  3. การจัดเรียงใหม่
    ไม่ว่าจะมีการจัดเรียงซอร์สโค้ดใหม่อย่างไรเอาต์พุตควรเหมือนกัน

    ตัวอย่าง:
       โปรแกรม: ABJผลhello worldเช่นเดียวกับโปรแกรม: [ AJB, JAB, JBAฯลฯ ]

นี่คือตัวแปรง โปรแกรมที่มีจำนวนอักขระสูงสุดเป็นผู้ชนะ!


1
หากปราศจากงานเฉพาะใด ๆ เพื่อให้บรรลุความท้าทายนี้ก็กว้างเกินไปในความคิดของฉัน
Dennis

2
ไม่มีความหมายอะไร?
Dennis

2
ในขณะที่การให้คะแนนแกรมของคุณมีความพยายามที่จะทำให้การทำงานของโบว์ลิ่งรหัสผมไม่แน่ใจว่าความท้าทายเหล่านี้ควรจะติดแท็กรหัสโบว์ลิ่ง กลไกการให้คะแนนนั้นค่อนข้างแตกต่างจากโบว์ลิ่งที่ควรจะเป็นดังนั้นฉันจะบอกว่าใช้การท้าทายรหัสหรือสร้างแท็กใหม่
Martin Ender

1
ฉันต้องเห็นด้วยกับมาร์ติน ตัวอย่างเช่นความท้าทายนี้ไม่ใช่รหัสกอล์ฟ ทันทีที่คุณทำคะแนนนอกเหนือจากจำนวนตัวอักษร (หรือไบต์) มันไม่ใช่ความท้าทายในการโยนรหัสอีกต่อไป
นาธานเมอร์ริลล์

3
โปรแกรม / ฟังก์ชั่นต้องจบลงหรือไม่? (เช่นฉันสามารถพิมพ์ได้0ตลอดไปหรือไม่)
MildlyMilquetoast

คำตอบ:


18

Lenguage 1,112,064 คะแนนถ้า UTF-8

โปรแกรมของฉันประกอบด้วยอักขระ UTF-8 ที่เป็นไปได้ทั้งหมด มันพิมพ์ "Hello world" และใช้พื้นที่ว่าง 1.75 * 1076 yottabytes

(ในการสร้างโปรแกรมคุณเพียงแค่สร้างไฟล์ด้วย 1749800581099557027742475730068035316237162039337933153339337933419477184361459647073663110750484 อักขระแต่ละตัวเพื่อสร้างโปรแกรมคุณเพียงแค่สร้างไฟล์ด้วยอักขระ


2
คุณครับเป็นอัจฉริยะ และรอทำไมคอมพิวเตอร์ของฉันถึงผิดพลาด? : 'P
HyperNeutrino

ฉันคิดว่า Unicode มีตัวละคร 1114112 ตัว?
MilkyWay90

14

หลายภาษา 2 คะแนน

0.

ผลิต0.0เป็นหรือ0. .0ต้องใช้การแยกจำนวนเสรีที่ตกลงกับจุดทศนิยมในจุดเริ่มต้นหรือสิ้นสุดสมมติว่า 0 สำหรับส่วนหนึ่งหรือทศนิยมที่ขาดหายไป 0000000.จะให้คะแนนเท่ากัน

สิ่งนี้ยังใช้งานได้ในภาษาต่อไปนี้ (ในบางกรณีที่มีเอาต์พุตอื่นตามที่ระบุ):

  • Python REPL
  • Javascript REPL
  • MATLAB (สร้างans = 0)
  • ระดับแปดเสียง (สร้างans = 0)
  • MATL (สร้าง0)
  • CJam
  • Retina (ผลิต0)
  • ซ้อนกัน (สร้าง0)

สำหรับงูใหญ่ฉันคิดว่านี่เป็นวิธีเดียวที่จะได้คะแนนเหนือ 1 เนื่องจากความเป็นไปได้ที่จะหมดไป

  • ตัวดำเนินการไบนารีหรือ unary ใด ๆ จะล้มเหลวเป็นอักขระตัวสุดท้าย
  • ใด ๆ ที่[](){}ต้องการการแข่งขันและจะล้มเหลวหากการปิดมาก่อน
  • แท็บหรือช่องว่างไม่สามารถเริ่มบรรทัดได้ บรรทัดใหม่ไม่สามารถใช้ใน REPL
  • A , ไม่สามารถเป็นอักขระตัวแรกได้
  • #วางไว้ครั้งแรกที่จะแสดงความคิดเห็นได้ทุกอย่างและไม่ได้ผลิตเอาท์พุท
  • การเริ่มต้น\เป็นความต่อเนื่องของบรรทัดที่ไม่ถูกต้อง
  • Backticks (Python 2) จะต้องจับคู่และสิ่งที่อยู่รอบ ๆ จะไม่มีข้อผิดพลาด
  • $, !, ?และ@ไม่สามารถใช้งานได้โดยไม่ต้องใช้ไม่ได้ตัวละครอื่น ๆ

ตัวอักษรนี้ใบหลัก_, .และคำพูด

  • ด้วยเครื่องหมายคำพูดไม่ใช่ข้อความใด ๆ ที่อยู่นอกสตริงจะทำให้เกิดข้อผิดพลาด
  • ตัวอักษรที่มีตัวเลขที่เป็นไปได้และ_ทำให้ชื่อตัวแปรซึ่งการเปลี่ยนแปลงบางอย่างไม่ได้อยู่เสมอ

.ใบและตัวเลข permuting 0ตัวเลขที่แตกต่างกันให้เป็นจำนวนที่แตกต่างกันเว้นแต่ตัวเลขทั้งหมดที่มี ดังนั้นผมคิดว่าเลขศูนย์และเป็นวิธีเดียวที่จะได้รับคะแนนดังกล่าวข้างต้น. 1แต่ฉันไม่รู้จัก Python lexer ดีดังนั้นฉันอาจจะพลาดอะไรบางอย่าง


11

CJamคะแนน 15

T U
V	LMOQR[]0q

ลองออนไลน์!

พิมพ์ทุกครั้ง0000:

  • 0 แค่ดันศูนย์
  • T, U, Vเป็นตัวแปรที่มีการ pre-initialised ให้เป็นศูนย์
  • L, M, O, Q, Rเป็นตัวแปรที่มีการ pre-initialised ไปยังรายการที่ว่างเปล่าดังนั้นพวกเขาจะไม่แสดงขึ้นในการส่งออก
  • [และ]อาจหรือไม่ห่อสิ่งต่าง ๆ ในรายการ แต่ไม่จำเป็นต้องจับคู่อย่างถูกต้องและผลลัพธ์จะถูกแบนสำหรับการพิมพ์ต่อไป
  • q อ่านอินพุตที่ว่างเปล่าดังนั้นจึงไม่แสดงในเอาต์พุตเช่นกัน
  • ตัวแยกบรรทัด linefeed พื้นที่และแท็บจะถูกละเว้น

นี่เป็นคำตอบที่ดีสำหรับภาษาอย่าง CJam! นิสัยดี
Albert Renshaw

สามารถใช้ตัวพิมพ์เล็กเพื่อrให้ได้สิ่งที่คล้ายกับตัวพิมพ์เล็กได้qหรือไม่
Albert Renshaw

1
@AlbertRenshaw คุณมีทั้งสองอย่างไม่ได้เพราะจะเกิดข้อผิดพลาดกับ EOF
Martin Ender

9

MATL , 3 5 6 คะแนน

ความคิดที่จะเพิ่มช่องว่างถูกนำมาจากคำตอบของ Bijan

lv
 T1

รหัสหรือการเรียงสับเปลี่ยนใด ๆ ของผลลัพธ์สามคนคั่นด้วยการขึ้นบรรทัดใหม่

ลองออนไลน์!

คำอธิบาย

  • ฟังก์ชันlตามค่าเริ่มต้นจะดันหมายเลขหนึ่งไปยังสแต็ก
  • ตัวอักษร1ทำเช่นเดียวกัน
  • การTผลักดันตัวอักษรtrueซึ่งแสดงเป็นหมายเลขหนึ่ง
  • ช่องว่างและบรรทัดใหม่คือตัวคั่นและที่นี่ไม่ทำอะไรเลย
  • vเชื่อมซ้อนสแต็กทั้งหมดจนกลายเป็นเวกเตอร์คอลัมน์ ตัวอย่างเช่นvหลังจากนั้นTจะต่อตัวเลขสองตัวแรกลงในคอลัมน์ (จากนั้นจะเพิ่มหมายเลขถัดไป) เริ่มต้นvจะสร้างอาร์เรย์ที่ว่างเปล่า

ในตอนท้ายของรหัสสแต็กจะปรากฏขึ้นโดยปริยายด้วยกฎต่อไปนี้:

  • แต่ละองค์ประกอบหรืออาร์เรย์ในสแต็กจะแสดงบนบรรทัดที่แตกต่างกัน
  • เวกเตอร์คอลัมน์จะแสดงพร้อมกับองค์ประกอบแต่ละรายการในบรรทัดที่แตกต่างกัน
  • อาร์เรย์ที่ว่างเปล่าทำให้ไม่มีเอาต์พุต

ดังนั้นการเรียงสับเปลี่ยนของอักขระอินพุตจึงสร้าง1สามครั้งในบรรทัดที่ต่างกัน


คำอธิบาย? ฉันอยากรู้ว่ามันทำงานอย่างไร
สหาย SparklePony

@Sparkle เพิ่มคำอธิบาย
Luis Mendo

ดี! นอกจากนี้ยังต้องการที่จะทราบว่าฉันมีข้อความนี้ในการท้าทายRemoving any part of the source code however should cause that specific output to not be produced.ในเวลาที่คุณโพสต์ฉันไม่ได้ตั้งใจที่จะเพิ่มมันและมันถูกลบออก บางทีนั่นอาจช่วยให้คุณเพิ่มคะแนนหน่อยได้
Albert Renshaw

1
@AlbertRenshaw ขอบคุณสำหรับ heads-up! อีกสองคะแนน
Luis Mendo

ฉันกำลังกล่าวหาคุณว่าขโมยความคิดของฉัน มันไม่ใช่ปัญหาเลย
Bijan

6

เยลลี่คะแนน53 101

¶ ¤$¥&+ABDFHNPQSUVX^_aborv|®²×ȧȯḄḅḌḞḢḤḷṀṂṚṛṠṢṪẠạị«»()kquƁƇƊƑƘⱮƝƤƬƲȤɓɗƒɦƙɱɲƥʠɼʂƭʋȥẸẈẒẎŻẹḥḳṇọụṿẉỵẓḋėġṅẏ

โดยใช้ตัวละครเดียวที่เป็นส่วนหนึ่งของวุ้นของรหัสหน้า

เจลลี่มีอินพุตโดยนัย0และครึ่งแรก (จนถึงและรวมạị«») ของสตริงของโค้ดข้างต้นประกอบด้วยส่วนใหญ่ของ monadic (ตัวพิมพ์ใหญ่) และ dyadic (ตัวพิมพ์เล็กและสัญลักษณ์) อะตอมที่เมื่อได้รับศูนย์หรือรายการที่มีเพียงหนึ่งศูนย์ ( หรือสองอินพุตดังกล่าวในกรณีของ dyads) คืนค่าศูนย์หรือรายการที่มีเพียงหนึ่งศูนย์

ข้อยกเว้นคือ:

  • ช่องว่าง: มันถูกละเว้น (แม้ว่าจะอยู่ในหน้ารหัส)

  • pilcrow แยกการเชื่อมโยง (เช่นเดียวกับตัวดึงข้อมูลบรรทัด - แต่นั่นคือไบต์เดียวกันจริง ๆ ) แต่ไม่มีไบต์อื่นจะอ้างอิงรหัสก่อนหน้านี้อย่างไรก็ตาม

  • แมลงปีกแข็ง, ¤สั่งให้ parser จัดการทุกอย่างให้มันเริ่มต้นที่ nilad (หรือค่าคงที่) เป็นค่าคงที่ (และทำงานเป็นอะตอมแรก)

  • Dollar, $สั่งให้ parser ปฏิบัติต่อทั้งสองลิงก์ที่เหลือเป็น monad (และค่อนข้างน่าแปลกใจที่ทำงานเป็นอะตอมแรก)

  • เยนนั้น¥แนะนำให้ parser ปฏิบัติเช่นเดียวกันกับลิงก์สองตัวที่เหลืออยู่ในรูปแบบ dyad

  • แนะนำให้®เรียกคืนค่าของรีจิสตรีในขั้นต้น0(เป็นลิขสิทธิ์คู่©, แบ่งเมื่อใช้เป็นอะตอมแรกมากเนื่องจาก arity พบได้จาก arity ของลิงก์ที่เหลือซึ่งยังไม่ได้ตั้งค่า)

รหัสจากวงเล็บ, (และ)และบนอยู่ในขณะนี้ไม่ได้ใช้จุดรหัสเหล่านี้ทุกคนได้รับแยกกันและแต่ละทำให้เกิดห่วงโซ่ใหม่ (เหมือนจะขึ้นบรรทัดใหม่แม้ว่าพวกเขาจะไม่ได้มีผลต่อการสร้างการเชื่อมโยง callable เช่นการขึ้นบรรทัดใหม่ แต่ ไม่มีปัญหานี่ไม่มีอะไรพยายาม)


1
คุณสามารถเพิ่มตัวละครทั้งหมดนอกหน้ารหัสได้ฟรีเนื่องจากล่ามวางรหัสไว้ก่อนที่จะประมวลผลรหัส ฉันยังไม่รู้ด้วยซ้ำว่าไม่มีความหมายใด ๆ
Dennis

1
ฉันคิดว่าวิญญาณของความท้าทายน่าจะเป็นตัวละครที่ควรจะเป็นในหน้า ฉันถามเกี่ยวกับที่ไม่มีศูนย์และการตอบสนองคือการระบุผลลัพธ์ขั้นต่ำ 1 ไบต์
Jonathan Allan

@Dennis คิดอย่างไรเกี่ยวกับคำศัพท์ที่ถูกต้องสำหรับสิ่งที่เกิดขึ้นกับการแยกที่วงเล็บ?
Jonathan Allan

อักขระที่ไม่ได้ใช้ทั้งหมดจะเริ่มลิงค์ใหม่เช่นเดียวกับบรรทัดใหม่
Dennis

1
ลองเรียกพวกเขาว่าพฤติกรรมที่ไม่ได้กำหนด : P
Dennis

4

TI-Basic (83 ซีรี่ส์) 93 คะแนน (99 บน TI-84 Plus)

0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZθnπeiAnsrandgetKeyZXsclZYsclXsclYsclXminXmaxYminYmaxTminTmaxθminθmaxZXminZXmaxZYminZYmaxZθminZθmaxZTminZTmaxTblStartPlotStartZPlotStartnMaxZnMaxnMinZnMinΔTblTstepθstepZTstepZθstepΔXΔYXFactYFactTblInputNI%PVPMTFVP/YC/YPlotStepZPlotStepXresZXresTraceStep

ทั้งหมดตัวเลขทั้งหมดตัวแปรหนึ่งไบต์ (รวมθและnตัวแปรอิสระที่ใช้สำหรับกราฟขั้วโลกและตามลำดับ) คงเธ, Eและผมบางส่วนไม่ค่อนข้างตัวแปร ( Ans, randและgetKey) และ 59 ที่แตกต่างกันตัวแปรหน้าต่าง (ทุกตัวที่รับประกันว่าจะถูกกำหนด)

การคูณโดยนัยรับประกันได้ว่าผลลัพธ์จะเป็น 0 เมื่อเราดำเนินการตามลำดับใด ๆ หากสิ่งนี้ทำงานบนเครื่องคิดเลขใหม่ตัวแปรทั้งหมดจะเป็น 0 แม้ว่าจะไม่ใช่getKeyจะเป็น 0 เพราะไม่มีเวลากดปุ่มก่อนที่โปรแกรมจะส่งคืนค่า

บน TI-84 Plus หรือสูงกว่าเราจะได้รับ 6 คะแนนมากขึ้นโดยการเพิ่มสัญญาณgetDate, getTime, startTmr, getDtFmt, ,getTmFmt isClockOnผลลัพธ์จะเป็น{0 0 0}เพราะgetDateและgetTimeส่งคืนรายการความยาว 3 และการกระจายการคูณโดยนัยเหนือองค์ประกอบ

ฉันคิดว่าสิ่งเหล่านี้เป็นโทเค็นที่เป็นไปได้ทั้งหมดที่ใช้: คำสั่งจริงใด ๆ คือคำนำหน้า, infix หรือ postfix (หมายถึงพวกเขาจะไม่ทำงานที่จุดเริ่มต้นหรือจุดสิ้นสุดของโปรแกรม) และตัวแปรอื่น ๆ อาจไม่ได้กำหนด ใช้)


นี่คือฉลาด ไม่น่าประทับใจอย่างยิ่งฮ่าฮ่า แต่ฉลาดจริงๆ! +1
Albert Renshaw

3

(ไม่ใช่การแข่งขัน) Brainf-ck, 63 ไบต์

ฉันไม่รู้ว่านี่เป็นการโกงหรือไม่ แต่ ...

.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789

จุดพิมพ์อักขระปัจจุบัน (0x00) และอักขระที่เหลือไม่ทำอะไรเลย เทคนิคนี้สามารถขยายได้ไม่ จำกัด ดังนั้นโปรดแจ้งให้เราทราบหากนี่ถือว่าเป็นการโกง


ฉันจะพิจารณาว่าไม่มีศูนย์
อัลเบิร์ต Renshaw

โอ้ฉันควรลบคำตอบของฉันแล้วหรือทำเครื่องหมายว่าไม่ใช่การแข่งขัน?
brianush1

1
มี 97 ตัวอักษรที่พิมพ์ได้ 7 ตัวคุณไม่สามารถใช้ (8-1) ได้ดังนั้นฉันจะบอกว่า 90
Bijan

@ brianush1 คุณสามารถปล่อยให้มันเป็นแบบไม่แข่งขันเพื่อให้คนอื่นเห็น ฉันจะแก้ไขคำถามอีกเล็กน้อยเพื่ออธิบายผลลัพธ์ต้องมีอย่างน้อย 1 ไบต์
Albert Renshaw

15
@AlbertRenshaw (ขออภัยสำหรับความคิดเห็นเหล่านี้ทั้งหมด) ถ้าผลลัพธ์จะต้องมี 1 ไบต์ดังนั้นอักขระ NULL ควรนับเนื่องจากเป็นไบต์แม้ว่าจะมีค่า 0
brianush1

3

Haskell 3 คะแนน

+ 1

ไม่ว่าจะจัดเรียงรหัสนี้ใหม่จะส่งคืนฟังก์ชันซึ่งเพิ่มการป้อนข้อมูลเสมอ ตัวอย่างของการใช้งานใน repl:

>(+ 1) 1
2
>(1+ ) 1  
2
>( +1) 1
2

2

√ฉัน¥®ÏØ¿ , 128,234 (?) จุด

ฉันมาที่ 128,234 ด้วยความช่วยเหลือจาก @DestructibleLemon โปรแกรมนี้ใช้ตัวอักษร Unicode ทั้งหมด (128237) ยกเว้นo, และO łผิดปกติสองคำสั่งคือคำสั่งเอาต์พุต

แต่แน่นอนว่าไม่มีภาษาใดสามารถใช้อักขระเหล่านั้นได้ทั้งหมดใช่ไหม ภาษานี้แค่ละเว้นคำสั่งที่ไม่รู้จัก แก้ไขปัญหา.

ภาษานี้จะส่งออกข้อมูลต่อไปนี้ตามค่าเริ่มต้น:

===== OUTPUT =====



==================

ซึ่งไม่เป็นศูนย์ไม่เป็นโมฆะไม่ว่างเปล่าและไม่มีข้อผิดพลาด

หมายเหตุ: หากสิ่งนี้ละเมิดกฎที่ไม่ได้เขียนไว้แจ้งให้ฉันทราบในความคิดเห็นและฉันจะเปลี่ยนแปลงสิ่งนี้ หากคุณรู้ว่าคะแนนของฉัน (สมมติว่าได้รับอนุญาต) ก็โพสต์ในความคิดเห็นด้วย


ใช้ชุดอักขระใด utf 8? UTF-16? มันใช้ยูนิโค้ดทั้งหมดหรือไม่?
เลมอนที่ทำลายได้

@DestructibleLemon ดูที่หน้า github ดูเหมือนว่าจะใช้ "CP-1252" สำหรับการเข้ารหัส
brianush1

@DestructibleLemon คำสั่งทั้งหมดอยู่ใน CP-1252 (Windows-1252) แต่จะยอมรับอักขระ Unicode ใด ๆ เป็นไวยากรณ์ที่ถูกต้อง
caird coinheringaahing

เห็นได้ชัดว่ามีตัวอักษร unicode 128,237 ตัวดังนั้นคุณจะมี 128,234 ตัว? en.wikipedia.org/wiki/Unicode#cite_note-24
เลมอนที่ถูกทำลายได้

ตามคำตอบอื่น ๆ เห็นได้ชัดว่ามี 1,112,064 Unicode ดังนั้นฉันไม่แน่ใจอีกต่อไปจริงๆ
Destructible Lemon


1

/// , 1 2 คะแนน

\_

ลองออนไลน์!

ฉันไม่มีเงื่อนงำวิธีการทำในภาษาทัวริงที่สมบูรณ์อื่น ๆ แน่นอนว่ามี HQ9 แต่นั่นก็รู้สึกโกง

1 ไบต์ต้องขอบคุณ @Martin Ender


นี่ควรเป็นสองจุดไม่ใช่ไบต์
Lemon Lemon ที่ถูกทำลาย

@DestructibleLemon ขออภัยการจัดรูปแบบ TIO
สหาย SparklePony

1

จุด , 1,114,111 ตัวอักษร (ถ้าใช้ Unicode)

<87 dots here> Every Unicode character except NUL and . here

คำอธิบาย:

1                                           leading binary number
1010                                        010 increments the value under the pointer
1010111                                     111 prints out chr(1)

ดังนั้นสตริงไบนารี่ที่ได้คือ1010111ซึ่งแปลงเป็นทศนิยมคือ 87 ดังนั้นเราต้องมี 87 จุด

ตัวละครอื่น ๆ ทุกตัวเป็นคอมเม้นท์ดังนั้นเราจึงใช้ตัวละครทุกตัวยกเว้น NUL เพราะ Python3 หยุดอ่านไฟล์และจุดเพราะจุดไม่ใช่ความคิดเห็น


0

โหมโรงคะแนน 1,112,051

(เมื่อพิจารณาเฉพาะ ASCII ที่พิมพ์ได้[\t\n -~]คะแนนคือ84หากเราพิจารณารหัส Unicode ทั้งหมดคะแนนจะเป็น1,112,051 )

!
" #$    %&'+,-./0:;<=>@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~

(จากนั้นจึงเพิ่มอักขระทั้งหมดต่อท้าย[\u{7f}-\u{10ffff}])

0พิมพ์เสมอ


โหมโรงเป็นภาษาที่ใช้สแต็กแบบขนานโดยที่สแต็กถูกเติมด้วยจำนวนอนันต์ 0s

  • +: ป๊อปสองค่า (เสมอ 0), เพิ่ม (0), และกดเพื่อสแต็ก
  • -: ป๊อปสองค่า (เสมอ 0) ลบออก (0) และกดเพื่อสแต็ก
  • #: แสดงค่าและละทิ้งมัน
  • !: แสดงค่าและเอาท์พุทเป็นตัวเลข (เสมอ 0) (ข้อมูลจำเพาะระบุว่า "ตัวอักษร" แต่ล่ามบอกว่า "หมายเลข"; ทั้งสองกรณีพิมพ์ไบต์)
  • 0: กด 0
  • ^, v, V: Pushes ค่าด้านบนของโปรแกรมก่อนหน้า / คู่ขนานถัดไป ( "เสียง") แต่สแต็คของทุกคน "เสียง" ที่เต็มไปด้วย 0 ดังนั้นพวกเขาจึงมักจะผลักดัน 0
  • ตัวละครอื่น ๆ : ไม่มี -op

ดังนั้นเราจึงต้องหลีกเลี่ยงอักขระ 13 ตัวเท่านั้น:

  • (, ): วงเล็บที่ไม่ได้จับคู่จะทำให้เกิดข้อผิดพลาด
  • 1- 9: เราต้องการส่งออก 0 เท่านั้น
  • ?: เราไม่ต้องการป้อนข้อมูลอะไรเลย
  • **สาเหตุที่มีความซับซ้อนมากตรวจสอบความสอดคล้องรหัสก่อนและหลังบรรทัดประกอบด้วยคนเดียว *ดังนั้นเราจึงจำเป็นที่จะต้องลบบรรทัดใหม่หรือลบ การดำเนินการอ้างอิงใช้งูหลาม 2 .readline()ซึ่งเป็น "บรรทัดใหม่" อาจหมายถึงหรือ\r ดังนั้นจึงเป็นการดีที่จะเพียงแค่ลบ\n*

0

Deadfishคะแนน 86

o.ABCDEFGHIJKLMNOPQRSTUVWXYZabcefghjklmnpqrtuvwxyz?!|[]_-();'"*&^$#@!1234567890+=<>,/\:

หากผิดกฎหมายก็มีเช่นกัน

o

(คะแนน 1)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.