İlk icat edilmiş esolang'ımı denemek. İlk kargaşanın ardından çözümün çok basit olduğunu gördüm.
_1 p
_^v>~2+p
> >~3+p
> >~4+X@7~8+~@$^^{;
> >~5+@7~8+~@${;
Açıklama:
balmumu programları 2B altıgen ızgara üzerinde çalışır. Programlar dikdörtgen biçiminde saklanır.
a — b — c — d
/ \ / \ / \ /
e — f — g — h
/ \ / \ / \ /
i — j — k — l
olarak saklanır
abcd
efgh
ijkl
Belirli yönlerde hareket etme talimatları şunlardır:
b — d
/ \ / \ bd
< —IP — > or in compact form (β=IP): <β>
\ / \ / pq
p — q
Kısa açıklama
_1 p
Bir IP oluşturun, 1 ekleyin, sonra IP'yi 2. satıra yönlendirin
_^v>~2+p
Satır 1'in eksik olması durumunda, bir satırın IP'sinin önde olduğundan emin olmak için IP'yi yavaşlatın, ardından 2'yi ekleyin, ardından 3. satıra yönlendirin.
> >~3+p
3 ekle, sonra 4. satıra yönlendir
> >~4+X@7~8+~@$^^{;
4 ekleyin, sonra 2. lstack değerini 15'e ayarlayın, sonra XOR lstack top ve 2. değerler, IP'yi yavaşlatın (5. satırdaki IP'nin devam etmesini sağlamak için 5. satır varsa IP'nin durmasını sağlayın) ve sonucu çıkartın, ardından programı sonlandırın.
> >~5+@7~8+~@${;
5 ekleyin, ardından yavaşlama dışında 4. satırdaki gibi yapın.
Temelde program sadece bir xor 15 toplamı hesaplar
- Program bozulmamış: (1 + 2 + 3 + 4 + 5) xor 15 = 0
- Satır 1 eksik: (2 + 3 + 4 + 5) xor 15 = 1
- Satır 2 eksik: (1 + 3 + 4 + 5) xveya 15 = 2
- Satır 3 eksik: (1 + 2 + 4 + 5) xor 15 = 3
- Satır 4 eksik: (1 + 2 + 3 + 5) xor 15 = 4
- Satır 5 eksik: (1 + 2 + 3 + 4) xor 15 = 5
>
3 ila 5 numaralı satırlardaki ekler , 2 ila 4 numaralı satırlardan birinin eksik olması durumunda IP'nin yine de doğru şekilde yönlendirildiğini ve programdan çıkmadığını garanti eder.
Julia'da yazılmış balmumu tercümanımı GitHub depomdan klonlayabilirsin
GitHub'daki benioku dosyası günceldir ve esolangs sayfasından daha iyi yapılandırılmıştır.