มือซ้ายกับมือขวา - ผู้ท้าทายพิมพ์ดีด


32

งานของคุณคือพิทแต่ละด้านของคีย์บอร์ดต่อกันและสร้างสองโปรแกรมในภาษาเดียวกันโดยใช้เพียงปุ่มเดียวทางด้านซ้ายของคีย์บอร์ดมาตรฐานที่เอาต์พุตPollinium milk; plump pumpkin; lollipop?และอีกอันใช้คีย์ทางด้านขวาที่เอาต์พุตWeatherheaded sweetheart haberdasheress!.

กฎระเบียบ

คีย์ที่แน่นอนที่ได้รับอนุญาตสำหรับโปรแกรมทางซ้ายคือ:

123456!@#$%^QWERTYqwertyasdfghASDFGH`zxcvb~ZXCVB

และสำหรับโปรแกรมทางขวา:

7890-=&*()_+uiop[]UIOP{}jkl;'\JKL:"|nm,./NM<>?

มีคีย์ฟรีสี่ปุ่มEsc( \x1b), Tab( \x09), Space( \x20) และEnter( \x0aและ / หรือ\x0d) ซึ่งสามารถใช้ในการแก้ปัญหาอย่างใดอย่างหนึ่งหรือทั้งสองอย่าง

คะแนนของคุณจะนับรวมเป็นไบต์สำหรับทั้งสองโปรแกรม ขณะที่ฉันใช้คำศัพท์programนั้นการส่งของคุณอาจเป็นโปรแกรมเต็มรูปแบบหรือฟังก์ชั่นตามปกติและทั้งคู่อาจเป็นประเภทที่แตกต่างกัน (เช่นโปรแกรมเต็มรูปแบบหนึ่งโปรแกรมและหนึ่งฟังก์ชัน)

ผลลัพธ์ของคุณจะต้องมีข้อความที่ต้องการจำนวนของช่องว่างนำหน้าและต่อท้ายนั้นใช้ได้ตราบเท่าที่ข้อความที่แน่นอนปรากฏอยู่ภายใน

ช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม

ทางออกที่สั้นที่สุดในแต่ละภาษาชนะ


6
ทำไมมือซ้าย
tsh

1
@tsh ฉันต้องการแยกแป้นพิมพ์ 6/6 (หรือใกล้เคียงกับที่เป็นไปได้มากที่สุด) เพียงแค่พยายามเก็บสัญลักษณ์จำนวนมากสำหรับ "มือ" แต่ละอัน
Dom Hastings

8
// บางทีฉันควรจะเรียนรู้ช่องว่างและกลับมาในภายหลัง ...
TSH

@tsh ฉันเดาคำตอบของช่องว่างแน่นอน! ไม่แน่ใจว่าการแข่งขันจะเป็นอย่างไร! บางทีฉันน่าจะพูดถึงเรื่องนี้ช้าไปแล้ว!
Dom Hastings

ตกลงหรือไม่หากโปรแกรมมีเอาต์พุตอื่น (ไม่ใช่ช่องว่าง) ด้วยเช่นกันตราบใดที่มีข้อความที่ร้องขอ
Grzegorz Oledzki

คำตอบ:


12

Perl 5 , 261 = 88 + 173 ไบต์

นี่คือตัวอย่างที่ "ตัวเลือกภาษาไม่นับ" เป็นปัญหา วิธีการแก้ปัญหาด้าน rigt ใช้-pด้านซ้ายไม่ได้ ดังนั้นจะนับเป็นภาษาเดียวกันหรือไม่? และตัวเลือกควรมาจากชุดอักขระซ้าย / ขวาหรือไม่

ซ้าย 88

ใช้-M5.10.0(หรือ-Eจาก commandline) เพื่อเปิดใช้งานsayอีกครั้งโต้แย้งถ้าตัวเลือกนี้ควรนับเป็นรหัสและควรมาจากด้านซ้ายหรือถ้ามันอยู่ภายใต้ "ตัวเลือกในการตั้งค่ารุ่นภาษาไม่นับ"

say eYYYYZYEYWYYYYYWQYEYQWQEYQYYZYWYYYYYQYQW^q%565504004w4052bw!504!w!04!204bw56550!6!h%

ลองออนไลน์!

ขวา 173

เรียกใช้ด้วย-pตัวเลือก (ซึ่งประกอบด้วยอักขระที่ถูกต้องด้วย)

}{*_=\(uuuuuuuuuuuuuiuuuuuuuuuuiuuuuuuuuuuuuuui&Uiipjipjiijij0puiipjiipp0jijipjipjipipp7|Ouiujujjuiuuu0kouuujuiju0jijujuikjujukk7&"7oulio7iouloli77ooliou7liiu7o7lu7io7o77i")

สิ่งนี้สามารถปรับปรุงได้อย่างแน่นอน แต่สำหรับตอนนี้มันยากพอที่จะทำให้บางสิ่งบางอย่างทำงานได้ ไม่ได้มีการเข้าถึงprint, say, $_และsub{}ทำให้การส่งออกหากิน

ลองออนไลน์!


ไม่ต้องกังวลกับธงเลยฉันดีใจที่มันใช้ได้ วิธีการแก้ปัญหาที่สั้นมากกว่าสิ่งที่ฉันได้รับการซ่อมตามที่ผมเรียกว่าevalผ่าน&{(u&I.._)[9-7].O.(P|'"'&_).("U::u"&"o::o").("&"|p).(uo&il).(u&i.._)[9-8].("{|o"&"}uu").(j..u)[9]}!
Dom Hastings

12

ช่องว่าง , 1175 1143 655 645 638 632 639 578 (293 + 285) ไบต์

ต้องทำ .. ; p
สามารถเล่นกอล์ฟได้อย่างแน่นอนด้วยการเติมสแต็กที่กลับด้านและพิมพ์ทั้งหมดในตอนท้ายของการวนรอบบางอย่าง แต่นี่เป็นเพียงโปรแกรม Whitespace ที่สองของฉันเลย ..แก้ไข: Golfed

+7 ไบต์เพราะฉันสะกดผิดpumpkinว่าpumkin.. (ขอบคุณที่สังเกต, @ fəˈnɛtɪk .)

เพิ่มตัวอักษรS(ช่องว่าง), T(แท็บ) และN(บรรทัดใหม่) เป็นการเน้นเท่านั้น
[..._some_action]เพิ่มเป็นคำอธิบายเท่านั้น

ด้านซ้ายPollinium milk; plump pumpkin; lollipop?:

[S S T  T   S T T   T   T   N
_Push_-47_?][S S S T    S N
_Push_2_p][S S S T  N
_Push_1_o][S T  S S T   N
_Copy_1st_p][S S T  T   S T N
_Push_-5_i][S S T   T   S N
_Push_-2_l][S N
S _Duplicate_-2_l][S S S T  N
_Push_1_o][S T  S S T   N
_Copy_1st_l][S S T  T   S S T   T   T   S N
_Push_-78_space][S S T  T   T   S S T   T   N
_Push_-51_;][S S S N
_Push_0_n][S S T    T   S T N
_Push_-5_i][S S T   T   T   N
_Push_-3_k][S S S T S N
_Push_2_p][S S T    T   N
_Push_-1_m][S S S T T   T   N
_Push_7_u][S S S T  S N
_Push_2_p][S S T    T   S S T   T   T   S N
_Push_-78_space][S S S T    S N
_Push_2_p][S S T    T   N
_Push_-1_m][S S S T T   T   N
_Push_7_u][S S T    T   S N
_Push_-2_l][S S S T S N
_Push_2_p][S S T    T   S S T   T   T   S N
_Push_-78_space][S S T  T   T   S S T   T   N
_Push_-51_;][S S T  T   T   N
_Push_-3_k][S S T   T   S N
_Push_-2_l][S S T   T   S T N
_Push_-5_i][S S T   T   N
_Push_-1_m][S S T   T   S S T   T   T   S N
_Push_-78_space][S S T  T   N
_Push_-1_m][S S S T T   T   N
_Push_7_u][S S T    T   S T N
_Push_-5_i][S S S N
_Push_0_n][S S T    T   S T N
_Push_-5_i][S S T   T   S N
_Push_-2_l][S N
S _Duplicate_-2_l][S S S T  N
_Push_1_o][S S T    T   T   T   T   S N
_Push_-30_P][N
S S N
_Create_Label_LOOP][S S S T T   S T T   T   S N
_Push_110][T    S S S _Add][T   N
S S _Print_as_char][N
S N
N
_Jump_to_Label_LOOP]

ลองใช้ออนไลน์ (ด้วยพื้นที่ว่างเปล่าแท็บและบรรทัดใหม่เท่านั้น)

ด้านขวาWeatherheaded sweetheart haberdasheress!:

[S S T  T   S S S T S S N
_Push_-68_!][S S S T    T   T   S N
_Push_14_s][S N
S _Duplicate_14_s][S S S N
_Push_0_e][S S S T  T   S T N
_Push_13_r][S S S N
_Push_0_e][S S S T  T   N
_Push_3_h][S S S T  T   T   S N
_Push_14_s][S S T   T   S S N
_Push_-4_a][S S T   T   N
_Push_-1_d][S S S T T   S T N
_Push_13_r][S S S N
_Push_0_e][S S T    T   T   N
_Push_-3_b][S S T   T   S S N
_Push_-4_a][S S S T T   N
_Push_3_h][S S T    T   S S S T S T N
_Push_-69_space][S S S T    T   T   T   N
_Push_15_t][S S S T T   S T N
_Push_13_r][S S T   T   S S N
_Push_-4_a][S S S N
_Push_0_e][S S S T  T   N
_Push_3_h][S S S T  T   T   T   N
_Push_15_t][S S S N
_Push_0_e][S N
S _Duplicate_0_e][S S S T   S S T   S N
_Push_18_w][S S S T T   T   S N
_Push_14_s][S S T   T   S S S T S T N
_Push_-69_space][S S T  T   N
_Push_-1_d][S S S N
_Push_0_e][S S T    T   N
_Push_-1_d][S S T   T   S S N
_Push_-4_a][S S S N
_Push_0_e][S S S T  T   N
_Push_3_h][S S S T  T   S T N
_Push_13_r][S S S N
_Push_0_e][S S S T  T   N
_Push_3_h][S S S T  T   T   T   N
_Push_15_t][S S T   T   S S N
_Push_-4_a][S S S N
_Push_0_e][S S T    T   T   T   S N
_Push_-14_W][N
S S N
_Create_Label_LOOP][S S S T T   S S T   S T N
_Push_101][T    S S S _Add][T   N
S S _Print_as_char][N
S N
N
_Jump_to_Label_LOOP]

ลองใช้ออนไลน์ (ด้วยพื้นที่ว่างเปล่าแท็บและบรรทัดใหม่เท่านั้น)


คำอธิบาย:

มันสร้างสแต็กที่ตรงกันข้าม การกดตัวเลขทำได้ดังนี้:

  • S ที่จุดเริ่มต้น: เปิดใช้งานการจัดการกองซ้อน
  • S: กดหมายเลขใดต่อไปนี้เป็นสแต็ก
  • S/ T: ลงชื่อบิตที่Sเป็นบวกและTลบ
  • บางอันTและSตามด้วยN: ใส่ตัวเลขเป็นเลขฐานสองลงในสแต็ก ( T=1และS=0)

จากนั้นมันจะวนซ้ำสแต็กที่กลับด้านและพิมพ์ทุกอย่างเป็นอักขระ มันเป็นดังนี้:

  1. กด 0 ( SSSN)
  2. กดตัวเลขทั้งหมดเพื่อระบุตัวอักษรที่กลับด้านตามที่อธิบายข้างต้น
  3. สร้างLabel_0( NSSN)
    1. ทำซ้ำส่วนบนสุดของสแต็ก ( SNS)
    2. ถ้าค่านี้เป็น 0: ข้ามไปที่Label_1( NTSTN)
    3. อื่น ๆ : แสดงและพิมพ์ส่วนบนของสแต็กเป็นอักขระ ( TNSS)
    4. ข้ามไปที่Label_0( NSNN)
  4. สร้างLabel_1( NSSTN)

ด้านบนนี้เป็นเค้าโครงเริ่มต้นสำหรับทั้งสองโปรแกรม นี่คือบันทึกการเปลี่ยนแปลงสำหรับโครงร่างเริ่มต้นนี้ซึ่งทำให้จำนวนไบต์ลดลงยิ่งขึ้นไปอีก:

  1. ตัวเลขทั้งหมดจะถูกลดลงด้วยจำนวนเดียวกัน ( ในโปรแกรมแรกและในวินาที) เพื่อลดเลขฐานสองที่ใช้สำหรับตัวเลขที่ต่ำกว่าตอนนี้และระหว่างขั้นตอน 3.2 และ 3.3 จะเพิ่มสองขั้นตอนย่อยต่อไปนี้:100 110102 101

    • กด 110 ( SSSTTSTTTSN) ในโปรแกรม 1 หรือ 101 ( SSSTTSSTSTN) ในโปรแกรม 2
    • แสดงและเพิ่มค่าสองอันดับแรกของสแต็กด้วยกันและผลลัพธ์คือด้านบนใหม่ของสแต็ก ( TSSS)
  2. ผมยังใช้SNSในบางกรณีที่จะซ้ำกันด้านบนของสแต็คซึ่งจะใช้ในการกอล์ฟll, ll, และeess

  3. นอกจากนี้ขั้นตอนที่ 4 (สร้างLabel_1) ถูกลบอย่างสมบูรณ์ จะออกโดยมีข้อผิดพลาด แต่จะยังส่งออกทุกอย่างถูกต้อง ( ซึ่งได้รับอนุญาตตาม meta )

  4. เป็นไปได้ที่จะคัดลอกค่าn'th จากด้านบนของสแต็ก (พร้อมSTS+ 0-indexed n) ซึ่งสั้นกว่าการสร้างหมายเลขใหม่ในบางกรณี
    ในโปรแกรมแรกที่ฉันทำสิ่งนี้เพื่อ: วินาทีpในpop( STSSTN(คัดลอกที่ 1) สั้นกว่าSSSTTSSN(สร้างหมายเลขสำหรับ 'p')) ที่สองlในlol( STSSTN(คัดลอกที่ 1) สั้นกว่าSSSTSSSN(สร้างหมายเลขสำหรับ 'l' )) ที่สองpในp p( STSSTN(คัดลอกที่ 1) จะสั้นกว่าSSSTTSSN(สร้างจำนวนสำหรับ 'p')) ที่สองpในpumlp( STSSTTN(คัดลอกที่ 3) จะสั้นกว่าSSSTTSSN(สร้างจำนวนสำหรับ 'p')) ที่สองpในpmup( STSSTSN( สำเนาที่ 2) สั้นกว่าSSSTTSSN(สร้างหมายเลขสำหรับ 'p')) วินาทีmในm m( STSSTN(คัดลอกที่ 1) จะสั้นกว่าSSSTSSTN(สร้างหมายเลขสำหรับ 'm')) ที่สองiในini( STSSTN(คัดลอกที่ 1) จะสั้นกว่าSSSTSTN(สร้างหมายเลขสำหรับ 'i') )
    ในโปรแกรมที่สองสิ่งนี้ไม่ได้ทำเพื่อสิ่งใด ระยะห่างระหว่างบางอันค่อนข้างสั้นเช่นereหรือdedแต่การสร้างหมายเลขสำหรับ 'e' ( SSTTN) หรือ 'd' ( SSTTSN) นั้นทั้งสั้นหรือยาวเท่ากับสำเนาที่ 1 ( STSSTN) ดังนั้นฉันจึงไม่สามารถใช้เคล็ดลับนี้ใน โปรแกรมที่สองเพื่อบันทึกไบต์ หมายเหตุ: หลังจากขั้นตอนที่ 7 กอล์ฟไม่ได้นำไปใช้ทั้งหมดเหล่านี้อีกต่อไป

  5. ในทั้งสองโปรแกรมฉันได้เปลี่ยนขั้นตอนที่ 1 ของลูปจากSSSN(Push 0) เป็นSSN(Push error_value) และลบขั้นตอน 3.1 ( SNSซ้ำ) และ 3.2 ( NTSTNถ้า 0: Exit) ตอนนี้มันจะออกโดยมีข้อผิดพลาดที่SSNเป็นค่าที่ไม่รู้จักทันทีที่มันพยายามเข้าถึง

  6. ลบSSN(error_value) ทั้งหมดในทั้งสองโปรแกรม ตอนนี้มันจะหยุดด้วยข้อผิดพลาด " ไม่สามารถทำ Infix Plus " เมื่อมันพยายามที่จะทำฟังก์ชั่นเพิ่มโดยไม่มีอะไรเหลืออยู่บนสแต็ค

  7. เปลี่ยนค่าคงที่ของ100และ102เป็น110และ101ตามลำดับ ที่นี่โปรแกรม Java ที่ใช้ในการสร้าง110ค่าคงที่; และนี่คือโปรแกรม Java ที่ใช้สร้าง101ค่าคงที่ โปรดทราบว่าขณะนี้มีการคัดลอกที่ใช้น้อยกว่าที่อธิบายไว้ในจุดที่ 4 ด้านบนเนื่องจากค่าใหม่มีจำนวนน้อยกว่าสำเนาดังนั้นการกดอีกครั้งจะสั้นลง


สิ่งที่ ST เพียงแค่กดตัวเลขเป็นเลขฐานสองที่มีช่องว่างเป็น 0 แท็บเป็น 1 เอาท์พุทเป็น TNSS ดังนั้นคุณมีช่องว่างสองพิเศษที่จุดเริ่มต้นของแต่ละโปรแกรม นอกจากนี้ยังอาจบันทึกไบต์เพื่อทำซ้ำแล้วเพิ่ม / ลบสำหรับแต่ละอักขระและวนรอบค่าที่ส่วนท้าย
Jo King

1
คุณทำผิดรูปฟักทอง
fəˈnɛtɪk

@ fəˈnɛtɪk อ๊ะฮ่าฮ่า .. ตอนนี้ควรได้รับการแก้ไขแล้วขอบคุณที่สังเกต
Kevin Cruijssen

4

Lenguage หลายไบต์

ด้านซ้ายมือเป็น 65721878296123796350462639500449228197646164622176218219262161264085219054330862921130017235140285847450697804123168755463678390611789188813352602373675420824698785508893489685489807676509031860196742608788337382365939621331808044899882497347443262020486908162559376082705672994569868 ซ้ำของaตัวละครซึ่งเทียบเท่ากับโปรแกรม brainfuck ต่อไปนี้:

-[--->+<]>-----.[--->+<]>-.---..---.+++++.-----.++++++++++++.--------.[->+++++<]>-.+[----->+<]>.----.+++.-.--[->+++<]>.+[-->+<]>++.[-->+++++++<]>.----.+++++++++.--------.+++.[------->++<]>.[-->+++++++<]>.+++++.--------.+++.-----.--.+++++.[-->+<]>++++.+[-->+<]>++.++[--->++<]>.+++.---..---.+++++++.-.+.[--->++++<]>-.

ลองออนไลน์!

ด้านขวามือเป็น 636605880289050800007960838028215177632402180834140124157618258152393860687206680356620669530585999501769442445842690365640523699585001167392310123764258380235064746704898152544431842440556280249638840374132783257375880144623575829131522611446544303839106505176776161206935275549421170646618266717893044911373119804737614528140 ซ้ำของpตัวละครซึ่งเทียบเท่ากับโปรแกรม brainfuck ต่อไปนี้:

+[--->++<]>+.++[->++++<]>+.----.--[--->+<]>-.------------.---.+++++++++++++.----------.---.----.+++.+.-.-[--->+<]>-.---[->++++<]>-.++++.[->+++<]>..[--->+<]>---.------------.---.----.--[--->+<]>---.++.[---->+<]>+++.-[--->++<]>--.-------.+.+++.+++++++++++++.--------------.---.--[--->+<]>--.-----------.---.+++++++++++++.-------------.[--->+<]>----..+[-->+++++<]>-.

ลองออนไลน์!



3

ฟิชชัน , 958 + 752 = 1710 ไบต์

._

ซ้าย

D
z
^@$$$$$$$$$$$$$$$$$$$@!@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@!@~~~@!!@~~~@!@$$$$$@!@~~~~~@!@$$$$$$$$$$$$@!@~~~~~~~~@!@~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~@!@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@!@~~~~@!@$$$@!@~@!@~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~@!@~~~~~~~~~~~~~~~~~~~~~~~~~~~@!@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@!@~~~~@!@$$$$$$$$$@!@~~~~~~~~@!@$$$@!@~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~@!@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@!@$$$$$@!@~~~~~~~~@!@$$$@!@~~~~~@!@~~@!@$$$$$@!@~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~@!@~~~~~~~~~~~~~~~~~~~~~~~~~~~@!@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@!@$$$@!@~~~@!!@~~~@!@$$$$$$$@!@~@!@$@!@~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~@!V

ลองออนไลน์!

ขวา

                                           } \} \    } \      } \    } \   } \   } \    } \   } \       } \    } \   } \ } \       } \   } \                                           } \   } \    } \    } \   } \   } \   } \} \      } \    } \    } \                                           } \ } \ } \   } \    } \   } \   } \    } \   } \   } \   } \    } \      } \ 
O________________________________________I'/O\/O\__u'/O\____i'/O\++p'/O\___/O\_i'/O\__u'/O\___/O\_____i'/O\++p'/O\+++/O\+/O\_______/O\_i'/O\_________________________________________I'/O\_u'/O\++p'/O\____/O\___/O\_i'/O\_u'/O\/O\____i'/O\++u'/O\__u'/O\_________________________________________I'/O\_/O\+/O\+++/O\____/O\___/O\_i'/O\++p'/O\___/O\_i'/O\_u'/O\____/O\____i'/O\+++++++P'L

ลองออนไลน์!

ตกลงที่นี่เรามีโชคธรรมดาจริง ๆ
คุณสมบัติที่ยอดเยี่ยมอันดับแรกของฟิชชันคือมันมี 4 คำสั่งในการสร้างตัวชี้คำสั่งอะตอม AKA: RLDUดังนั้นฉันมีสองคำสั่งสำหรับกลุ่มซ้ายและขวา
เสน่ห์นำโชคที่สองคือ 2 คำสั่งสำหรับเอาต์พุต!และOซึ่งเกิดขึ้นในกลุ่มที่แตกต่างกัน
เสน่ห์ครั้งที่สาม ทั้งเอาท์พุท comands เอาต์พุต ASCII เทียบเท่ากับมวลของอะตอม ดังนั้นฉันต้องเปลี่ยนมันอย่างไร ฉันโชคดี! ทั้งสอง+ (+1 mass)และ_ (-1 mass)อยู่ในกลุ่มหนึ่งและสามที่จำเป็นทั้งหมด$ (+1 energy), ~ (-1 energy), @ (swap mass and energy)อยู่ในกลุ่มอื่น ๆ

นอกจากนี้ยังมีกระจกสำหรับควบคุมอะตอมในทั้งสองกลุ่ม! แต่ฉันไม่ได้ใช้มันในโปรแกรมแรก

ดังนั้นจึงไม่มีอะไรจะหยุดฉันได้ แต่มันไม่สามารถกะทัดรัดได้

โปรแกรมแรก

โปรแกรมแรกประกอบด้วยเพียง Dz^@$~!V

D   create atom, going down
z   set its mass to ASCII code of 'z'
^   split atom in 2, dividing their mass. One goes left, second - right

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

@   swap atom's mass and energy
... increament or decrement energy until it would match desired ASCII code
@   swap again
!   print character by atoms mass

ในที่สุดมันก็จะเผชิญหน้าVและแบ่งปันชะตากรรมของอะตอมตัวแรก ไม่มีทางที่จะทำลายพวกเขาหรือหยุดด้วยส่วนซ้ายของแป้นพิมพ์

โปรแกรมที่สอง

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

รูปแบบซ้ำ:

} \
/O\...X'

'ทำให้ต่อไปรหัส ASCII encoutered ถ่านในมวลอะตอมดังนั้นรหัสของบางส่วนXจะถูกเก็บไว้เป็นครั้งแรกกว่ามวลมีการเปลี่ยนแปลงโดย_และ+จะคุ้มค่าแน่นอน
บางครั้งX'จะข้ามถ้ามันจะสั้นกว่าที่จะใช้เพียงและ_+

อะตอมมาจากด้านซ้ายสะท้อนสองครั้งและกระทบ}จากด้านซ้าย ในกรณีนี้}ทำงานเหมือน cloner ส่งอะตอมที่เหมือนกันสองอะตอมขึ้นและลง อะตอมลงสะท้อนด้วยกระจกและไปทางซ้าย อะตอมแรปชนกับกระจกเดียวกัน แต่จากด้านล่างและสะท้อนไปทางขวาการเผชิญหน้าOและการพิมพ์
ในตอนท้ายอะตอมสุดท้ายพบกันครั้งสุดท้ายที่Oจะถูกทำลาย

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