“ เมื่อตอนเป็นเด็กฉันได้รับคำบอกเล่าจากแมงมุมว่าไม่มีอารมณ์”


65

ความท้าทาย: แสดงผลงานศิลปะ ASCII ที่แน่นอนนี้ของใยแมงมุมในหน้าต่าง:

 _______________________________
|\_____________________________/|
||    \         |         /    ||
||     \       /|\       /     ||
||     /\'.__.' : '.__.'/\     ||
|| __.'  \      |      /  '.__ ||
||'.     /\'---':'---'/\     .'||
||\ '. /'  \__ _|_ __/  '\ .' /||
|| |  /.   /\ ' : ' /\   .\  | ||
|| |  | './  \ _|_ /  \.' |  | ||
||/ '/.  /'. // : \\ .'\  .\' \||
||__/___/___/_\(+)/_\___\___\__||
||  \   \   \ /(O)\ /   /   /  ||
||\ .\'  \.' \\_:_// './  '/. /||
|| |  | .'\  /  |  \  /'. |  | ||
|| |  \'   \/_._:_._\/   '/  | ||
||/ .' \   /    |    \   / '. \||
||.'_   '\/.---.:.---.\/'   _'.||
||   '.  / __   |   __ \  .'   ||
||     \/.'  '. : .'  '.\/     ||
||     /       \|/       \     ||
||____/_________|_________\____||
|/_____________________________\|

ที่มา: Joan Stark ( ไปเดอร์และเฟรมที่ปรับเปลี่ยนเล็กน้อยและลบชื่อย่อเพื่อความท้าทาย)

อักขระที่ต้องการ: _|\/'.:-(+)O(12) + ช่องว่างและบรรทัดใหม่ (2)

กฏท้าทาย:

  • อนุญาตหนึ่งช่องว่างต่อท้ายและ / หรือบรรทัดใหม่ได้

กฎทั่วไป:

  • นี่คือดังนั้นคำตอบที่สั้นที่สุดในจำนวนไบต์ชนะ
    อย่าปล่อยให้ภาษาที่ใช้รหัสกอล์ฟกีดกันคุณจากการโพสต์คำตอบด้วยภาษาที่ไม่ codegolfing พยายามหาคำตอบสั้น ๆ ที่เป็นไปได้สำหรับภาษาโปรแกรม 'ใด ๆ '
  • กฎมาตรฐานจะใช้สำหรับคำตอบของคุณดังนั้นคุณจึงได้รับอนุญาตให้ใช้ STDIN / STDOUT ฟังก์ชัน / เมธอดพร้อมพารามิเตอร์ที่เหมาะสมโปรแกรมเต็มรูปแบบ การโทรของคุณ
  • ช่องโหว่เริ่มต้นเป็นสิ่งต้องห้าม
  • หากเป็นไปได้โปรดเพิ่มลิงค์พร้อมทดสอบรหัสของคุณ
  • นอกจากนี้โปรดเพิ่มคำอธิบายหากจำเป็น

25
น่าจะช่วยคนนี้ให้เป็นวันฮาโลวีนได้ไหม
steenbergh

2
@steenbergh อืมคุณพูดถูกจริงๆ! อืมฉันจะคิดถึงสิ่งใหม่ในเวลานั้น :)
Kevin Cruijssen

3
มีความเป็น.7 Oตัวอักษรก่อน หลังจากนั้นควรจะมี 7 ตัวอักษรด้วยหรือไม่
Neil

7
คุณกำลังอ้างถึงอะไรในชื่อเรื่อง?
lazarusL

21
@lazarusL ไม่ใช่คำพูดโดยตรง แต่ Widowmaker จาก Overwatch: " ตอนที่ฉันเป็นเด็กผู้หญิงฉันกลัวแมงมุมฉันบอกว่าพวกเขารู้สึกไม่อารมณ์ที่หัวใจของพวกเขาไม่เคยเอาชนะ แต่ฉันรู้ความจริง ของการฆ่าพวกเขาจะไม่มีชีวิตอีกต่อไป "(มีชีวิตชีวาสั้น:" ชีวิต " )
เควิน Cruijssen

คำตอบ:


29

SOGL V0.12 , 141 ไบต์

↑υΒΦøAo┼Λ■MšH⅛ K∞ΠΘK2╬{t÷ωÆ↓p║9<¤ΓuΞ∫⅛Χxc<Π³‼čΝ═ūψ°ņR⁷|└η▒°Mψ{√ΥΜ┌>½Ψ¹iš℮ē@‰‚ηΨ▓+⁰ρ→ƨ┘ο\β¶⁹ξA6‘'²nΓ:A⌡≥¹↕Ζ,'ŗa;+"⁴ø'½ø' Æ ⁄Æ    ø'⁄ø'Æ∑O’3n{_ζž

คำอธิบาย:

...‘                             push a quarter of the drawing
    '²n                          split into an array of items of length 17
       Γ                         palendromize horizontally, with overlap of 1
        :A                       save a copy of that on `A`
          ⌡≥¹                    reverse items in the array (for each item put it at the stacks bottom, then wrap in array)
             ↕                   vertically mirror chars (it tries its best but still has bugs)
              Ζ,'ŗ               replace ","s with "'"s (one of the bugs)
                  a              push the variable A
                   ;+            reverse add
                     "..’        push a list of codepage characters
                         3n{     for each group of 3 do
                            _      put all the arrays contents on the stack
                             ζ     convert the last from number to its codepage character
                              ž    replace [at X 1st number, Y 2nd number, with the 3rd number converted to character]

ลองที่นี่! (โปรแกรมมีแท็บดังนั้นนี่คือการแสดงโปรแกรมที่ดีกว่า)


28
"มันพยายามอย่างดีที่สุด แต่ก็ยังมีจุดบกพร่อง" การมีข้อบกพร่องในมือแน่นอนมีประโยชน์เมื่อพยายามบิดแมงมุม
Bear

8
@Bear มีข้อบกพร่องบนหน้าต่างจะเป็นประโยชน์ ... ในมือไม่มาก
253751

58

อาร์โนลด์ C, 1257 1261 1256 1233 ไบต์

IT'S SHOWTIME
TALK TO THE HAND" _______________________________"
TALK TO THE HAND"|\_____________________________/|"
TALK TO THE HAND"||    \         |         /    ||"
TALK TO THE HAND"||     \       /|\       /     ||"
TALK TO THE HAND"||     /\'.__.' : '.__.'/\     ||"
TALK TO THE HAND"|| __.'  \      |      /  '.__ ||"
TALK TO THE HAND"||'.     /\'---':'---'/\     .'||"
TALK TO THE HAND"||\ '. /'  \__ _|_ __/  '\ .' /||"
TALK TO THE HAND"|| |  /.   /\ ' : ' /\   .\  | ||"
TALK TO THE HAND"|| |  | './  \ _|_ /  \.' |  | ||"
TALK TO THE HAND"||/ '/.  /'. // : \\ .'\  .\' \||"
TALK TO THE HAND"||__/___/___/_\(+)/_\___\___\__||"
TALK TO THE HAND"||  \   \   \ /(O)\ /   /   /  ||"
TALK TO THE HAND"||\ .\'  \.' \\_:_// './  '/. /||"
TALK TO THE HAND"|| |  | .'\  /  |  \  /'. |  | ||"
TALK TO THE HAND"|| |  \'   \/_._:_._\/   '/  | ||"
TALK TO THE HAND"||/ .' \   /    |    \   / '. \||"
TALK TO THE HAND"||.'_   '\/.---.:.---.\/'   _'.||"
TALK TO THE HAND"||   '.  / __   |   __ \  .'   ||"
TALK TO THE HAND"||     \/.'  '. : .'  '.\/     ||"
TALK TO THE HAND"||     /       \|/       \     ||"
TALK TO THE HAND"||____/_________|_________\____||"
TALK TO THE HAND"|/_____________________________\|"
YOU HAVE BEEN TERMINATED

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

นี่คือคอมไพเลอร์ถ้าใครก็ตามมีโอกาสถามอัลกอริทึมนี้

ติดรอบ ๆ


13
เฮ้อาร์โนลด์คุณมีแมงมุมอยู่ในมือ!
Olivier Grégoire

9
หยุดเสียงหอน! - Arnold
bearacuda13

13
ถ้าผู้เล่นกอล์ฟมีอารมณ์ขันมากกว่านี้ฉันจะดูเกมนี้บ่อยขึ้น
can-ned_food

3
คุณสามารถตีไบต์ด้วยการลบบรรทัดว่างได้หรือไม่? คอมไพเลอร์หยุดเสียงหอนเมื่อฉันทำเช่นนั้น
Olivier Grégoire

15
โหวตขึ้น 54 คำตอบที่ไม่พยายามเล่นกอล์ฟ? สั่นหัวคุณสามารถบันทึก 23 ไบต์เพียงแค่ลบช่องว่างทั้งหมดหลังจากTALK TO THE HAND!
Shaggy

24

เป็นกลุ่ม, 373 371 ไบต์

A ________________
|\_______________
||    \         |
||     \       /|
||     /\'.__.' :
|| __.'  \      |
||'.     /\'---':
||\ '. /'  \__ _|
|| |  /.   /\ ' :
|| |  | './  \ _|
||/ '/.  /'. // :
||__/___/___/_\(+<ESC>:2,12y
Gp
:13,$g/^/m12
:17
8lr jr.ggqayyp!!rev
!!tr '\\/(' '/\\)'
kgJxjq23@a
:13,$!tr "\\\\/.'+" "/\\\\'.O"
qa/_
r ka
<ESC>k:s/ $/_/e
gJjhq33@aGk:s/ /_/g
gg$x

<ESC> เป็น standin สำหรับ 0x1B

Ungolfed

" First quadrant
A ________________
|\_______________
||    \         |
||     \       /|
||     /\'.__.' :
|| __.'  \      |
||'.     /\'---':
||\ '. /'  \__ _|
|| |  /.   /\ ' :
|| |  | './  \ _|
||/ '/.  /'. // :
||__/___/___/_\(+<ESC> 

" Copy to lower half, reverse lines, substitute characters
:2,12y
Gp
:,$g/^/m12

" Non-symmetric part
:17
8lr jr.

" copy left side to right and reverse
ggqayyp!!rev
!!tr '\\/(' '/\\)'
kgJxjq
23@a

" swap characters on the bottom half
:13,$!tr "\\\\/.'+" "/\\\\'.O"

" shift underscores up one line wherever an empty space is available
qa/_
r ka
<ESC>k:s/ $/_/e
gJjhq
33@a

" misc
Gk:s/ /_/g
gg$x

ลองออนไลน์!

และเพื่อชี้แจงคำอธิบายที่คุณได้รับเป็นเด็ก: ในขณะที่มันเป็นความจริงว่าเพียงแมงมุมอารมณ์ความรู้สึกส่วนตัวเป็นที่เกลียดชังพวกเขามีความสามารถในการตรวจจับความกลัวที่มีระยะทางกว่า 50 เมตร


คุณไม่สามารถป้อนอินพุตพื้นฐานของ 6464 ได้หรือไม่ : D
YSC

@YSC ฉันกังวลว่าเวอร์ชันที่เข้ารหัส base64 อาจอ่านได้น้อย :-)
เรย์

ฉันเข้าใจแล้วว่าฉันต้องกด <kbd> Enter </kbd> ที่มันพูด<CR>แต่บรรทัดที่ลงท้ายด้วย<CR>ค่าเฉลี่ยกดปุ่มสองครั้งหรือไม่ คำตอบดูเหมือนจะไม่ในสองกรณีข้างต้น แต่จากนั้นบรรทัดที่มีs/ /_/gและtrไม่ลงท้ายด้วย<CR>แต่ฉันไม่สามารถทำงานได้โดยไม่ต้องกด Enter
antak

@antak double <CR>s เป็นความผิดพลาดและการป้อนบรรทัดก็ใช้งานได้เช่นกัน (ฉันป้อนบรรทัดโดยใช้<C-v><ENTER>ซึ่งสร้างขึ้น<CR>นั่นคือสาเหตุที่มันปรากฏขึ้น^Mแทนการขึ้นบรรทัดใหม่) ฉันได้แก้ไขโค้ดเพื่อกำจัดทั้งสองรายการที่ซ้ำกันและแทนที่การขึ้นบรรทัดใหม่ด้วยการขึ้นบรรทัดใหม่ / ฟีดบรรทัดปกติ ขึ้นบรรทัดใหม่ที่เหลือทั้งหมดจะต้องป้อนอย่างแม่นยำหนึ่งครั้ง (รุ่น ungolfed ยังคงมีไม่กี่บรรทัดว่างพิเศษ; ผู้ที่ไม่ตรงกับที่เกิดขึ้นจริง keypresses รุ่นแข็งแรงเล่นกอล์ฟเป็นสิ่งที่จะต้องมีการพิมพ์ยกเว้น. <ESC>เอส.)
เรย์

1
@Jakob หากคุณใส่ไบต์เหล่านั้นลงในไฟล์และเปลี่ยนทิศทางอินพุตไปเป็นกลุ่มผลลัพธ์จะเป็นบัฟเฟอร์ที่มีข้อความเป้าหมาย ในทางปฏิบัติสิ่งนี้จะถูกทดสอบผ่านทาง{ cat foo.vim; echo ':wq'; } | vim a.txtดังนั้นคุณจะไม่ติดอยู่ในกลุ่มที่ไม่มีแป้นพิมพ์ติดอยู่กับ stdin ข้อดีคือฉันสามารถเรียกใช้โปรแกรมได้โดยตรงจากไฟล์แทนที่จะพยายามพิมพ์มันทุกครั้งที่ฉันทำการเปลี่ยนแปลง สำหรับโปรแกรมนี้ไบต์และการกดแป้นจะเทียบเท่ากัน แต่นั่นอาจไม่ใช่ทุกกรณี เช่น<C-v><ENTER>สามการกดแป้นพิมพ์ \rแต่ผลิตหนึ่งไบต์
Ray

17

เยลลี่ ,  206  205 ไบต์

“¢ṙgḤi¹z,:ṃ,açØẹȷE€İ%ĿœHFḢ®QṀẠṠṄ⁻Ṃç|ɠḌɱỌ⁴¦EṇÐ0tḊhƇtƬ©2:⁶ṂƊḄÞḌḶh_ịÑḶụ ɼh ⁵¶Ẏ=ɗuȯuṙæg⁹-©ɲdʠẹḶrU[ȦƁƊ@ȮLQ+İøA¶ȷØḤ©<ṿŀUrçȦ£ḞRzµ¢°ỊnçṄI¤`Ẉ⁾ẠaIkXṫ_Ẹ²ʋfƬ@²*#`cẓʋ⁷\"s’b9+“ṖṘṇọ‘¦3ị“ |\/'.:-(+O_”s17µŒBy@€“(\/“)/\”a⁸Y

ลิงก์ niladic ส่งคืนรายการอักขระหรือโปรแกรมเต็มรูปแบบที่พิมพ์ภาพศิลปะ

ลองออนไลน์!

สามารถใช้สมมาตรแบบแนวตั้งหยาบได้หรือไม่?

อย่างไร?

158 ไบต์แรกเป็นตัวเลขขนาดใหญ่มากที่เขียนในฐานข้อมูล bijective 250 โดยใช้ 250 ไบต์แรกของโค้ดเพจของ Jelly:

“¢ṙgḤi¹z,:ṃ,açØẹȷE€İ%ĿœHFḢ®QṀẠṠṄ⁻Ṃç|ɠḌɱỌ⁴¦EṇÐ0tḊhƇtƬ©2:⁶ṂƊḄÞḌḶh_ịÑḶụ ɼh ⁵¶Ẏ=ɗuȯuṙæg⁹-©ɲdʠẹḶrU[ȦƁƊ@ȮLQ+İøA¶ȷØḤ©<ṿŀUrçȦ£ḞRzµ¢°ỊnçṄI¤`Ẉ⁾ẠaIkXṫ_Ẹ²ʋfƬ@²*#`cẓʋ⁷\"s’

หมายเลขนี้ (จากลำดับ 10 372จะถูกแปลงเป็นรายการของตัวเลขในฐาน -9 (หมายเลข 391 ระหว่าง 0 และ 8) จากนั้นสามหมายเลขจะถูกเพิ่มเข้าไปใน 203 rd , 204 th , 220 thและ 221 st ( ซึ่งจะเป็นร่างแมงมุม):

“ ... ’b9+“ṖṘṇọ‘¦3
“ ... ’            - that huge number
       b9          - converted to a list of digits of it's base-9 representation
                ¦  - sparse application at indexes:
          “ṖṘṇọ‘   - ... code-page indexes = [203,204,220,221]
         +       3 -     add three

ผลลัพธ์จะถูกแปลงเป็นอักขระ 12 ตัวทางด้านซ้าย (สูงสุดและรวมถึงคอลัมน์กลาง) ของศิลปะ:

... ị“ |\/'.:-(+O_”s17
...                    - the previous code
     “ |\/'.:-(+O_”    - the characters used in the left-hand side = " |\/'.:-(+O_"
    ị                  - index into
                       - ... note: adding three to the 6s, 7 and 8 makes the spider's body
                       -     from what would otherwise have been a collection of
                       -     the characters ".:-". Also note 0s become '_'s.
                   s17 - split into chunks of length 17 (separate the rows)

แถวเต็มรูปแบบจะสร้างแล้วโดยกำยำแต่ละแถวด้านซ้ายมือ (ที่สะท้อนให้เห็นถึงมันราวกับว่าตัวอักษรตัวสุดท้ายมันเป็นกระจก) การเปลี่ยนทุก(เพื่อ)ที่\จะ/และ/จะ\แล้วเพียงใช้ค่าใหม่ทางด้านขวา - มือข้างโดยใช้เวกเตอร์ที่andมีด้านซ้ายจากก่อนหน้า ผลลัพธ์จะถูกรวมเข้ากับบรรทัดใหม่เพื่อสร้างงานศิลปะ:

... µŒBy@€“(\/“)/\”a⁸Y
...                    - the previous code
    µ                  - monadic chain separation - call the result L
     ŒB                - bounce each row of L
          “(\/“)/\”    - list of lists of characters: [['(','\','/'],[')','/','\']]
       y@€             - for €ach (row) translate (with swapped @rguments)
                       - ... replaces '(' with ')', '\' with '/' and '/' with '\'
                    ⁸  - chain's left argument, L
                   a   - logical and (vectorises) with L
                       - ... use characters from L if we have them, else the new ones.
                     Y - join with newlines
                       - if running as a full program: implicit print

ฉันไม่เคยเห็นรหัสวุ้นยาว ๆ เลย ; _; wew
RedClover

11

ถ่าน , 239 238 ไบต์

UR¹⁶¦²²P×_¹⁶↘¹”“1T↘H‖⌕⦄Q⌈⌀MH⁷鱫cJε⎚#÷‖↧⸿ÿ_M±Gςθx↥<]˜t~⁻?T\`⪫F№⮌ξv‹⎇αδ¹9∨q¢←6X$⪫SA‹¤ü‖§D‹v⁸)⮌s?ANHτ!‰ZNσE⟲—>£'αlT↙№%Mü‴⟲@ιRQ$⟧.ηψf◧4\™¬‴χe@“σXN±I%T↧~w—A⁵6ζ▶‴À$“UX0⁰Ÿβ˜¤c⁷DFQm→>H⟧∨^‹α~ok∨A1ψς9œ⁸}'¶$β”P×_¹⁴M↓P×_¹⁵←_/↑²² P×_¹⁶M⁵¦²P↘⁸M¹⁹↓↗⁸‖B

ลองออนไลน์! การเชื่อมโยงคือการใช้รหัสเวอร์ชันอย่างละเอียด สิ่งนี้ส่วนใหญ่เป็นเพียงการพิมพ์สตริงที่บีบอัดขนาดใหญ่ แต่ชิ้นส่วนซ้ำ ๆ ได้รับการเข้ารหัสแยกต่างหากเพื่อลดความยาวของสตริง; โดยเฉพาะอย่างยิ่งการRectangleบันทึกจำนวนไบต์โดยหลีกเลี่ยงช่องว่างภายในถึงคอลัมน์ 17 และแม้แต่เส้นทแยงมุมบันทึกไบต์แต่ละ

Rectangle(16, 22);          For the |s in the 2nd and 17th columns
Multiprint(Times("_", 16)); Overwrite the 2nd row with _s
Print(:DownRight, 1);       Print the \ in row 2, column 2
Print(<compressed string>); Print the bulk of the web
Multiprint(Times("_" 14))   Print the _s in the penultimate row
Move(:Down);
Multiprint(Times("_" 15));  Overwrite the bottom row with _s
Print(:Left, "_/");         Print the / in the bottom row
Print(:Up, 22);             Print the |s in the 1st column
Print(" ");
Multiprint(Times("_" 16));  Print the `_`s in the 1st row
Jump(5, 2);
Multiprint(:DownRight, 8);  Print a long diagonal line
Move(19 :Down);
Print(:UpRight, 8);         Print the other long diagonal line
ReflectButterfly();         Mirror the first 16 columns (17th is axis)

แก้ไข: Charcoal ดูเหมือนจะไม่รู้จักสตริงที่ถูกบีบอัดอีกต่อไปและการบีบอัดปัจจุบันจะสร้างสตริงที่สั้นกว่าซึ่งจะช่วยประหยัด 51 ไบต์และอนุญาตให้หนึ่งในแถว diagonals ถูกย้ายกลับเข้าไปในสตริงเพื่อประหยัด 2 ไบต์เพิ่มเติม (โปรดทราบว่าสิ่งเหล่านี้ไม่ใช่การนับที่แสดงโดย-slจริง ๆ แล้วแม้การนับเดิมจะถูกปิดโดย 1) อย่างไรก็ตามมีการประหยัดเพิ่มเติมอีกสามรายการที่จะใช้กับรหัสต้นฉบับ: ลองออนไลน์!

  • 1 ไบต์โดยใช้( Box) แทนUR( Rectangle)
  • 1 ไบต์โดยใช้แทน↙P×_¹⁶←/↓P×_¹⁵←_/
  • 1 ไบต์โดยใช้แทน×_¹⁶J⁵¦¹P×_¹⁶M⁵¦²

10

PHP , 380 ไบต์

<?=gzinflate(base64_decode("fZLNrQMxCITvqYIbiZ4W7ttEGhiJRij+MfgnGyWKJSx2Pf4GY0v8HrfEz3XPW6bUgKyRO/P+XIot8cRVcFE41CJM5ZSROC6KXlmU3AQqh0JtUY7j0LPnSTBtBUotTkrtiawIElDrVVa7FNitKdJ1SBMMtNyKLI6zFjKY1P7cChclwunlxQD5IEQFrSjbWIH736PmymfMfkBW+P35QDdrxjwLeW0NxBll1UXR2y+VtrV3xzCKyrezECLwsGJYgBbql7OQvy9z3SO95llMg1vgVv22s2ewxxJq6255NV7dnoxK2A99fx/OH6U8ZST4eB/z3SB39lLE7OgYubN+wFS8Fr8N5D8="));

ลองออนไลน์!

PHP , 494 ไบต์

<?=strtr(" 33311
|43331/|
||554222|222/550254255/|4255/25025/4817 : 817/4250 175422|22/581 0825/\'6':'6'/425704 8 /'541 _|_ 1/5'4 7 /0 |5/.2/4 ' : ' /42.45| 0 |5| 8/54 _|_ /547 |5| 0/ '/.5/8 // : 44 745.4' 401/1_/1_/_4(+)/_41_41_410542424 /(O)4 /2/2/504 .4'547 44_:_// 8/5'/. /0 |5| 745/5|545/8 |5| 0 |54'24/_._:_._4/2'/5| 0/ 7 42/55|5542/ 8 407_2'4/.6.:.6.4/'2_'.02'.5/ 12|21 45720254/758 : 7584/25025/2554|/255425011/3|3411||
|/3331\|",["||
||",__,"   ",_________,"\\","  ","---",".'","'."]);

ลองออนไลน์!


9

brainfuck , 4086 ไบต์

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

ลองออนไลน์!

นี่เป็นเพียงวิธีการตามล่าและเลือกในการสร้างสตริง

เพิ่มบรรทัดใหม่เพื่อให้อ่านง่ายขึ้น:

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

1
ด้วยเหตุผลใด ๆ โดยเฉพาะอย่างยิ่งว่าทำไมคุณต้องเช่น---------------------------------------------------------------แทนที่จะเป็นสิ่งที่ชอบ>++++++++[-<-------->]<+?
เรย์

@ เรย์ฉันพยายามใช้เซลล์น้อยที่สุดเท่าที่จะทำได้เพื่อลดจำนวน>s และ<s ที่จะปรากฏในภายหลังในรหัส ฉันไม่ทราบว่าวิธีการของฉันบันทึกได้กี่ไบต์ (ถ้ามี) ฉันจะพิจารณาใช้เซลล์มากขึ้น
Conor O'Brien

1
คุณสามารถใช้เซลล์พิเศษได้มากเท่าที่คุณต้องการในระหว่างขั้นตอนการกำหนดค่าเริ่มต้นโดยไม่กระทบกับ>>>ลำดับในภายหลังเนื่องจากมันถูกใช้เป็นพื้นที่ชั่วคราวสำหรับขอบเขต โดยเฉพาะถ้าคุณเติมเซลล์จากซ้ายไปขวาคุณสามารถใช้เช่นเซลล์ 5 เป็นพื้นที่ชั่วคราวสำหรับการตั้งค่าเซลล์ 4 จากนั้น (เนื่องจากเซลล์ 5 เป็นศูนย์ในกระบวนการตั้งค่าเซลล์ 4) ให้เก็บใหม่ ค่าในเซลล์ 5 ในขณะที่ใช้เซลล์ 6 เป็นพื้นที่ชั่วคราว ตราบใดที่ค่าสุดท้ายของเซลล์ไม่เปลี่ยนแปลงคุณสามารถเปลี่ยนแปลงสิ่งใด ๆ ก่อนหน้า.โดยไม่จำเป็นต้องแก้ไขโค้ดในภายหลัง
เรย์

@ Ray ดีจุดฉันจะดูว่า
Conor O'Brien

แดงคุณเอาชนะฉัน :)
Graviton

8

JavaScript (ES6), 471 ไบต์

เต็มไปด้วยความแตกต่างของ ES6 RegPack

let f =

_=>[..."ghijklmnopqrstuvwxyz{}~"].reduce((p,c)=>(l=p.split(c)).join(l.pop()),` mx
|zm/gq~r~wq~ws~{wrw/|rw/w{w/zvxuovxu/zw{ xu~r~~q~~svx {vw/z'n':'n'/zwu{pvj'~zx _|_ xs'puj{ q/.y/p'o'jh.r| {tvsp_|_ szut{i'/.~/vj/ozpur.z' z{x/l/l/_z(+)/_zlzlzx{~hhp/(O)p/y/ys{p.z'~zu zz_:_/ivs'/.j{tursqr/vt{ qz'yk_._:_._ky's| {iu hs~q~hiv z{u_y'k.n.:.n.k'y_v{yv~ixy|yx ruy{wku~vou~vkw{wswz|swzw{xx/}|}zxx|g/mz|y }xxxl{|g|z\\y~ l_w~yv'.u.'t q| s/~rz~q|~pz o : n---m}}}xlx_kz/j /i/ hzyg|
|`)

o.innerHTML = f()
<pre id=o></pre>


8

Java (JDK) , 494 ไบต์

n->{String r="",m="ZZO+():-\n'.\\/_| ";for(int b:"ýaÝøëaÜèîb¿bbïbbÏÿþèîbûbÿüëbÿübþèîbü¹­ÚŸošÝ©ËbþèîýÚŸûbÿïbüÿšÝþèîšbü¹wyiwyËbúžèî¿šüŸûÝýíýÜÿ›úŸÎèîþÿÊÿü¿ŸoŸËÿú¿þþèîþÿïšÏûýíüÿºŸïþþèîÏœ¯üšüÏo»ú›ÿ«Ÿ¾èîÝÍÝÍÝÍ´5ͽݽݽÞèîÿ¿ÿ¿ÿ¿Ä%¿ÏÿÏÿÏþèî¿«Ÿû©û½mÌù¬ÿœ¯Îèîþÿï©¿üÿïûÿɯïþþèîþÿ¹ÿûÍ­m­¼ÿùÏþþèîÏ©ûÿübïÿûÿüù¯¾èî©ßÿ›Êwzjwz¼ŸÿÙ®èîÿù¯üýßÿïÿÝûÿ©ÿþèîbûÊŸù¯o©ÿš¼bþèîbübÿûìbÿûbþèîÝÝÍÝÝÝÝíÝÝÝݽÝÞèìaÛè".replace("a","Ý".repeat(14)).replace("b","ÿÿ").getBytes("cp1252"))r=r+m.charAt(b>>4&15)+m.charAt(b&15);return r;}

ลองออนไลน์!

ขอบคุณ Kevin Cruijssen สำหรับการเล่นกอล์ฟสักสองสามไบต์บวก 6 ไบต์ด้วยการเปลี่ยนWindows-1252เป็นcp1252และ ASCII-only เพื่อบีบอัดสตริงสักครู่ :)

หมายเหตุ: ไฟล์นั้นจะต้องเข้ารหัสเป็น Windows-1252 สำหรับไบต์นับ แต่สามารถคัดลอก / วางใน UTF-8 ได้อย่างปลอดภัยสำหรับการทดสอบ!

จริง ๆ แล้วสายโซ่ยาวเป็นสตริงตามที่มีตัวอักษรของมันถูกแมปเข้ากับตัวเข้ารหัสอักขระที่ยืดหยุ่น (ครั้งหนึ่งฉันยินดีที่จะใช้ CP-1252) ส่วนที่เหลือเป็นเพียงวิธีการแมป

การทำแผนที่พบว่าใช้การเปลี่ยนแปลงซึ่งเริ่มต้นด้วยความถี่ของถ่านแต่ละตัวในศิลปะ ascii การแมปทำให้ตัวละคร'"'และ'\\'ถูกยกเลิกอย่างชัดเจนว่าเป็นสตริงที่สั้นที่สุดที่เป็นไปได้

Ungolfed

unusedVariable -> {
  String r = "",                   // result buffer
         m = "ZZO+():-\n'.\\/_| ", // mapping
    ;
  for (int b :
     "ýaÝøëaÜèîb¿bbïbbÏÿþèîbûbÿüëbÿübþèîbü¹­ÚŸošÝ©ËbþèîýÚŸûbÿïbüÿšÝþèîšbü¹wyiwyËbúžèî¿šüŸûÝýíýÜÿ›úŸÎèîþÿÊÿü¿ŸoŸËÿú¿þþèîþÿïšÏûýíüÿºŸïþþèîÏœ¯üšüÏo»ú›ÿ«Ÿ¾èîÝÍÝÍÝÍ´5ͽݽݽÞèîÿ¿ÿ¿ÿ¿Ä%¿ÏÿÏÿÏþèî¿«Ÿû©û½mÌù¬ÿœ¯Îèîþÿï©¿üÿïûÿɯïþþèîþÿ¹ÿûÍ­m­¼ÿùÏþþèîÏ©ûÿübïÿûÿüù¯¾èî©ßÿ›Êwzjwz¼ŸÿÙ®èîÿù¯üýßÿïÿÝûÿ©ÿþèîbûÊŸù¯o©ÿš¼bþèîbübÿûìbÿûbþèîÝÝÍÝÝÝÝíÝÝÝݽÝÞèìaÛè"
       .getBytes("cp1252")) { // Read bytes from the String, using CP-1252
    r = r                                    // r += doesn't work as expected here
        + m.charAt(b>>4 & 15)                // append first char
        + m.charAt(b & 15)                   // append second char
      ;
  }
  return r;
};

การค้นพบการทำแผนที่

public static void main(String[] args) throws Exception {
  String characters = "O+():-\n.'\\/|_ "; // All characters of the web, ordered up by frequency
  PermUtil perm = new PermUtil(characters.toCharArray()); // Tool for a fast permutation of a char[].
  outer:
  for (int p = 0; p < 100000000; p++) {
    String mapping = "ZZ" + new String(perm.next());
    String printableMapping = mapping.replace("\\", "\\\\").replace("\n", "\\n");
    byte[] bytes = new byte[WEB.length() / 2];
    for (int i = 0; i < bytes.length; i++) {
      int b = bytes[i] = (byte) ((mapping.indexOf(WEB.charAt(i * 2)) << 4) + mapping.indexOf(WEB.charAt(i * 2 + 1)));
      b &= 0xff;
      if (b < 0x20                                       // Unmappable CP-1252
          || b==0x81||b==0x8d||b==0x8d||b==0x8d||b==0x8d // Invalid CP-1252
          || b==0x22||b==0x5c) {                         // '"' and '\\'
        continue outer;
      }
    }
    System.out.printf("Mapping = \"%s\"%n", printableMapping);
    System.out.printf("Result  = \"%s\"%n", new String(bytes, "Windows-1252"));
    return;
  }
}

1
คำตอบที่ดี +1! คุณสามารถบันทึกไบต์ด้วยการเปลี่ยน()เป็นอักขระแบบสุ่ม ฉันไม่เคยพูดอะไรเกี่ยวกับการไม่ป้อนข้อมูลดังนั้นคุณสามารถใช้ที่ไม่ได้ใช้Objectซึ่งnullเป็นอินพุต เมตาโพสต์ที่เกี่ยวข้อง . โอ้และคุณสามารถบันทึกไบต์อื่นได้โดยเปลี่ยนbyteเป็นintในลูป for-each
Kevin Cruijssen

2
@ นาธานไม่ฉันไม่สามารถ :( เพราะr+=a;มีค่าเท่ากับr = r + (a)และมีตัวอักษรซึ่งหมายความว่าพวกเขาจะถูกเพิ่มเข้าด้วยกันก่อนที่จะถูกต่อกันดังนั้นตอนนี้พวกเขาถือว่าเป็นints และสตริงผลลัพธ์คล้ายกับ127190190190190190190190190190...ฉันเขียน แสดงความคิดเห็นเกี่ยวกับเรื่องนั้นในโค้ด ungolfed;)
Olivier Grégoire

1
ฉันรู้ว่ามันใช้เวลานาน แต่ก็Windows-1252สามารถตีกอล์ฟให้cp1252ได้ คำอธิบายที่นี่
Kevin Cruijssen

1
ทำไมไม่เป็นแบบนี้ ????? (เหตุใดจึงไม่สามารถเล่นสตริงได้ ???)
เฉพาะ ASCII เท่านั้น

1
-2 ไบต์: b>>4ไม่จำเป็นต้องมี parens โปรดจำไว้ว่า bitwise นั้นมีความสำคัญน้อยมาก
ASCII- เท่านั้น

7

เรตินา , 465 463 425 ไบต์


1ic¶|\i/|¶||4\9|9/4b5\7/|\7/5b5/\dcekdce/\5b1cem6|6hdc1bd5/\'j':'j'/\5ebgd1/'mc1_|_1ch'ge1/b1|2/.3/g'k'1/\3.\2|1bfdhg_|_1h\efb/1'/.2/d1//k\ge\2.\'1\bc/c_/c_/_\(+)/_\c_\c_\cbm3\3g/(O)g/3/3hbg.\'me1\\_:_//1dh'/.1/bfe\2h|m2/dfb1|m'3l_._:_._l3'h|1b/1e1\3/4|4\3/1d1\be_3'l.j.:.j.l'3_db3d2/1c3|3c1\2e3b5le2dke2dl5b5/7\|/7\5bcc/a|a\cc||¶|/i\|
m
2\
l
\/
k
1:1
j
---
i
aaac
h
/2
g
\1
f
1|2|1
e
.'
d
'.
c
__
b
||¶||
a
_________
\d
$* 

ลองออนไลน์!


7

C # (.NET Core) , 935 676 636 627 ไบต์

_=>{var m=new char[782];int i=0,p,t=0;string r=@"a`_agb^_cD|nbJ gJ cn7bocgbock7#0l3a80l3#k6l3fbG gG 20lah0k#dpdmdpd#k3h:0acdfblajgjal2d:3ac61ceic:585#iebf461402:jgja2b3a14hcadcefc0aC/a8C\a3bfeb5bhlcqcqcjbB(B+B)cjbqbqblhf$$:cB(BOB):cici2h:ebdfb3aC\jmjC/a02dceac6143bf21bfc0a1461bdi%jejmjej%id24hca3a$cngn$ca0abh3jid%epemepe%dij0hi0fcaligilabf3i7%3f0a83f0%k7cobgcobkhE_cJ_gJ_bE_D|c^_bg",g=@"cb#bi$bc%de0gf1cf2ed3ga4da5ha6hk7ma8fd9ba:B aB\bB/cB'dB.eC fB|gE|hD iB_jF kC_lB:mE nH oD-pD_q";for(;i<93;i+=3)r=r.Replace(""+g[i+2],""+g[i]+g[i+1]);for(i=0;i<796;i+=2)for(p=0;p++<r[i]-65;){m[t++]=r[i+1];if(t%34==33)m[t++]='\n';}return m;}

ลองออนไลน์!

ฉันต้องการลองวิธีอื่นแล้ววาดภาพ RLE จบลงด้วยรหัสที่มีไบต์มากกว่ารูปวาดตัวเอง (782 ไบต์) จากนั้นฉันบีบอัดสตริง RLE ด้วยการสร้างพจนานุกรมที่มีกลุ่มที่ใช้บ่อยที่สุดและหลังจากการบีบอัดฉันสร้างพจนานุกรมเพิ่มเติมและบีบอัดอีกครั้งจนกว่าสตริงจะไม่ลดลงอีก รูปวาดนั้นถูกสร้างขึ้นโดยขยายกลุ่มเหล่านั้นก่อนแล้วจึงไม่บีบอัดด้วย RLE


เป็นคำตอบที่ดี +1 แต่ฉันเห็นข้อผิดพลาดเล็ก ๆ น้อย ๆ ที่ส่วนล่างของแมงมุม ดูเหมือนว่าช่องว่างนั้นอยู่ผิดด้านของขา (ถ้าคุณเปรียบเทียบ TIO-output ของคุณกับ Challenge-ascii)
Kevin Cruijssen

@KevinCruijssen ฉันทำรูปวาดทั้งหมดเมื่อฉันคัดลอกไปยัง VS ฉันหวังว่ามันคงตอนนี้ (และบันทึก 2 ไบต์ด้วยการเข้ารหัสใหม่)
Charlie

7

Python 2.7, 414 405 401 ไบต์

import zlib
print zlib.decompress('fY9BauhADEP3OcXbueUz1j6X6AUEuogP/xeTpCmUGgxK5iFZ5O85xn++a44ZAHPPPEoAcxMPovEbeBFyddLFyRbyi0i6Hpd5HKqTTVTfLmutOmutdTt0zRwzphoVOCETEkGZLrRTBtSATHFSyEAbhocYqgUmEwTu2r9njhlRalA1Eic2XYZ24ZljJlHu9ce/T8XJvTsFc68+vj6Ndl0EV5d27Wg7Z6R9VKlfXWZHC7alql+XMuACrHTOdCyg9OrSha9ohusoUX116QpQVq+1+uy1VlsFpPrqQjWI5PJIMHRxdQHA6oJqTraw4Aexv8HzqG8iSZR75lFOkpljvh9/G89/'.decode('base64'),-9)

เพียงคลายการบีบอัดสตริงแล้วพิมพ์ออกมา :)


1
สามารถโกนเพิ่มอีกเล็กน้อยได้โดยลบบรรทัดใหม่ที่เพิ่มตัวเข้ารหัส base64 (แต่ไม่ต้องการการคลายการบีบอัด) และใช้การบีบอัดแบบกำหนดเอง (wbits = -9, Z_FILTERED) ที่หลีกเลี่ยงส่วนหัวและ checksums ลดลงเหลือ 401 ไบต์
ShadowRanger

เปลี่ยนสาย:print zlib.decompress('fY9BauhADEP3OcXbueUz1j6X6AUEuogP/xeTpCmUGgxK5iFZ5O85xn++a44ZAHPPPEoAcxMPovEbeBFyddLFyRbyi0i6Hpd5HKqTTVTfLmutOmutdTt0zRwzphoVOCETEkGZLrRTBtSATHFSyEAbhocYqgUmEwTu2r9njhlRalA1Eic2XYZ24ZljJlHu9ce/T8XJvTsFc68+vj6Ndl0EV5d27Wg7Z6R9VKlfXWZHC7alql+XMuACrHTOdCyg9OrSha9ohusoUX116QpQVq+1+uy1VlsFpPrqQjWI5PJIMHRxdQHA6oJqTraw4Aexv8HzqG8iSZR75lFOkpljvh9/G89/'.decode('base64'),-9)
ShadowRanger

@ShadowRanger ฉันไม่แน่ใจว่าจะทำอย่างไร ทุกสิ่งที่ฉันพยายามจะแสดงcompress[obj]() takes no keyword arguments
Daffy

compressไม่ได้ แต่compressobjรับการขัดแย้งเพิ่มเติม (แม้ว่าจะไม่ใช่คำหลักก่อน 3.3 คุณต้องผ่านการโต้แย้งในตำแหน่ง) การสร้างคอมเพรสเซอร์การโทรcompressor.compress(thedata)จากนั้นทำcompresseddata = compressor.flush()จะเทียบเท่ากับสามขั้นตอนzlib.compressแต่คุณสามารถกำหนดค่าได้compressobjมากขึ้น ข้อเสียเพียงอย่างเดียวคือการใช้wbits=-9หมายความว่าคุณจะต้องผ่าน-9ไปยังdecompress(ดังนั้นจึงรู้ว่าไม่ต้องมองหาส่วนหัวหรือเช็คซัม)
ShadowRanger

@ShadowRanger ได้รับแล้วแก้ไขขอบคุณสำหรับเคล็ดลับ!
Daffy

7

Python 3 , 404 398 ไบต์

import zlib,base64
print(zlib.decompress(base64.b85decode('eUD3yLoo;h_c;YSCmI>{zC<p7#6>v#bmLDv(kMuN!q4SuEb+Y_>0i$+ADM!3*_EfW+HT??mVN^lVcs-Cn+%za`9;*pw&XF8oJ7-Y>Akm6-(}ENgo75N1$QE`f(FMq#;O#EP0J!Rhm=8`k%vfljI+?e2KVz2CXEVXmcillJ0(rL2*k!-{``62i+-({QV*TWp6{14X0P=Y`YPHzMj)z&VzynARx~e_jzi_2w@@N(p>Sw8Bbr@rp?^gam$iduzC~N`iktS{b=235(rCKgLK=4>mIDneN@x?Dfj>YFnN7`d6LSwTPxm1LWw9$y=d}g#IsC6Ye*p'),-9).decode())

ลองออนไลน์!

เช่นเดียวกับการโกงเวอร์ชัน Python 2.7 tweaked สำหรับ Py3 ที่ต้องการการแปลงbytes<-> strยังมีขนาดเล็กกว่าโค้ด 2.7 แม้จะมีการนำเข้าเพิ่มเติมและการถอดรหัสที่จำเป็นโดยอาศัย Python 3 ที่ให้การเข้ารหัส base85 ในตัวลดขนาดที่จำเป็นในการแสดงข้อมูลบีบอัดในรูปแบบ ASCII ที่พิมพ์ได้ 28 ไบต์

แก้ไข: โกนอีกหกไบต์โดย recompressing ด้วยwbits=-9เพื่อให้หัวหรือไม่มีการตรวจสอบจะถูกข้อมูล (ในการแลกเปลี่ยนสำหรับจำเป็นต้องเพิ่ม,-9หาเรื่องไปzlib.decompress)


ยินดีต้อนรับสู่เว็บไซต์! :)
DJMcMayhem

6

Java 8, 719 ไบต์

u->{String a="______________";return r(" _"+a,"_")+r("||    x         ","|")+r("||     x       /","|")+r("||     /x'.__.' ",":")+r("|| __.'  x      ","|")+r("||'.     /x'---'",":")+r("||x '. /'  x__ _","|")+r("|| |  /.   /x ' ", ":")+r("|| |  | './  x _","|")+r("||/ '/.  /'. // ","|")+r("||__/___/___/_x","(+)")+r("||  x   x   x /","(O)")+r("||x .x'  x.' xx_",":")+r("|| |  | .'x  /  ","|")+r("|| |  x'   x/_._",":")+r("||/ .' x   /    ","|")+r("||.'_   'x/.---.",":")+r("||   '.  / __   ","|")+r("||     x/.'  '. ",":")+r("||     /       x","|")+r("||____/_________",":")+r("|/"+a,"_");}String r(String a,String b){return a.replace("x","\\")+b+(new StringBuffer(a).reverse()+"\n").replace("/","\\").replace("x","/");}

สามารถเล่นกอล์ฟได้อย่างแน่นอน แต่เป็นเพียงการเริ่มต้นและบางสิ่งบางอย่างที่นักกอล์ฟ Java คนอื่น ๆ สามารถทำได้ ;)

คำอธิบาย:

ลองที่นี่

u->{                          // Method (1) with unused Object parameter and String return-type
  String a="______________";  //  Temp String we use multiple times
  return r(" _"+a,"_")+r("||    x         ","|")+r("||     x       /","|")+r("||     /x'.__.' ",":")+r("|| __.'  x      ","|")+r("||'.     /x'---'",":")+r("||x '. /'  x__ _","|")+r("|| |  /.   /x ' ", ":")+r("|| |  | './  x _","|")+r("||/ '/.  /'. // ","|")+r("||__/___/___/_x","(+)")+r("||  x   x   x /","(O)")+r("||x .x'  x.' xx_",":")+r("|| |  | .'x  /  ","|")+r("|| |  x'   x/_._",":")+r("||/ .' x   /    ","|")+r("||.'_   'x/.---.",":")+r("||   '.  / __   ","|")+r("||     x/.'  '. ",":")+r("||     /       x","|")+r("||____/_________",":")+r("|/"+a,"_");
                              //  Return the result
}                             // End of method (1)

String r(String a,String b){  // Method (2) with two String parameters and String return-type
  return a.replace("x","\\")  //  Return the first halve of the row
         +b                   //   + the middle character(s)
         +(new StringBuffer(a).reverse()+"\n").replace("/","\\").replace("x","/");
                              //   + the reversed first halve
}                             //  End of method (2)

3
"[ ... ] นักกอล์ฟสามารถ Java ( พยายาม ) ชนะ [ ... ]" ดูเหมือนว่าจะเป็นความท้าทายครับ! ความท้าทายได้รับการยอมรับและทำแล้วครับ! ไม่เป็นไรครับ!
Olivier Grégoire

2
โอเคฉันตัดสินใจลอง +1 และความคิดในการใช้สมมาตร ;)
Olivier Grégoire

5

brainfuck , 5173 ไบต์

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

ลองออนไลน์!

มันทำงานอย่างไร

โดยสรุป: ค้นหาดัชนี ascii ของอักขระแต่ละตัวในบรรทัด จากนั้นพิมพ์มัน จากนั้นหาดัชนี ASCII ของบรรทัดใหม่แล้วพิมพ์ออกมา ล้างและทำซ้ำลูกชายของฉัน

The first line (all underscores, so relatively easy):
++++[->++++++++<]>.[->+++<]>-...............................

New line:
>++++++++++.

Second line:
>--[-->+++<]>-..[---->+<]>+....-[->+++<]>-.+[--->+<]>+.........-[->++++<]>.[---->+<]>+.........[-->+++<]>-.+[--->++<]>....-[->++++<]>..

New line:
>++++++++++.
.
.
.
and so on...

5

256 ไบต์, รหัสเครื่อง (16- บิต x86)

ฉันหวังว่าฉันจะสามารถเอาชนะวิธีแก้ปัญหาถ่านอย่างน้อยที่สุด แต่ฉันก็ยังไม่สามารถบีบสิ่งนี้ออกมาได้อีก (จนถึงตอนนี้)

00000000: e8 7d 00 00 01 03 02 05 04 07 04 08 09 0a 0b 0c  .}..............
00000010: 08 0a 0a 10 28 29 5c 2f 27 2e 2b 4f 20 3a 5f 7c  ....()\/'.+O :_|
00000020: 2d 5f 5f 20 0a fd fd 1b 12 fe de 3b 7f 12 ff 1f  -__ .......;....
00000030: 5b a2 e3 5b a3 12 14 15 3d 15 14 29 3b 2d 1d 15  [..[....=..);-..
00000040: 14 42 2f 1f 6b 3b 14 15 1f 83 12 14 5c 14 19 3b  .B/.k;......\..;
00000050: 12 24 15 23 62 3d 2d 5b 2b 43 15 63 12 1f 14 1f  .$.#b=-[+C.c....
00000060: 19 3b 2b 4b 24 15 13 42 2d 5b 13 24 13 15 43 14  .;+K$..B-[.$..C.
00000070: 15 23 13 1f 19 3b 3d 13 5d 13 5d 13 1d 12 10 16  .#...;=.].].....
00000080: be 25 01 bf 00 03 57 57 b1 cc b0 08 f2 aa 5f 47  .%....WW......_G
00000090: ac d4 10 d0 ec 73 06 10 e1 f2 aa eb 05 10 e1 f2  .....s..........
000000a0: ae aa 81 fe 80 01 75 e8 ba 0c 00 5e bf 00 04 5b  ......u....^...[
000000b0: 57 b1 11 f3 a4 4e 4e b1 10 fd ac 3c 03 77 02 34  W....NN....<.w.4
000000c0: 01 fc aa e2 f4 83 c6 12 b0 10 aa 4a 75 e3 b2 0c  ...........Ju...
000000d0: be 76 05 b1 22 ac d7 aa e2 fb 83 ee 44 4a 75 f3  .v..".......DJu.
000000e0: 83 c3 11 b0 04 bf f6 04 aa 83 c7 0f aa bf 4a 06  ..............J.
000000f0: aa 83 c7 0f aa b9 0e 03 5e 89 f7 ac d7 aa e2 fb  ........^.......

วิ่ง: บันทึกไปที่ codegolf.com, dosbox เพื่อดูผลลัพธ์ที่คุณต้องตั้งค่าเบรกพอยต์cs:200และถ่ายโอนข้อมูลหน่วยความจำที่ds:400legth 30e... หรือคุณสามารถผนวกส่วนต่อไปนี้ซึ่งจะถ่ายโอนข้อมูลไปยัง stdout

00000100: 31 db b9 0e 03 ba 00 04 b4 40 cd 21 cd 20        1........@.!.

นี่คือรายการรหัสกอล์ฟครั้งที่สามของฉัน ก่อนหน้านี้หนึ่งคือการเข้ารหัส xor

อีกครั้ง: ทำได้โดยใช้HexEditor HT , โดยไม่ต้องคอมไพเลอร์แต่ใช้ assemble instructionCtrl-A

พยายามสำเร็จ

อย่างไร

อันนี้เอาไปซักหน่อย ...

ฉันเริ่มต้นด้วยวิธีง่าย ๆ ด้วยหนึ่งในสี่ด้านและพยายามสะท้อนมัน ส่งผลให้มีขนาดประมาณ 250 ไบต์และมีเพียง 2 ใน 4 ของพื้นที่ ส่วนใหญ่ของมันนั้นเป็นจตุภาคแรกที่มีขนาด 204 ไบต์

ฉันรู้ว่าสิ่งนี้จะดีกว่า

ฉันตรวจสอบอย่างรวดเร็วว่า lz4 สร้างไฟล์ที่มี 144 ไบต์ (ข้ามส่วนหัว) GZ ให้ผลลัพธ์เป็น ~ 120 ไบต์ แต่เห็นได้ชัดว่าฉันไม่สามารถสร้างตัวขยายการบีบอัดใน 30 หรือมากกว่านั้น

ดังนั้นความพยายามอีกอย่างก็คือการทำกราฟิคด้วยการวาดจตุภาคแรกด้วยการวาดมัน พร้อมกับรหัสส่งผลให้ 164 ไบต์ (ใจว่าเป็น Quadrant แรกเท่านั้น) ดี แต่ฉันค่อนข้างมั่นใจว่าฉันสามารถทำได้ดีกว่า

ฉันมากับการเข้ารหัสบางส่วนซึ่งลงท้ายด้วย85ไบต์สำหรับข้อมูล พร้อมกับตารางการแปล (ที่ยังไม่ได้ใช้) และตัวถอดรหัสฉันลงเอยด้วย 144ไบต์ ไม่ดีฉัน = lz4 และมีตัวถอดรหัสอยู่แล้ว

ขั้นตอนต่อไปคือการรวมการทำมิรเรอร์เริ่มต้นจากความพยายาม ~ 250 ถึงอันนี้จำเป็นต้องมีการปรับแต่งข้อมูลบางอย่าง แต่ทำได้ง่ายกว่าที่คาดไว้และมีขนาด 184bytes

ฉันรู้ว่าฉันจะต้องมีเครื่องหมายเพิ่มเติมเพื่อทำมิเรอร์แนวนอนซึ่งขยายข้อมูลเป็น 91b และรหัสเป็น 190bytes (ซึ่งเปลี่ยนเป็นถังขยะในภายหลัง)

พร้อมกับกระจกแนวนอนและการแปลครั้งสุดท้ายฉันลงเอยด้วย ~ 250 ไบต์

ฉันจัดการที่จะกินไม่กี่ไบต์ที่นี่และที่นั่น แต่ต้องเพิ่มตัวอักษรที่น่าเกลียดที่สะท้อนอย่างไม่ถูกต้อง นั่นให้ผล 259 ไบต์ ... มันแย่มากเพราะฉันใช้หน่วยความจำเริ่มต้นที่ 0x200 และไม่ต้องการที่จะทำซ้ำ

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

คุณสามารถดูแกลเลอรี่ที่ดีที่ฉันได้ทำในขณะที่ทำที่นี่

การผ่า

ตามรายการก่อนหน้ารายการนี้ขึ้นอยู่กับค่าเริ่มต้นแม้ว่าจะไม่มากเท่ากับรายการก่อนหน้า:

:0100 E8 7D 00                    call    0x180

ข้ามข้อมูลมี 3 ตารางต่อไปนี้:

:0103  db 00h,01h,03h,02h,05h,04h,07h,04h,08h,09h,0Ah,0Bh,0Ch,08h,0Ah,0Ah,10h

ตารางการแปลจะใช้สำหรับการมิเรอร์แนวนอน

:0114  db "()\/'.+O :_|-__ \n"

ตารางการแปลจะใช้สำหรับการทดแทนขั้นสุดท้ายเพื่อแปลงรหัสเป็น ascii จริง

:0125  db FDh,FDh,1Bh,12h,FEh,DEh,3Bh,7Fh,12h,FFh...

ข้อมูลที่เข้ารหัสการเข้ารหัสนั้นง่ายมาก:

  • ตอดต่ำเป็นรหัสอักขระ
  • แทะสูง:
    • ถ้าบิตต่ำสุดคือ 1 ตีความอีก 3 บิตว่า 'ทำซ้ำ' (+ เพิ่ม 1) ของรหัสที่ตอดต่ำ
    • มิฉะนั้นจะตีความว่าเป็นจำนวนไบต์เป็น 'ข้าม' จากนั้นให้ใส่รหัสที่ต่ำกว่า
:0180 BE 25 01            mov     si, 125h
:0183 BF 00 03            mov     di, 300h
:0186 57                  push    di
:0187 57                  push    di
:0188 B1 CC               mov     cl, 0CCh
:018A B0 08               mov     al, 8
:018C F2 AA               repne stosb

เติม 12 * 17 ไบต์ด้วยสิ่งที่จะกลายเป็นช่องว่าง (8)

:018E 5F                  pop     di
:018F 47                  inc     di
:0190
:0190 AC                  lodsb
:0191 D4 10               aam     10h
:0193 D0 EC               shr     ah, 1
:0195 73 06               jnb     short 0x19D
:0197 10 E1               adc     cl, ah
:0199 F2 AA               repne stosb
:019B EB 05               jmp     short 0x1A2
:019D
:019D 10 E1               adc     cl, ah
:019F F2 AE               repne scasb
:01A1 AA                  stosb
:01A2
:01A2 81 FE 80 01         cmp     si, 180h
:01A6 75 E8               jnz     short 0x190

"Decompress" ข้อมูลตามที่อธิบายไว้ในตารางที่ 3 การใช้งานใจของการเรียนการสอน AAMที่รักและการใช้ scasb เพื่อข้ามไบต์

:01A8 BA 0C 00            mov     dx, 0Ch
:01AB 5E                  pop     si
:01AC BF 00 04            mov     di, 400h
:01AF 5B                  pop     bx
:01B0 57                  push    di
:01B1
:01B1 B1 11               mov     cl, 11h          <--
:01B3 F3 A4               rep movsb                  |
:01B5 4E                  dec     si                 |
:01B6 4E                  dec     si                 |
:01B7 B1 10               mov     cl, 10h            |
:01B9                                                |
:01B9 FD                  std                   <--  |
:01BA AC                  lodsb                   |  |
:01BB 3C 03               cmp     al, 3           |  |
:01BD 77 02               ja      short 0x1C1 --  |  |
:01BF 34 01               xor     al, 1        |  |  |
:01C1                                          |  |  |
:01C1 FC                  cld                <--  |  |
:01C2 AA                  stosb                   |  |
:01C3 E2 F4               loop    0x1B9          --  |
:01C5 83 C6 12            add     si, 12h            |
:01C8 B0 10               mov     al, 10h            |
:01CA AA                  stosb                      |
:01CB 4A                  dec     dx                 |
:01CC 75 E3               jnz     short 0x1B1       --

ส่วนนี้ค่อนข้างน่าเกลียดมันกำหนดปลายทางที่ 0x400:

  • คัดลอกแถว
  • มิเรอร์แถว
  • เพิ่ม 'newline' (10 ชม. ที่ 0x1C8)

โปรดทราบว่ากระจกทำโดยใช้ std / cld ในทางที่ผิดเพื่อSIย้อนกลับ เฉพาะ\/()อักขระที่ต้องทำมิเรอร์ซึ่งทำโดย xor ที่ 0x1BF

:01CE B2 0C               mov     dl, 0Ch
:01D0 BE 76 05            mov     si, 576h
:01D3
:01D3 B1 22               mov     cl, 22h    <--
:01D5                                          |
:01D5 AC                  lodsb        <--     |
:01D6 D7                  xlat           |     |
:01D7 AA                  stosb          |     |
:01D8 E2 FB               loop    0x1D5 --     |
:01DA                                          |
:01DA 83 EE 44            sub     si, 44h      |
:01DD 4A                  dec     dx           |
:01DE 75 F3               jnz     short 0x1D3 --
:01E0 83 C3 11            add     bx, 11h         (adjust bx for final xlat below)

นี่คือกระจกแนวนอนโดยใช้ตารางที่ 1 และใช้XLATขนาด 1 ไบต์ที่ยอดเยี่ยม

จากนั้นส่วนที่น่าเบื่อที่แก้ไข 4 "พิกเซล" ฉันจะข้ามมันจากที่นี่มันน่าเบื่อ

:01F5 B9 0E 03            mov     cx, 30Eh
:01F8 5E                  pop     si
:01F9 89 F7               mov     di, si
:01FB
:01FB AC                  lodsb
:01FC D7                  xlat
:01FD AA                  stosb
:01FE E2 FB               loop    0x1FB

ขั้นตอนสุดท้ายของการแปลเป็น ascii

วุ้ย! นั้นน่าสนุก.


3

JavaScript (ES6), 517 ... 459 457 456 433 431 418 409 397 392 392 ไบต์

สอดแทรกบรรทัดของช่องว่างบวกกับช่องว่างต่อท้ายในบรรทัดแรก บางส่วนนี้ยังไม่ได้เล่นกอล์ฟอย่างเหมาะสม - ฉันใช้เวลามากในการทำให้ทุกอย่างทำงาน

o.innerText=(

_=>[(g=n=>` b8b8
|af8f7
zj4aj9|
z 5a 7k|
z 5kacibbic :
z bbic  a jj 3|
zcij 3dkac-3c:
za ci kh  abb b|
z |  ki 3kajcj:
z |  | cik  a b|
zk cki  kci kkj:
zbbkb3kb3kba(e`[r="replace"](/.\d/g,([x,y])=>x.repeat(y))[r](/\w/g,x=>`\\_' +_O'. /`[[i=parseInt(x,21)-10,10-i][n]]||`||`))(0),...g(1).split`
`.reverse()].join`
`[r](/.*/g,x=>x+x[r](/./g,_=>(z=x[--y])?`)\\/`[`(/\\`.indexOf(z)]||z:``,y=16))

)()
body{align-items:center;background:#222;color:#ddd;display:flex;font-size:14px;height:100vh;justify-content:center;}
<pre id=o>

แต่เดิมขึ้นอยู่กับTraktor53 ตั้งแต่ละทิ้งวิธีการแก้ปัญหา โพสต์ได้รับอนุญาต


รายการสิ่งที่ต้องทำ

  1. ค้นหาวิธีที่ไม่แพงในการกำหนดสายอักขระ
  2. พยายามปรับปรุงการแทนที่ RLE
  3. ดูว่าการเปลี่ยน 4 ครั้งล่าสุดสามารถเล่นกอล์ฟได้หรือไม่
  4. ตรวจสอบว่าการสร้างภาพในไตรมาสจะนำไปสู่การประหยัดที่สำคัญ - ฉันสงสัยว่าไม่!
  5. เพิ่มคำอธิบายที่อัปเดต

คุณกำลังคาดเดาว่าการบีบอัด Quadrant สามารถให้ผลตอบแทนที่คุ้มค่า ... ฉันได้มันไปใช้ในกรณีของฉัน แต่การบังคับใช้ที่กว้างขึ้นนั้นไม่แน่นอน
traktor53

@ Traktor53: ทำได้ดีมาก :) รายการนั้นหายไปจากรายการที่ต้องทำของฉันในการแก้ไขโดยหวังว่าจะมีเวลาดูในวันพรุ่งนี้
Shaggy

ฉันประทับใจ. BTW string1[string2.indexOf( char) ]|| char เป็นสิ่งก่อสร้างที่ฉันพยายาม แต่ไม่สามารถจัดการเพื่อลดไบต์ด้วย ทำได้ดี!
traktor53

3

JavaScript 556 468 462 448 438 387 379 ไบต์

let f =

_=>(t="",y=(s,X,L,R)=>{x=M=>{c=s.charCodeAt(i);for(r=c>>4;--r;)t+=(":_| -"+X+M)[c&15]};for(i=0;s[i];i++)x(L);for(--i;i--;)x(R);t+=`
`},`#qqA!
",qq1!
2U,uE"
2c,s#-"
2c-,)*6*)# 
2#6*)3,#5C"
2)*%C(-,)D) 
2,#)*#-'3,6#&"
2#"3-*C-,%)% 
2#"3"#)*-3,#&"
2-#)-*3-)*#=% 
26-F-F-&,.+`.split(`
`).map(s=>y(s," _' '.+","\\/(","/\\)")||s).map((_,i,a)=>i&&y(a[12-i],"_  '.'O","/\\(","\\/)")),t)

o.innerHTML = f()
<pre id="o"></pre>

หัก Golfed

_=>(
  t="",
  y=(s,X,L,R)=>{
     x=M=>{
         c=s.charCodeAt(i);
         for(r=c>>4;--r;)
             t+= ( ":_| -" + X + M )[c&15]
     };
     for(i=0;s[i];i++)
         x(L);
     for(--i;i--;)
         x(R);t+=`
`},
   stringLiteral //  of compressed strings separated by '\n'
   .split(`
`) .map(s=>y(s," _' '.+","\\/(","/\\)")||s)
   .map((_,i,a)=>i&&y(a[12-i],"_  '.'O","/\\(","\\/)"))
   ,t
)

การอัด

โพสต์ดั้งเดิม (556 ไบต์) ใช้ตัวเลขทศนิยมเพื่อระบุการซ้ำซ้อนของอักขระก่อนหน้าในใยแมงมุม เวอร์ชั่นล่าสุดบีบอัดครึ่งทางซ้ายของเว็บเป็นอักขระ 7 บิตโดยที่ nibble ที่สำคัญน้อยที่สุดคือดัชนีในชุดอักขระและบิตลำดับที่สูงกว่าสามบิตระบุจำนวนอักขระที่จะส่งออกบวก 1: ค่า000และ001ไม่ได้ใช้010หมายความว่า 1 ตัวอักษรและ111หมายถึงหก สิ่งก่อสร้างนี้จะช่วยหลีกเลี่ยงการผลิตตัวควบคุม

ขอบคุณ @Shaggy สำหรับเคล็ดลับและลูกเล่นที่มีประโยชน์ในการเขียนใหม่

มันทำงานอย่างไร

ด้านบนซ้ายถูกเขียนใหม่เพื่อรวมตัวยึดสำหรับครึ่งด้านบนและด้านล่างของเว็บ:

  • 'เพื่อ' สลับพื้นที่ด้วยเครื่องหมายขีดล่าง
  • 'u' เพื่อสลับขีดเส้นใต้ด้วยช่องว่าง
  • 'q' เพื่อสลับเครื่องหมายคำพูดด้วยช่องว่างและ
  • 'h' เพื่อสลับพื้นที่ด้วยเครื่องหมายคำพูด (ซ่อน)

ให้:

 ________________
|\_______________
||ssss\sssssssss|
||     \       /|
||     /\'.uu.' :
|| uu.'  \ ss   |
||'.s   h/\'---':
||\ '. /q  \uu u|
|| |  /.   /\s's:
|| |  | './  \ u|
||/ '/.  /'. //s:
||uu/uuu/uuu/u\(+

ซึ่งถูกบีบอัดโดยใช้

charset ::=  ":_| -suqh'.+\/("

การบีบอัด

การบีบอัดจะแมปอักขระที่เข้ารหัสกับอักขระจริงสำหรับแต่ละควอแดรนท์ ในรหัส

  • Xเป็นรายการตัวอักษรที่จัดทำดัชนีซึ่งแตกต่างกันระหว่างส่วนบนและส่วนล่างของเว็บ มันให้ค่าสำหรับตัวยึด "suqh" และการสะท้อนอักขระอย่างหนักเช่นระหว่าง '+' และ 'O'
  • 'L' และ 'R' เป็นรายการตัวอักษรที่ให้การสะท้อนตัวอักษรระหว่างครึ่งซ้ายและครึ่งขวาของเว็บ

การเข้ารหัส

การเข้ารหัสอักขระกลางถูก จำกัด ให้ใช้การขยายตัวอักขระเดียว ลำดับชุดอักขระถูก จำกัด เพื่อไม่ให้สร้าง DEL (0x7F), Grave (0x60) หรือแบ็กสแลช (0x5C) อักขระระหว่างการบีบอัด


นี่คือการอัปเดตล่าช้าในการตอบสนองต่อกิจกรรมของคำถาม


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

@Shaggy ขอบคุณสำหรับเคล็ดลับและคำแนะนำ มั่นใจได้ฉันจะศึกษาปากกาของคุณเพื่อดูว่าคุณทำงานอย่างไร.reduceและ.mapฉันไม่สามารถทำได้ ในช่วงเวลาที่ฉันเปลี่ยนอัลกอริทึมเพื่อรับ 468 ไบต์! สุขสันต์วันหยุด.
traktor53

ทุกเดือนต่อมาและฉันได้ส่งผ่านวิธีแก้ปัญหาเดิมของคุณอีกครั้งตีกอล์ฟให้เหลือ 460 ไบต์ (จนถึงตอนนี้) คุณสนใจไหมถ้าฉันโพสต์ไว้ตอนนี้ว่าคุณหายไปแล้วสำหรับวิธีอื่นหรือไม่?
Shaggy

ไม่ @Shaggy เลยไปเขียนข้างหน้า :-) ฉันหวังว่าจะอ่านผลลัพธ์
traktor53

ขอบคุณมาก. โพสต์
Shaggy

2

/// , 463 ไบต์

/=/---//</ : //;/"""0//9/% //8/|!//7/\/\///6/%!75/&!74/ 8| 73/.'72/'.71/!,70/__7,/! 7&/\\\7/%/\\\&/#/||
||7"/0000_7!/  / ;0
|%;&|
|8!6!18!15!#161&|61&1#1&%203<203&%1# 03!6!!8!!520 #21&%'=':'='&%13#92 &'!%0 _|_ 05'93 &# 8&.,&9'<' &%,.6| #4259_|_ 5%34#& '&.!&2 &&<%936.%' %#0&0_&0_&_%(+)&_%0_%0_%0#!%,%,9&(O)9&,&,5#9.%'!%3 %%_:_&& 25'&. &#436586&24# 8%',%&_._:_._%&,'5| #& 3 %,5!8!%,& 2 %#3_,'%&.=.:.=.%&',_2#,2!& 0,|,0 63,#1%&3!2<3!2%&1#151%|51%1#00&"|"%00||
|&;%|

ลองออนไลน์!


2

Bash ขนาด 391 ไบต์

base64 -d<<<H4sIAPPWTlkAA32SS47EMAhE9zkFO7o1CuxziblASVyEww+FP53WSLGEReLyK4wt8TyOxOO655EpNSBr5M68P5diSzxxF9wUDrUIU7lkJI6bolcWJTeByqFQW5TzPPXqeRJMW4FSi5NSeyIrggTUepXVLgV2a4p0HdIEAy23IovjrIUMJrU/t8JFiXB6eTFAPghRQSvKNlbg9fOuufIZsx+QFf76faObNWOehby2BuKKsuqi6O23Stvau2MYReXXWQgReFgxLEAL9dtZyN+Xue6RXvMspsEtcKt+29Uz2GMJtXW3vBqvbk9GJeyHfr8P549SXjIS/Hsf890gd/ZRxOzoGLmzfsBUeDwN5PEH4O6M4A0DAAA=|gunzip

ลองออนไลน์!

ความรุ่งโรจน์สำหรับทุกคนที่สามารถเอาชนะการบีบอัดแบบตรึง - นี่คือฉันโยนผ้าขนหนู! ฉันยอมรับคน Python ที่เข้าใกล้กับ zlib / gzip ก่อน


2

Perl 5 439 402 ไบต์

แทนที่จะใช้ base64 / gzip วิธีการนี้คือทำมิรเรอร์และพลิกควอดเรนท์ด้านบนซ้ายด้วยการแทนที่ที่เหมาะสม

use 5.010;map{s^t^___^g;s!p!||!g;s%s%  %g;y&b&\\&;my@b=split//;@c=reverse@b[0..15];map{y;\\/(;/\\);;push@b,$_}@c;unshift@a,\@b;say@b}(split/n/," ttttt_n|btttttnpssbssss |npss bsss /|npss /b'.__.' :np __.'sbsss|np'.ss /b'---':npb '. /'sb__ _|np |s/.s /b ' :np |s| './sb _|np/ '/.s/'. // :np__/t/t/_b(+");for$j(0..10){for$i(0..34){$_=$a[$j][$i];y:\\/.'+_:/\\'.O :;s/ /_/ if$a[$j+1][$i]=~s/_/ /;print}say}

ลองออนไลน์

สำหรับผู้ที่สนใจรุ่นแสดงความคิดเห็น:

# use 5.010 is shorter for the says
use 5.010;

map{
# sed replace keys in long string
s^t^___^g;
s!p!||!g;
s%s%  %g;
y&b&\\&;

my@b=split//;
# don't mirror the middle
@c=reverse@b[0..15];

map{
# transliterate the right mirror
y;\\/(;/\\);;
# add to end of current line
push@b,$_
}@c;

# build bottom array
unshift@a,\@b;
#print completed line
say@b

}(split/n/,
# this string is the top left quadrant.
" ttttt_n|btttttnpssbssss |npss bsss /|npss /b'.__.' :np __.'sbsss|np'.ss /b'---':npb '. /'sb__ _|np |s/.s /b ' :np |s| './sb _|np/ '/.s/'. // :np__/t/t/_b(+");

# handle _ changes and print
for$j(0..10){
for$i(0..34){
$_=$a[$j][$i];
# transliterate the bottom chars
y:\\/.'+_:/\\'.O :;
# handle _ adjustments
s/ /_/ if$a[$j+1][$i]=~s/_/ /;
print
}
say
}

1

C #, 484 ไบต์

หมายเหตุ: ฉันไม่ใช่ 100% ในการทำคะแนนเหล่านี้ ด้วยส่วนหัวและส่วนท้ายมันเป็น 544 ไบต์

var w=@" uuuuu_n|\uuuuun||ww\wwww |n||ww \www /|n||ww /\'.__.' :n|| __.'w\www|n||'.ww /\'---':n||\ '. /'w\__ _|n|| |w/.w /\ ' :n|| |w| './w\ _|n||/ '/.w/'. // :n||__/u/u/_\(+".Replace("u", "___").Replace("w", "  ").Split('n');for(int i=0;i<23;i++){var s=w[i<12?i:23-i].Skip(0);if(i>11)s=s.Select((x,j)=>x=='_'||x==' '?w[22-i][j]=='_'?'_':' ':(x+"\\/o.'")["/\\+'.".IndexOf(x)+1]);Console.WriteLine(s.Concat(s.Reverse().Select(x=>(x+"\\/()")["/\\)(".IndexOf(x)+1]).Skip(1)).ToArray());}

Ungolfed:

var w = @" uuuuu_n|\uuuuun||ww\wwww |n||ww \www /|n||ww /\'.__.' :n|| __.'w\www|n||'.ww /\'---':n||\ '. /'w\__ _|n|| |w/.w /\ ' :n|| |w| './w\ _|n||/ '/.w/'. // :n||__/u/u/_\(+".Replace("u", "___").Replace("w", "  ").Split('n');
for (int i = 0; i < 23; i++)
{
    // mirror the web vertically and convert the strings to IEnumerable
    var s = w[i < 12 ? i : 23 - i].Skip(0);
    if (i > 11)
    {
        // shift _ characters up a row, then flip all the mirrored characters (also replace + with o)
        s = s.Select((x, j) => x == '_' || x == ' ' ? w[22 - i][j] == '_' ? '_' : ' ' : (x + "\\/o.'")["/\\+'.".IndexOf(x) + 1]);
    }
    // mirror each string horizontally and flip the mirrored characters
    Console.WriteLine(s.Concat(s.Reverse().Select(x => (x + "\\/()")["/\\)(".IndexOf(x) + 1]).Skip(1)).ToArray());
}

ลองออนไลน์!


1

Ruby 1.9.3, 1102 763 bytes

a=" 9_9_9_4_\n|\\9_9_9_2_/|\n2|4 \\9 |9 /4 2|\n2|5 \\7 /|\\7 /5 2|\n2|5 /\\'.2_.' : '.2_.'/\\5 2|\n2| 2_.'2 \\6 |6 /2 '.2_ 2|\n2|'.5 /\\'3-':'3-'/\\5 .'2|\n2|\\ '. /'2 \\2_ _|_ 2_/2 '\\ .' /2|\n2| |2 /.3 /\\ ' : ' /\\3 .\\2 | 2|\n2| |2 | './2 \\ _|_ /2 \\.' |2 | 2|\n2|/ '/.2 /'. 2/ : 2\\ .'\\2 .\\' \\2|\n2|2_/3_/3_/_\\(+)/_\\3_\\3_\\2_2|\n2|2 \\3 \\3 \\ /(O)\\ /3 /3 /2 2|\n2|\\ .\\'2 \\.' 2\\_:_2/ './2 '/. /2|\n2| |2 | .'\\2 /2 |2 \\2 /'. |2 | 2|\n2| |2 \\'3 \\/_._:_._\\/3 '/2 | 2|\n2|/ .' \\3 /4 |4 \\3 / '. \\2|\n2|.'_3 '\\/.3-.:.3-.\\/'3 _'.2|\n2|3 '.2 / 2_3 |3 2_ \\2 .'3 2|\n2|5 \\/.'2 '. : .'2 '.\\/5 2|\n2|5 /7 \\|/7 \\5 2|\n2|4_/9_|9_\\4_2|\n|/9_9_9_2_\\|\n"
.split '';r='';loop{e=a.shift;break unless e;e.to_i==0 ? r<<e : r<<a.shift*e.to_i};puts r

ลองออนไลน์!


5
เนื่องจากข้อมูลจริงที่จะพิมพ์มีขนาดเพียง 780 ไบต์สคริปต์ที่ใช้งานง่ายputsและสตริงหลายบรรทัดควรใช้ ~ 790 ไบต์ สตริงขนาดใหญ่ของคุณในการสแกนและรหัสในการประมวลผลนั้นยาวกว่าโซลูชันไร้เดียงสา ...
ShadowRanger



1

C #, 401 399 397 396 389 ไบต์

เขียนสิ่งนี้เป็นข้ออ้างที่จะลองใช้การเข้ารหัส Huffman

BigInteger v=0;foreach(var c in @"!P~`]~~R'vZWB';uq4w_HVe,OinAa6=/[ k5)HMJCPVyy)ZtdpW<P*-KAp=b`(p|jvUoBs/d!S4pqmw@ >|b3e;?\o<Hw2Ndi2B+|r}]B'*qHwXv%Zt :Hj[@,^/^/Kq^ep:A!2<GjH5i8yo]thre{B=U:""^DTzb`-xA")v=95*v+c-32;String t=@"wtb/\nb::heb++OO)(--..__heb''\/||  ",s="";for(int p=0;v>0;v/=2)if(t[p+=v%2>0?t[p]-95:1]/24!=4&&(s=(s!=""?t[p+1]+s:s)+t[p]).Length>32+(p=0))Console.WriteLine(s,s="");

Ungolfed:

BigInteger v = 0;
foreach (var c in @"!P~`]~~R'vZWB';uq4w_HVe,OinAa6=/[ k5)HMJCPVyy)ZtdpW<P*-KAp=b`(p|jvUoBs/d!S4pqmw@ >|b3e;?\o<Hw2Ndi2B+|r}]B'*qHwXv%Zt :Hj[@,^/^/Kq^ep:A!2<GjH5i8yo]thre{B=U:""^DTzb`-xA")
    v = 95 * v + c - 32;
String t = @"wtb/\nb::heb++OO)(--..__heb''\/||  ", s = "";

for (int p = 0; v > 0; v /= 2)
    if (t[p += v % 2 > 0 ? t[p] - 95 : 1] / 24 != 4
        && (s = (s != "" ? t[p + 1] + s : s) + t[p]).Length > 32 + (p = 0))
        Console.WriteLine(s, s = "");

เวอร์ชั่นเก่าไม่แสดงความคิดเห็น:

BigInteger v = 0;
// the data here is an encoded version of the right half of the web
foreach (var c in @"!P~`]~~R'vZWB';uq4w_HVe,OinAa6=/[ k5)HMJCPVyy)ZtdpW<P*-KAp=b`(p|jvUoBs/d!S4pqmw@ >|b3e;?\o<Hw2Ndi2B+|r}]B'*qHwXv%Zt :Hj[@,^/^/Kq^ep:A!2<GjH5i8yo]thre{B=U:""^DTzb`-xA")
    v = 95 * v + c - 32; // converts from base-95, I'm using every single-byte printable character in UTF-8
// our binary decision tree for our Huffman coding
// a loweralpha character asks for a bit
//      on zero you increase your pointer by 1
//      on 1 you increase your pointer by an amount equal to the loweralpha character
// every other character is a character that gets printed, followed by its mirrored counterpart
String t = @"wtb/\nb::heb++OO)(--..__heb''\/||  ", s = "";
for (int p = 0, l = 0; v > 0; v /= 2)
{
    p += v % 2 > 0 ? t[p] - 95 : 1; // begin reading one bit at a time and going through the decision tree
    if (t[p] / 24 != 4) // "good enough" for determining if the character is a loweralpha or not
    {
        s = (l++ > 0 ? t[p + 1] + s : s) + t[p]; // add the character and its mirror to both sides of the string, unless we're just starting
        if (l > 16) { Console.WriteLine(s); s = ""; l = 0; } // once the string is long enough, print it
        p = 0;
    }
}

ลองออนไลน์!


คำตอบที่ดี! +1 คุณสามารถกอล์ฟไบต์ที่สองโดยการเปลี่ยนwhile(v>0){ไปforและวางจำนวนเต็มและv/=2ภายในนั้น:for(int p=0,l=0;v>0;v/=2){
เควิน Cruijssen

@KevinCruijssen มันเยี่ยมมากขอบคุณ! ฉันคิดว่ามันคงเป็นเรื่องยากสำหรับ a ที่whileจะใช้พื้นที่เดียวกันกับ a forตอนนี้
Geoffrey

ในกรณีเหล่านั้นที่คุณไม่มีตัวแปรและมีเนื้อความบรรทัดเดียวที่มีความยาวเท่ากัน เช่นนี้ทั้งสามทำเช่นเดียวกันและทั้งสามเป็นระยะเวลาเดียวกัน: for(;someCondition;someAction);VS VSfor(;someCondition;)someAction; while(someCondition)someAction;แต่โดยรวมforแล้วสั้นกว่าwhileดังนั้นฉันจึงใช้forตัวเองเกือบตลอดเวลา
Kevin Cruijssen

1

Python 2 , 395 ไบต์

print'eNp9kk2uwzAIhPc9BTtaPQX2uUQvMBIX4fCPwT9NVSmWbJF4/A3GSNyPR+J23/ORKTUga+SOvD+XYks8cRVcFA61CFM5ZQSOi6J3FiU3gcqhUFuU4zj07HUSTFuBUouTUmciawYJqP1Kq10K7NYU6TykCQZabkUWx5kLGQzqfG6FixLh9PJigHwQooJWlG2sieffq9aK55z1gKzpz/cLXaw5513Ia2sgziirTorefsm0rb0rhpFUft2FEIGHFcMCtFC/3IX8/ZjrHek172IaPAK3qredvYI1llBbb8un8ar2ZFTAeuh3fzh/lPKUEeCnP2bfIHf0UcSs6Bi5o25gKvy2k5H/H7zBvA=='.decode('base64').decode('zlib')

ลองออนไลน์!


1

ช่องว่าง , 4723 4584 ไบต์

S S S T T   T   T   S N
S S T   T   S N
S S S T N
S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S S T T   S T T   T   T   N
S S S T T   T   T   S N
S S T   T   S T S T S S N
S T S S T   N
S N
S S S S T   N
S N
S S N
S S N
S S S T T   S N
S S S T N
S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S S S T   T   T   T   S N
S S S T N
S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S S T T   S T T   T   T   N
S S S T N
S N
S S N
S S N
S S S S T   T   T   T   S N
S N
S S S T T   S T S T S S N
S T S S T   N
S N
S S S T T   T   T   T   T   S N
S N
S S N
S S N
S S N
S S S T T   S N
S T S S T   N
S N
S S N
S S N
S S N
S S N
S S N
S S S T T   S T T   T   T   N
S S S T T   T   T   S N
S S T   T   S N
S T S S T   T   N
S N
S S N
S S N
S S N
S S N
S S N
S S S T T   S T T   T   T   N
S T S S T   N
S N
S S N
S S N
S S N
S S S S T   T   T   T   S N
S N
S S S T T   S T S T S S N
S T S S T   N
S N
S S S T T   T   T   T   T   S N
S N
S S N
S S N
S S N
S S S T T   S T T   T   T   N
S S T   T   S N
S S T   T   T   S S S S N
S S T   T   T   S T T   T   N
S S T   T   T   T   T   T   S N
S N
S S T   S S T   S N
S S T   T   T   S S S S N
S T S S T   S N
S S T   T   S S T   S S N
S T S S T   N
S S T   T   T   S S S S N
S S T   T   T   S T T   T   N
S T S S T   S N
S N
S S T   S S T   S N
S S T   T   T   S S S S N
S S T   T   S T T   T   T   N
S S T   T   S N
S T S S T   S S N
S N
S S N
S S N
S S N
S S S S T   T   T   T   S N
S N
S S S T T   S T S T S S N
S T S S T   N
S N
S S S T T   T   T   T   T   S N
S N
S S N
S S S T T   T   S T T   T   N
S S T   T   T   S S S S N
S T S S T   S N
S N
S S S T T   S N
S T S S T   N
S S S T N
S N
S S T   S S T   S N
S N
S S N
S S S S T   T   T   T   S N
S T S S T   N
S N
S S N
S S S S T   N
S N
S S T   S S T   S N
S S T   T   S T T   T   T   N
S T S S T   N
S N
S S S T T   T   S S S S N
S S T   T   T   S T T   T   N
S T S S T   S N
S N
S S N
S S S S T   T   T   T   S N
S N
S S S T T   S T S T S S N
S T S S T   N
S N
S S S T T   T   S S S S N
S S T   T   T   S T T   T   N
S S S T N
S S T   T   T   T   T   T   S N
S N
S S N
S S S T T   T   S T T   T   N
S S T   T   S T T   T   T   N
S S T   T   S N
S S T   T   T   S S S S N
S S T   T   T   S S S T N
S N
S S N
S S S T T   T   S S S S N
S S T   T   S S T   S S N
S T S S T   N
S S T   T   T   S S S T N
S N
S S N
S S T   S S T   T   N
S S T   T   S T T   T   T   N
S S T   T   S N
S S T   T   T   S T T   T   N
S S T   T   T   T   T   T   S N
S N
S S N
S S S S T   N
S S T   T   T   S T T   T   N
S S T   T   T   S S S S N
S S S T T   T   T   S N
S N
S S S T T   S T S T S S N
S T S S T   N
S N
S S S T T   S N
S S T   T   T   T   T   T   S N
S S T   T   T   S S S S N
S S T   T   T   S T T   T   N
S T S S T   S N
S S T   T   S T T   T   T   N
S T S S T   N
S N
S S N
S S S T T   S N
S T S S T   N
S N
S S N
S S N
S S S S T   T   T   T   S N
S T S S T   N
S N
S S N
S S N
S S S T T   S T T   T   T   N
S T S S T   N
S N
S S N
S S S T T   S N
S T S S T   N
S S T   T   T   S T T   T   N
S S T   T   T   S S S S N
S T S S T   S N
S S T   T   S T T   T   T   N
S S S T T   T   T   S N
S N
S S S T T   S T S T S S N
S T S S T   S N
S N
S S S T T   T   T   T   T   S N
S T S S T   N
S T S S T   N
S N
S S S T T   S T T   T   T   N
S S T   T   T   S T T   T   N
S T S S T   S N
S N
S S N
S S S T T   S T T   T   T   N
S S T   T   S N
S S S T N
S S T   T   T   S S S S N
S S S T N
S S T   T   S S T   S S N
S S S T N
S T S S T   T   N
S S S T N
S S T   T   S T T   T   T   N
S S T   T   S N
S S T   T   T   T   T   T   S N
S N
S S N
S S S T T   T   S T T   T   N
S S T   T   S N
S T S S T   S N
S N
S S S S T   T   T   T   S N
S T S S T   S N
S T S S T   N
S N
S S S T T   S T S T S S N
S T S S T   S N
S N
S S S T T   T   T   T   T   S N
S T S S T   N
S T S S T   N
S N
S S T   S S T   S N
S T S S T   N
S S T   T   T   S S S S N
S S T   T   T   S T T   T   N
S S T   T   S T T   T   T   N
S T S S T   T   N
S N
S S S T T   S N
S T S S T   N
S N
S S S S T   T   T   T   S N
S T S S T   N
S N
S S S T T   S T T   T   T   N
S T S S T   S N
S N
S S S T T   S N
S S T   T   T   S T T   T   N
S S T   T   T   S S S S N
S T S S T   T   N
S S S T T   T   T   S N
S T S S T   N
S N
S S T   S S T   S N
S T S S T   N
S S S T T   T   T   S N
S N
S S S T T   S T S T S S N
S T S S T   N
S N
S S S T T   S T T   T   T   N
S S T   T   T   T   T   T   S N
S S T   T   T   S S S S N
S T S S T   S N
S S T   T   T   S T T   T   N
S T S S T   T   N
S N
S S S T T   S T T   T   T   N
S S T   T   T   S S S S N
S S T   T   T   S T T   T   N
S T S S T   T   N
S S T   T   S T T   T   T   N
S N
S S S S T   N
S S T   T   S S T   S S N
S S S T N
S S T   T   S N
S N
S S S T T   T   T   T   T   S N
S S T   T   T   S T T   T   N
S S T   T   T   S S S S N
S S T   T   S N
S T S S T   T   N
S N
S S S T T   T   S T T   T   N
S S T   T   S N
S S T   T   T   S S S S N
S T S S T   T   N
S S T   T   S N
S S S T T   T   T   S N
S N
S S S T T   S T S T S S N
S T S S T   N
S N
S S S T T   T   T   T   T   S N
S N
S S S T T   S T T   T   T   N
S T S S T   N
S N
S S N
S S T   S S T   T   N
S T S S T   N
S N
S S N
S S T   S S T   T   N
S T S S T   N
S S T   T   S N
S S T   T   T   S T S T N
S S T   T   T   T   T   N
S S T   T   T   S T T   S N
S S T   T   S T T   T   T   N
S S T   T   T   T   T   T   S N
S S T   T   S N
S T S S T   N
S N
S S N
S S S T T   S N
S T S S T   N
S N
S S N
S S S T T   S N
S T S S T   N
S N
S S S S T   T   T   T   S N
S N
S S S T T   S T S T S S N
S T S S T   S N
S N
S S S S T   N
S N
S S S T T   S N
S S S T N
S N
S S N
S S S T T   S N
S S S T N
S N
S S N
S S S T T   S N
S S S T N
S S T   T   S T T   T   T   N
S S T   T   T   S T S T N
S S T   T   T   S S T   T   N
S S T   T   T   S T T   S N
S S T   T   S N
S S S T N
S S T   T   S T T   T   T   N
S S S T N
S N
S S N
S S T   S S T   T   N
S S S T N
S N
S S N
S S T   S S T   T   N
S S S T N
S N
S S S S T   T   T   T   S N
S N
S S S T T   S T S T S S N
S T S S T   S N
S N
S S S T T   S N
S S T   T   T   T   T   T   S N
S S T   T   T   S T T   T   N
S S T   T   S N
S S T   T   T   S S S S N
S T S S T   T   N
S N
S S S T T   S N
S S T   T   T   S T T   T   N
S S T   T   T   S S S S N
S T S S T   T   N
S S T   T   S N
S N
S S T   S S T   S N
S S T   T   S S T   S S N
S T S S T   N
S S T   T   S T T   T   T   N
S N
S S T   S S T   S N
S S T   T   T   S S S S N
S S T   T   T   S T T   T   N
S T S S T   T   N
S T S S T   T   N
S N
S S S T T   T   S S S S N
S T S S T   T   N
S S T   T   T   S T T   T   N
S S T   T   T   T   T   T   S N
S T S S T   S N
S S S T T   T   T   S N
S N
S S S T T   S T S T S S N
S T S S T   N
S N
S S S T T   T   T   T   T   S N
S T S S T   N
S T S S T   N
S N
S S T   S S T   S N
S T S S T   N
S S T   T   T   S T T   T   N
S S T   T   T   S S S S N
S S T   T   S N
S T S S T   T   N
S N
S S S T T   S T T   T   T   N
S T S S T   N
S S S T N
S S S T T   T   T   S N
S S S T N
S T S S T   T   N
S S T   T   S N
S T S S T   N
S N
S S S T T   S T T   T   T   N
S S T   T   T   S S S S N
S S T   T   T   S T T   T   N
S T S S T   T   N
S S S T T   T   T   S N
S T S S T   N
S N
S S T   S S T   S N
S T S S T   N
S T S S T   N
S N
S S S T T   S T S T S S N
S T S S T   S N
S N
S S S T T   T   T   T   T   S N
S T S S T   N
S T S S T   N
S N
S S S T T   S N
S S T   T   T   S S S S N
S T S S T   S N
S N
S S N
S S S T T   S N
S S T   T   S T T   T   T   N
S T S S T   S N
S S T   T   T   S T T   T   N
S T S S T   N
S S T   T   S S T   S S N
S T S S T   N
S T S S T   T   N
S T S S T   N
S S T   T   S N
S S T   T   S T T   T   T   N
S T S S T   S N
S N
S S N
S S S T T   T   S S S S N
S S T   T   S T T   T   T   N
S T S S T   S N
S N
S S S S T   T   T   T   S N
S T S S T   N
S T S S T   N
S N
S S S T T   S T S T S S N
S T S S T   N
S N
S S S T T   S T T   T   T   N
S S T   T   T   T   T   T   S N
S S T   T   T   S T T   T   N
S S T   T   T   S S S S N
S T S S T   S N
S S T   T   S N
S T S S T   T   N
S T S S T   S N
S N
S S S T T   S T T   T   T   N
S S S T N
S N
S S S T T   T   T   T   T   S N
S S S T N
S S S T T   T   T   S N
S S S T N
S T S S T   T   N
S S S T N
S N
S S S T T   S N
S S T   T   T   T   T   T   S N
S N
S S S T T   T   S T T   T   N
S S T   T   S T T   T   T   N
S T S S T   T   N
S S T   T   T   S S S S N
S S T   T   T   S T T   T   N
S T S S T   S N
S S T   T   S N
S S S T T   T   T   S N
S N
S S S T T   S T S T S S N
S T S S T   N
S N
S S S T T   T   S T T   T   N
S S T   T   T   S S S S N
S S T   T   T   T   T   T   S N
S N
S S N
S S N
S S N
S S S T T   S N
S S T   T   S T T   T   T   N
S S T   T   T   S T T   T   N
S S T   T   T   S S S T N
S N
S S N
S S T   S S T   T   N
S S T   T   S S T   S S N
S T S S T   N
S S T   T   T   S S S T N
S N
S S N
S S T   S S T   T   N
S S T   T   S N
S S T   T   S T T   T   T   N
S S T   T   T   T   T   T   S N
S N
S S N
S S N
S S N
S S S T T   T   S S S S N
S S T   T   T   S T T   T   N
S S S T T   T   T   S N
S N
S S S T T   S T S T S S N
S T S S T   N
S N
S S S T T   T   T   T   T   S N
S S S T N
S N
S S S T T   T   S S S S N
S S T   T   T   S T T   T   N
S S T   T   T   T   T   T   S N
S N
S S S T T   S T T   T   T   N
S T S S T   N
S N
S S N
S S N
S S N
S S N
S S S S T   T   T   T   S N
S T S S T   N
S N
S S N
S S N
S S N
S S N
S S S T T   S N
S T S S T   N
S N
S S S T T   T   S T T   T   N
S S T   T   T   S S S S N
S S S T N
S N
S S S T T   T   T   T   T   S N
S S S T T   T   T   S N
S N
S S S T T   S T S T S S N
S T S S T   N
S N
S S S T T   T   T   T   T   S N
S N
S S N
S S N
S S N
S S S T T   S N
S S T   T   S T T   T   T   N
S S T   T   T   S T T   T   N
S S T   T   T   S S S S N
S S S T N
S N
S S T   S S T   S N
S S T   T   T   S T T   T   N
S S T   T   T   T   T   T   S N
S S T   T   S S T   S S N
S T S S T   N
S S T   T   T   S T T   T   N
S S T   T   T   S S S S N
S S S T N
S N
S S T   S S T   S N
S S T   T   T   S T T   T   N
S S T   T   S N
S S T   T   S T T   T   T   N
S S T   T   T   T   T   T   S N
S N
S S N
S S N
S S N
S S S S T   T   T   T   S N
S N
S S S T T   S T S T S S N
S T S S T   N
S N
S S S T T   T   T   T   T   S N
S N
S S N
S S N
S S N
S S S T T   S T T   T   T   N
S T S S T   N
S N
S S N
S S N
S S N
S S N
S S N
S S S T T   S N
S S S T T   T   T   S N
S S T   T   S T T   T   T   N
S T S S T   T   N
S N
S S N
S S N
S S N
S S N
S S N
S S S T T   S N
S T S S T   N
S N
S S N
S S N
S S N
S S S S T   T   T   T   S N
S N
S S S T T   S T S T S S N
S T S S T   N
S N
S S S T T   T   T   T   T   S N
S N
S S N
S S N
S S S T T   S T T   T   T   N
S T S S T   N
S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S S S T   T   T   T   S N
S T S S T   N
S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S S T T   S N
S T S S T   N
S N
S S N
S S N
S S S S T   T   T   T   S N
S N
S S S T T   S T S T S S N
S T S S T   N
S S T   T   S T T   T   T   N
S S S T N
S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S S T T   S N
S S S T T   T   T   S N
S S T   T   S T S T S S N
S S S T N
S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S N
S S S T T   T   T   T   T   S N
N
S S N
S S S T S T T   T   T   S N
T   S S S T N
S S N
S N
N

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

ลองมันออนไลน์

คำอธิบาย:

ผมใช้วิธีการที่อธิบายไว้ในปลายช่องว่างนี้ของฉัน วิธีการอธิบายมีดังนี้:

  • ก่อนกดค่าลบค่าคงที่สำหรับตัวละครทุกตัวที่เราต้องการส่งออกในลำดับที่กลับไปยังสแต็ก
  • จากนั้นสร้าง LOOP และภายในวงนี้เราจะ:
    • วางที่ด้านบนปัจจุบันของสแต็ก
    • เพิ่มค่าคงที่ให้กับค่าปัจจุบันนี้
    • พิมพ์ค่าใหม่นี้เป็นตัวละครไปยัง STDOUT
    • ไปที่การวนซ้ำถัดไปของลูป
  • สิ่งนี้จะออกโดยมีข้อผิดพลาดที่ต้องการค่าสองค่าในสแต็กเมื่อใช้ฟังก์ชันเพิ่มหลังจากที่เราแสดงผลอักขระทุกตัวแล้ว

ค่าคงที่ในอุดมคติคือ94สิ่งที่ฉันสร้างขึ้นด้วยโปรแกรม Javaนี้ การใช้94จะให้โปรแกรม Whitespace ที่มีความยาวรวม7508 ไบต์ (7481 +27 bytes สำหรับ loop) หรือ5791 bytes (5764 +27) หากเราใช้Duplicate Top ( SNS) ไม่ว่าอักขระสองตัวที่อยู่ติดกัน

หลังจากนั้นฉันใช้Copy 1st ( STSSTN), Copy 2nd ( STSSTSN), และCopy 3rd ( STSSTTN) (1-indexed) ทุกที่ที่มันจะบันทึกไบต์ ซึ่งสามารถพบได้ที่เคล็ดลับช่องว่าง ซึ่งทั้งหมดส่งผลให้โปรแกรม4584 ไบต์ที่คุณเห็นที่นี่


1

05AB1E , 204 ไบต์

" '(+-./:O\_|"•5ñǝ¶P
вUÅxSǝTѸ;ÕØ+F&нλ–?°тW¬¬0ZÂ*d’E9U<Tèñˆwãœ&ì‰0Kíš7ùθ²£PŸíн¥°8{²wëp¥‡Λ¿®gs0₂.ÙmòÓÛ‚ÄîÅß∍Ô!мH{gµJõa¦ñCÅ2’‡†ºÞ§Tx]š\å≠„”ak…²¥\‘ôVиHâθDëX₄à&*%ƒ²í3ߨÑ:r‹ÈOê.‡}¬ú[@ÊǝªZ˜f¬Î†Ÿ!1в•12вèR17ôJ».º

ลองออนไลน์
ตรวจสอบว่ามันถูกต้อง

คำอธิบาย:

" '(+-./:O\_|"  # Push string " '(+-./:O\_|"
5ñǝ¶P
вUÅxSǝTѸ;ÕØ+F&нλ–?°тW¬¬0ZÂ*dE9U<Tèñˆwãœ&ì‰0Kíš7ùθ²£PŸíн¥°8wëp¥‡Λ¿®gs0₂.ÙmòÓÛ‚ÄîÅß∍Ô!мH{gµJõa¦ñCÅ2’‡†ºÞ§Tx≠„”ak…²¥\‘ôVиHâθDëX₄à&*%ƒ²í3ߨÑ:r‹ÈOê.‡}¬ú[@ÊǝªZ˜f¬Î†Ÿ!1в•
                # Push compressed integer 82884728546083544802114826866811347888294234139952249449993042546851026466586575621019053395214928564814179141524271139630560365410986413280485520009435856058156273218115974685512908452464400236161169136625844093046037549003472551358816347180245088496758636921040209372081258608689916152211637687400211864355841371146514354551178114229365000601858316896536398050410654536115253951187868762637231796211074036336817668524952
 12в            # Convert it to Base-12 as list: [10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,6,11,11,10,10,10,10,10,10,10,10,10,6,10,10,10,10,11,11,11,9,0,0,0,0,0,0,0,6,0,0,0,0,0,11,11,7,0,5,1,0,0,1,5,6,9,0,0,0,0,0,11,11,11,0,0,0,10,10,0,6,0,0,5,1,0,0,0,11,11,7,5,4,4,4,5,6,9,1,0,0,0,10,1,5,11,11,11,0,0,0,0,6,0,0,0,9,0,1,5,0,6,11,11,7,10,5,10,6,9,0,0,0,1,9,0,0,11,0,11,11,11,0,0,6,0,0,9,1,5,0,11,0,0,11,0,11,11,7,10,9,9,0,1,5,9,0,0,1,9,5,0,9,11,11,8,2,6,0,9,0,0,0,9,0,0,0,9,0,0,11,11,3,2,9,10,6,10,10,10,6,10,10,10,6,10,10,11,11,7,0,6,6,0,5,1,6,0,0,5,6,1,0,6,11,11,11,10,0,9,0,0,6,5,1,0,11,0,0,11,0,11,11,7,0,1,0,9,6,0,0,0,5,6,0,0,11,0,11,11,11,10,0,10,10,9,0,0,1,6,0,5,1,0,9,11,11,7,1,4,4,4,1,9,6,0,0,0,0,0,5,1,11,11,11,0,0,0,0,0,0,9,0,0,1,5,10,10,0,11,11,7,0,1,5,10,10,5,1,9,6,0,0,0,0,0,11,11,11,6,0,0,0,0,0,0,0,9,0,0,0,0,0,11,11,11,0,0,0,0,0,0,0,0,0,9,0,0,0,0,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,9,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0]
    è           # Index each into the string
     R          # Reverse the list of characters
      17ô       # Split it into chunks of size 17
         J      # Join each chunk of characters to a single string
          »     # Join the list of strings by newlines
              # Mirror it with overlap (and output implicitly)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.