Probar mi primer esolang inventado. Después de la confusión inicial, descubrí que la solución es muy simple.
_1 p
_^v>~2+p
> >~3+p
> >~4+X@7~8+~@$^^{;
> >~5+@7~8+~@${;
Explicación:
Los programas de cera de abejas funcionan en una cuadrícula hexagonal 2D. Los programas se almacenan en formato rectangular.
a — b — c — d
/ \ / \ / \ /
e — f — g — h
/ \ / \ / \ /
i — j — k — l
se almacena como
abcd
efgh
ijkl
Las instrucciones para moverse en ciertas direcciones son:
b — d
/ \ / \ bd
< —IP — > or in compact form (β=IP): <β>
\ / \ / pq
p — q
Explicación breve
_1 p
Cree una IP, agregue 1, luego redirija la IP a la línea 2
_^v>~2+p
Cree otra IP, en caso de que falte la línea 1, reduzca la velocidad de la IP para asegurarse de que la IP de la línea uno esté adelante, luego agregue 2, luego redirija a la línea 3
> >~3+p
Agregue 3, luego redirija a la línea 4
> >~4+X@7~8+~@$^^{;
Agregue 4, luego establezca el segundo valor de lstack en 15, luego XOR lstack top y 2nd valores, reduzca la velocidad de IP (para asegurarse de que la IP en la línea 5 está adelante, si existe la línea 5) y envíe el resultado, luego finalice el programa.
> >~5+@7~8+~@${;
Agregue 5, luego haga lo mismo que en la línea 4, excepto la ralentización.
Básicamente, el programa solo calcula una suma xo 15
- Programa intacto: (1 + 2 + 3 + 4 + 5) xo 15 = 0
- Falta la línea 1: (2 + 3 + 4 + 5) xo 15 = 1
- Falta la línea 2: (1 + 3 + 4 + 5) xo 15 = 2
- Falta la línea 3: (1 + 2 + 4 + 5) xo 15 = 3
- Falta la línea 4: (1 + 2 + 3 + 5) xo 15 = 4
- Falta la línea 5: (1 + 2 + 3 + 4) xo 15 = 5
El adicional >
en las líneas 3 a 5 solo garantiza que si falta una de las líneas 2 a 4, la IP aún se redirige correctamente y no abandona el programa.
Puedes clonar mi intérprete de cera de abejas, escrito en Julia, desde mi repositorio de GitHub
El archivo Léame de GitHub está más actualizado y mejor estructurado que la página de esolangs.