Como programa depurador/prueba para mi brainf aplicación * ck, he creado el siguiente bucle de conteo:Infinito Contando Loop en Brainfuck
+[[>+]+]
Con un solo byte, las células que envuelven y con 30k células con envolvente, este crea un ciclo de conteo infinito. Establece cada celda en 1, luego cada celda en 2, etc.
Mi problema es que, cuando llega a 255, el bucle interno incrementa la celda a 0, y luego el bucle externo lo incrementa a 1 inmediatamente. Esto actúa como un "doble paso" cuando se desborda, en lugar de un solo paso. Esta es la única forma en que puedo hacer que el ciclo continúe infinitamente con este programa tan ajustado.
El recuento de cada célula pasa 0 -> 1 -> 2 ... 254 -> 255 -> 1 ...
Aunque me gustaría que vaya 0 -> 1 -> 2 ... 254 -> 255 -> 0 -> 1 ...
Es simplemente difícil de seguir un bucle cuando la celda actual es cero. He jugado con variaciones sobre el mismo tema, pero ninguno lo entiende correctamente.
Este programa en particular es solo un programa de conteo trivial para las pruebas, pero lo que realmente me ayudará con los programas futuros es saber cómo invertir el bucle condicionado como necesito para hacer que este bucle de conteo funcione.
Desafortunadamente, agrega alrededor del 62% de la duración de su programa, y es mucho menos elegante, pero funciona. No estoy convencido de que no haya un camino más corto, pero esto es probablemente el más obvio. – captncraig