J, 126 124 121 119 116 115 113 105 116 115 112 ตัวอักษร
'|'s":(' 's[:,.(_6[\' || (__)'){~(,-.))&.>,.(|:@(1,.<&5);((i.5)</5|]))".,.1!:1[1[(s=:[,.~,.)9!:7'\=/<=>/=\|='
ใช้อินพุตจากคีย์บอร์ด ตัวอย่าง:
'|'s":(' 's[:,.(_6[\' || (__)'){~(,-.))&.>,.(|:@(1,.<&5);((i.5)</5|]))".,.1!:1[1[(s=:[,.~,.)9!:7'\=/<=>/=\|='
6302715408
|\==============================================================/|
|| (__) (__) (__) (__) (__) (__) (__) (__) (__) (__) ||
|| || (__) (__) (__) || (__) || (__) (__) || ||
|| || || || || || || || || || || ||
|| (__) || || || (__) || (__) || || (__) ||
|<==============================================================>|
|| (__) (__) || (__) (__) (__) || (__) || (__) ||
|| || (__) || (__) (__) || || (__) || (__) ||
|| || (__) || || || || || (__) || (__) ||
|| || || || || || || || (__) || || ||
|| || || || || || || || || || || ||
|| || || (__) || || || (__) || (__) || ||
|| (__) || (__) || || (__) (__) || (__) || ||
|| (__) || (__) (__) (__) (__) (__) || (__) || ||
|| (__) (__) (__) (__) (__) (__) (__) || (__) (__) ||
|| (__) (__) (__) (__) (__) (__) (__) (__) (__) (__) ||
|/==============================================================\|
เคล็ดลับหลักของที่นี่คือการใช้ชกมวยของ J โดยการนิยามตัวละครที่ใช้ใหม่ มันใช้พารามิเตอร์ส่วนกลาง - 9!:7
- เพื่อทำสิ่งนี้ อาจมีห้องสำหรับเล่นกอล์ฟต่อไป แต่ตามจริงแล้วฉันแค่ดีใจที่ได้งานที่ควรชดเชยความพยายามครั้งสุดท้ายของฉันที่คำถามนี้
พอดีกับทวีตที่มีตัวอักษรเหลือพอที่จะพูดว่า 'Gaz ทำสิ่งนี้' :-)
แก้ไข:การออม 3 ตัวเนื่องจากการยืมคำตอบ2 6$' || (__)'
จากJesse Millikan
การแก้ไขเพิ่มเติม:แพ้ 11 ตัวอักษรเพิ่มช่องว่างเพิ่มเติมที่ด้านใดด้านหนึ่งที่ฉันไม่ได้สังเกตเห็นว่าไม่มีอยู่
คำอธิบาย:
รหัสอยู่ในสามส่วนหลัก:
1) ตั้งค่า
[(s=:[,.~,.)9!:7'\=/<=>/=\|='
นี่คือตัวมันเองในสองส่วน
9!:7'\=/<=>/=\|='
กำหนดอักขระที่ J จะใช้เพื่อแสดงกล่อง ปกติแล้วมวยของ J จะมีลักษณะเช่นนี้:
2 2$<"0[1 2 3 4
┌─┬─┐
│1│2│
├─┼─┤
│3│4│
└─┴─┘
แต่หลังจากนิยามใหม่ดูเหมือนว่า:
2 2$<"0[1 2 3 4
\===/
|1|2|
<===>
|3|4|
/===\
(s=:[,.~,.)
กำหนดคำกริยาฉันจะใช้อีกสองสามครั้งในภายหลัง นี่เป็นสถานที่ที่ดีที่สุดในการประกาศ มันต้องใช้ตัวอักษรทางซ้ายและอาเรย์ของตัวละครทางด้านขวาและประกบอาเรย์ระหว่างตัวละคร ตัวอย่างเช่น:
3 5$'abcdefghijklmno'
abcde
fghij
klmno
'-' s 3 5$'abcdefghijklmno'
-abcde-
-fghij-
-klmno-
สุดท้าย[
ก็ทำหน้าที่แยกการตั้งค่าจากส่วนถัดไป
2) การป้อนข้อมูลและการเป็นตัวแทน
,.(|:@(1,.<&5);((i.5)</5|]))".,.1!:1[1
".,.1!:1[1
นำอินพุตจากคีย์บอร์ดและแยกออกเป็นตัวเลขแต่ละตัว:
".,.1!:1[1
314159
3 1 4 1 5 9
((i.5)</5|])
สร้างศูนย์และวัตถุที่เป็นตัวแทนของส่วนล่างของลูกคิด:
((i.5)</5|]) 3 1 4 1 5 9
1 1 1 1 0 1
1 0 1 0 0 1
1 0 1 0 0 1
0 0 1 0 0 1
0 0 0 0 0 0
|:@(1,.<&5)
สร้างศูนย์และตัวแทนคนของส่วนบนของลูกคิด:
|:@(1,.<&5) 3 1 4 1 5 9
1 1 1 1 1 1
1 1 1 1 0 0
ทั้งสองส่วนจะถูกบรรจุเข้าด้วยกันโดยใช้;
:
(|:@(1,.<&5);((i.5)</5|])) 3 1 4 1 5 9
\=======================/
|1 1 1 1 1 1|1 1 1 1 0 1|
|1 1 1 1 0 0|1 0 1 0 0 1|
| |1 0 1 0 0 1|
| |0 0 1 0 0 1|
| |0 0 0 0 0 0|
/=======================\
จากนั้นกล่องจะถูกวางไว้ด้านบนของกล่องอื่นเพื่อสร้างพื้นฐานของลูกคิดให้:
,.(|:@(1,.<&5);((i.5)</5|]))".,.1!:1[1
314159
\===========/
|1 1 1 1 1 1|
|1 1 1 1 0 0|
<===========>
|1 1 1 1 0 1|
|1 0 1 0 0 1|
|1 0 1 0 0 1|
|0 0 1 0 0 1|
|0 0 0 0 0 0|
/===========\
3) การส่งออก
'|'s":(' 's[:,.(_6[\' || (__)'){~(,-.))&.>
&.>
หมายความว่าสิ่งต่อไปนี้จะทำงานบนทั้งสองกล่องในทางกลับกัน
(,-.)
นี่คือตะขอที่จะคัดค้านการป้อนข้อมูลและเพิ่มลงในตอนท้ายของต้นฉบับ:
2 5$1 0 1 0 1
1 0 1 0 1
1 0 1 0 1
(,-.) 2 5$1 0 1 0 1
1 0 1 0 1
1 0 1 0 1
0 1 0 1 0
0 1 0 1 0
นี่เป็นส่วนหนึ่งของการเป็นตัวแทนจริง ๆ แต่สำหรับจุดประสงค์ในการเล่นกอล์ฟควรมีไว้ในหัวข้อนี้ นำไปใช้กับอินพุตก่อนหน้า:
(,-.)&.>,.(|:@(1,.<&5);((i.5)</5|]))".,.1!:1[1
314159
\===========/
|1 1 1 1 1 1|
|1 1 1 1 0 0|
|0 0 0 0 0 0|
|0 0 0 0 1 1|
<===========>
|1 1 1 1 0 1|
|1 0 1 0 0 1|
|1 0 1 0 0 1|
|0 0 1 0 0 1|
|0 0 0 0 0 0|
|0 0 0 0 1 0|
|0 1 0 1 1 0|
|0 1 0 1 1 0|
|1 1 0 1 1 0|
|1 1 1 1 1 1|
/===========\
[:,.(_6[\' || (__)'){~
ตอนนี้เลขศูนย์และคนที่ใช้ในการเลือกสตริงเพื่อเป็นตัวแทนลูกปัดหรือขาดหนึ่ง:
([:,.(_6[\' || (__)'){~(,-.))&.>,.(|:@(1,.<&5);((i.5)</5|]))".,.1!:1[1
314159
\====================================/
| (__) (__) (__) (__) (__) (__) |
| (__) (__) (__) (__) || || |
| || || || || || || |
| || || || || (__) (__) |
<====================================>
| (__) (__) (__) (__) || (__) |
| (__) || (__) || || (__) |
| (__) || (__) || || (__) |
| || || (__) || || (__) |
| || || || || || || |
| || || || || (__) || |
| || (__) || (__) (__) || |
| || (__) || (__) (__) || |
| (__) (__) || (__) (__) || |
| (__) (__) (__) (__) (__) (__) |
/====================================\
แต่ตอนนี้เมื่อโฮเวิร์ดชี้ให้ฉันเห็นมีช่องว่างสั้นด้านหนึ่งของลูกปัด ดังนั้นเราจึงใช้s
คำกริยาที่กำหนดไว้ล่วงหน้าเพื่อทำแซนวิชเนื้อหาของแต่ละช่องระหว่างสองคอลัมน์ของช่องว่าง:
(' 's[:,.(_6[\' || (__)'){~(,-.))&.>,.(|:@(1,.<&5);((i.5)</5|]))".,.1!:1[1
314159
\======================================/
| (__) (__) (__) (__) (__) (__) |
| (__) (__) (__) (__) || || |
| || || || || || || |
| || || || || (__) (__) |
<======================================>
| (__) (__) (__) (__) || (__) |
| (__) || (__) || || (__) |
| (__) || (__) || || (__) |
| || || (__) || || (__) |
| || || || || || || |
| || || || || (__) || |
| || (__) || (__) (__) || |
| || (__) || (__) (__) || |
| (__) (__) || (__) (__) || |
| (__) (__) (__) (__) (__) (__) |
/======================================\
สิ่งที่เหลือก็คือการแปลงให้เป็นสตริงโดยใช้":
เพื่อให้เราสามารถประกบมันระหว่างสองคอลัมน์ของ|
:
'|'s":(' 's[:,.(_6[\' || (__)'){~(,-.))&.>,.(|:@(1,.<&5);((i.5)</5|]))".,.1!:1[1
314159
|\======================================/|
|| (__) (__) (__) (__) (__) (__) ||
|| (__) (__) (__) (__) || || ||
|| || || || || || || ||
|| || || || || (__) (__) ||
|<======================================>|
|| (__) (__) (__) (__) || (__) ||
|| (__) || (__) || || (__) ||
|| (__) || (__) || || (__) ||
|| || || (__) || || (__) ||
|| || || || || || || ||
|| || || || || (__) || ||
|| || (__) || (__) (__) || ||
|| || (__) || (__) (__) || ||
|| (__) (__) || (__) (__) || ||
|| (__) (__) (__) (__) (__) (__) ||
|/======================================\|