CAPL 1.5+; 6 ไม่มีอินพุต; 10 - 10 = 0 พร้อมอินพุต
Sidenote
ฉันได้อ่านบาง [link?] ว่าภาษาที่กำหนดเองไม่ได้รับอนุญาตในการเล่นกอล์ฟคำถามเช่นที่พวกเขาจะทำให้ฟังก์ชั่นที่ไม่ตรงกับสิ่งที่เป็นคำถามที่ถาม แต่ฉันทำ CAPL ที่จะทำให้การเล่นกอล์ฟได้ง่ายขึ้นโดยทั่วไป หากคุณคิดว่านี่ไม่ได้รับอนุญาตที่นี่โปรดแจ้งให้เราทราบ!
ฉันได้ความคิดบางอย่างจาก> <>และBefunge (คุณสามารถย้ายระหว่างบรรทัดและใช้อักขระเลขฐานสิบหกเพื่อกดตัวเลข) บางตัวจาก Ruby และบางตัวจากของฉันเองเพื่อทำให้การเล่นกอล์ฟง่ายขึ้น
CAPL อ่านจากซ้ายไปขวาและลงหนึ่งบรรทัดที่ท้ายบรรทัด หากเป็นบรรทัดสุดท้ายโปรแกรมจะหยุดทำงาน
อย่างที่ไม่มีใครรู้ภาษานี้ฉันจะพยายามอธิบายให้มากที่สุด
กำลังส่งออก y 6 ไบต์
bb*.n<
bb*
b
เป็นเลขฐานสิบหกสำหรับ11
เพื่อbb*
เป็น11*11
= 121
ซึ่งเป็น UTF-8 y
เทียบเท่า ค่านี้ถูกส่งไปยังสแต็ก
.
ดึงค่าสูงสุดจากสแต็กและส่งออกเป็น UTF-8 เช่นเดียว121
กับที่ด้านบนของสแต็คดัชนีจะถูกละเว้นที่นี่
n
ขึ้นบรรทัดใหม่
<
ส่งตัวชี้กลับไปที่จุดเริ่มต้นของบรรทัดดังนั้นการทำซ้ำบรรทัดนั้น เนื่องจากเราไม่คาดหวังอินพุตเราสามารถทำสิ่งนี้ได้อย่างปลอดภัยโดยไม่ต้องขออินพุตอีกครั้ง
เอาต์พุตจากอินพุต 10 ไบต์, 0 หลังจากโบนัส
i~a&{X:.)}
i
รับอินพุตจากผู้ใช้ดันเป็น UTF-8 ที่ด้านบนสุดของสแต็กและกดความยาวหลังจากนั้น คือ[72,101,108,108,111,5]
~
ดึงตัวเลขจากสแต็กจากนั้นกลับจำนวนไบต์นั้น Ie [111,108,108,101,72]
a
Hexadecimal สำหรับ10
อักขระบรรทัดใหม่
&{...}
ทำให้วนซ้ำไม่สิ้นสุด เรามีอินพุตดังนั้นเราจึงไม่สามารถส่งตัวชี้กลับไปที่บรรทัด ฉันสามารถวางฟังก์ชั่นในบรรทัดด้านล่างซึ่งจะปลอดภัยฉันไบต์ แต่บรรทัดใหม่ไม่ได้รับอนุญาตในความท้าทายนี้
X
ลบค่าสูงสุดออกจากสแต็ก (ดัชนีจากลูป)
:.
ทำซ้ำค่าสูงสุดจากนั้นส่งออกเป็น UTF-8
)
หมุนสแต็กไปทางขวา ( [1,2,3,4,5]
-> [5,1,2,3,4]
)
Howver ซึ่งหมายความว่าเราเริ่มต้นด้วยการขึ้นบรรทัดใหม่จากนั้นเริ่มเอาท์พุทอินพุตจากนั้นขึ้นบรรทัดใหม่จากนั้นป้อนข้อมูล ฯลฯ หากเราไม่ได้รับอนุญาตให้เริ่มต้นด้วยการขึ้นบรรทัดใหม่ให้ใช้รหัสต่อไปนี้ด้วย 12 ไบต์หรือ 2 หลังจากลบออก โบนัส
iXa#~&{X:.)}
คำสั่งใหม่เฉพาะที่นี่คือ#
ซึ่งจะผลักดันจำนวนรายการในสแต็กไปยังสแต็ก
ฉันลบความยาวออกi
เนื่องจากเพิ่ม 1 แล้วการสลับกับ newline นั้นยาวกว่าการลบและรับความยาวอีกครั้ง
เพื่อความสนุกนี่คือโปรแกรม "Hello World"
"Hello World"#~
#?!;.<
การ?!
ดำเนินการเหมือนกับ> <>
y
หรือ\n
อยู่ภายในสตริงตัวอักษร"?