ลอง esolang ที่คิดค้นขึ้นครั้งแรกของฉัน หลังจากความสับสนครั้งแรกฉันพบว่าวิธีแก้ปัญหานั้นง่ายมาก
_1 p
_^v>~2+p
> >~3+p
> >~4+X@7~8+~@$^^{;
> >~5+@7~8+~@${;
คำอธิบาย:
โปรแกรมขี้ผึ้งทำงานบนตารางหกเหลี่ยมแบบสองมิติ โปรแกรมจะถูกจัดเก็บในรูปแบบสี่เหลี่ยม
a — b — c — d
/ \ / \ / \ /
e — f — g — h
/ \ / \ / \ /
i — j — k — l
ถูกเก็บเป็น
abcd
efgh
ijkl
คำแนะนำสำหรับการเคลื่อนที่ในบางทิศทางคือ:
b — d
/ \ / \ bd
< —IP — > or in compact form (β=IP): <β>
\ / \ / pq
p — q
คำอธิบายสั้น ๆ
_1 p
สร้าง IP เพิ่ม 1 จากนั้นเปลี่ยนเส้นทาง IP เป็นบรรทัด 2
_^v>~2+p
สร้าง IP อื่นในกรณีที่บรรทัดที่ 1 หายไปทำให้ IP ช้าลงเพื่อให้แน่ใจว่า IP จากบรรทัดที่หนึ่งอยู่ข้างหน้าจากนั้นเพิ่ม 2 จากนั้นเปลี่ยนเส้นทางไปยังบรรทัดที่ 3
> >~3+p
เพิ่ม 3 จากนั้นเปลี่ยนเส้นทางไปที่บรรทัด 4
> >~4+X@7~8+~@$^^{;
เพิ่ม 4 จากนั้นตั้งค่า lstack ที่ 2 เป็น 15 จากนั้น XOR lstack ค่าสูงสุดและอันดับที่ 2 ชะลอ IP (เพื่อให้แน่ใจว่า IP ในบรรทัดที่ 5 อยู่ข้างหน้าถ้ามีบรรทัดที่ 5 อยู่) และออกผลลัพธ์แล้วยุติโปรแกรม
> >~5+@7~8+~@${;
เพิ่ม 5 จากนั้นทำเช่นเดียวกันกับในบรรทัด 4 ยกเว้นการชะลอตัว
โดยทั่วไปโปรแกรมเพียงคำนวณผลรวม xor 15
- โปรแกรมเหมือนเดิม: (1 + 2 + 3 + 4 + 5) xor 15 = 0
- ไม่มีสาย 1: (2 + 3 + 4 + 5) xor 15 = 1
- ไม่มีบรรทัด 2: (1 + 3 + 4 + 5) xor 15 = 2
- ไม่มีบรรทัดที่ 3: (1 + 2 + 4 + 5) xor 15 = 3
- ไม่มีบรรทัดที่ 4: (1 + 2 + 3 + 5) xor 15 = 4
- ไม่มีบรรทัด 5: (1 + 2 + 3 + 4) xor 15 = 5
การเพิ่ม>
ในบรรทัดที่ 3 ถึง 5 เพียงแค่รับประกันได้ว่าหากหนึ่งใน 2 บรรทัดที่ 4 หายไป IP ยังคงได้รับการเปลี่ยนเส้นทางอย่างถูกต้องและไม่ออกจากโปรแกรม
คุณสามารถโคลนล่ามขี้ผึ้งของฉันที่เขียนใน Julia จากที่เก็บ GitHub ของฉัน
readme บน GitHub นั้นทันสมัยและมีโครงสร้างที่ดีกว่าหน้า esolangs