Mencoba esolang pertamaku. Setelah kebingungan awal saya menemukan bahwa solusinya sangat sederhana.
_1 p
_^v>~2+p
> >~3+p
> >~4+X@7~8+~@$^^{;
> >~5+@7~8+~@${;
Penjelasan:
program lilin lebah bekerja pada kisi heksagonal 2D. Program disimpan dalam format persegi panjang.
a — b — c — d
/ \ / \ / \ /
e — f — g — h
/ \ / \ / \ /
i — j — k — l
disimpan sebagai
abcd
efgh
ijkl
Petunjuk untuk bergerak ke arah tertentu adalah:
b — d
/ \ / \ bd
< —IP — > or in compact form (β=IP): <β>
\ / \ / pq
p — q
Penjelasan singkat
_1 p
Buat IP, tambahkan 1, lalu redirect IP ke jalur 2
_^v>~2+p
Buat IP lain, hanya dalam kasus baris 1 hilang, memperlambat IP untuk memastikan IP dari baris satu di depan, lalu tambahkan 2, lalu redirect ke baris 3
> >~3+p
Tambahkan 3, lalu redirect ke baris 4
> >~4+X@7~8+~@$^^{;
Tambahkan 4, kemudian atur nilai lstack ke-15, kemudian nilai Xst lstack ke atas dan ke-2, perlambat IP (untuk memastikan IP di jalur 5 ada di depan, jika jalur 5 ada) dan output hasilnya, kemudian hentikan program.
> >~5+@7~8+~@${;
Tambahkan 5, lalu lakukan hal yang sama seperti pada baris 4, kecuali lambat.
Pada dasarnya program hanya menghitung jumlah xor 15
- Program utuh: (1 + 2 + 3 + 4 + 5) xor 15 = 0
- Baris 1 hilang: (2 + 3 + 4 + 5) xor 15 = 1
- Baris 2 hilang: (1 + 3 + 4 + 5) xor 15 = 2
- Baris 3 hilang: (1 + 2 + 4 + 5) xor 15 = 3
- Baris 4 hilang: (1 + 2 + 3 + 5) xor 15 = 4
- Baris 5 hilang: (1 + 2 + 3 + 4) xor 15 = 5
Tambahan >
dalam baris 3 hingga 5 hanya menjamin bahwa jika salah satu dari baris 2 hingga 4 hilang, IP masih akan dialihkan dengan benar dan tidak meninggalkan program.
Anda dapat mengkloning juru lilin lebah saya, yang ditulis dalam Julia, dari repositori GitHub saya
Readme pada GitHub lebih terkini dan terstruktur lebih baik daripada halaman esolang.