Probieren Sie meinen ersten erfundenen Esolang aus. Nach anfänglicher Verwirrung stellte ich fest, dass die Lösung so einfach ist.
_1 p
_^v>~2+p
> >~3+p
> >~4+X@7~8+~@$^^{;
> >~5+@7~8+~@${;
Erläuterung:
Bienenwachsprogramme arbeiten auf einem 2D-Sechseckgitter. Programme werden in einem rechteckigen Format gespeichert.
a — b — c — d
/ \ / \ / \ /
e — f — g — h
/ \ / \ / \ /
i — j — k — l
wird gespeichert als
abcd
efgh
ijkl
Die Anweisungen zum Bewegen in bestimmte Richtungen lauten:
b — d
/ \ / \ bd
< —IP — > or in compact form (β=IP): <β>
\ / \ / pq
p — q
Kurze Erklärung
_1 p
Erstellen Sie eine IP-Adresse, fügen Sie 1 hinzu und leiten Sie die IP-Adresse in Zeile 2 um
_^v>~2+p
Erstellen Sie eine weitere IP-Adresse, falls Zeile 1 fehlt. Verlangsamen Sie die IP-Adresse, um sicherzustellen, dass die IP-Adresse von Zeile 1 voransteht. Fügen Sie dann 2 hinzu und leiten Sie sie zu Zeile 3 weiter
> >~3+p
Addiere 3 und leite dann zu Zeile 4 um
> >~4+X@7~8+~@$^^{;
Addiere 4, setze dann den 2. Stapelwert auf 15, dann den oberen und zweiten XOR-Stapelwert, verlangsame IP (um sicherzustellen, dass IP in Zeile 5 voraus ist, falls Zeile 5 existiert) und gebe das Ergebnis aus, beende dann das Programm.
> >~5+@7~8+~@${;
Addiere 5 und mache dann dasselbe wie in Zeile 4, mit Ausnahme der Verlangsamung.
Grundsätzlich berechnet das Programm nur eine Summe xor 15
- Programm intakt: (1 + 2 + 3 + 4 + 5) xoder 15 = 0
- Zeile 1 fehlt: (2 + 3 + 4 + 5) xoder 15 = 1
- Zeile 2 fehlt: (1 + 3 + 4 + 5) xoder 15 = 2
- Zeile 3 fehlt: (1 + 2 + 4 + 5) xoder 15 = 3
- Zeile 4 fehlt: (1 + 2 + 3 + 5) xoder 15 = 4
- Zeile 5 fehlt: (1 + 2 + 3 + 4) xoder 15 = 5
Die zusätzlichen >
Zeilen 3 bis 5 stellen lediglich sicher, dass bei Fehlen einer der Zeilen 2 bis 4 die IP-Adresse weiterhin ordnungsgemäß umgeleitet wird und das Programm nicht verlässt.
Sie können meinen in Julia geschriebenen Bienenwachs-Interpreter aus meinem GitHub-Repository klonen
Die Readme-Datei auf GitHub ist aktueller und besser strukturiert als die Esolangs-Seite.