Come programma debugger/test per il mio Brainf implementazione * ck, ho creato il seguente ciclo di conteggio:Infinite Conteggio Loop in Brainfuck
+[[>+]+]
Con singolo byte, le cellule confezionamento e con 30K cellule con avvolgente, questo crea un ciclo di conteggio infinito. Imposta ogni cella su 1, quindi ogni cella su 2, ecc.
Il mio problema è che quando arriva a 255, il ciclo interno incrementa la cella a 0, e quindi il ciclo esterno lo incrementa a 1 immediatamente. Questo agisce come un "doppio passo" quando trabocca, invece di un singolo passo. Questo è l'unico modo per far sì che il ciclo continui all'infinito con questo programma serrato.
Il conteggio per ogni cella va 0 -> 1 -> 2 ... 254 -> 255 -> 1 ...
Mentre io vorrei per andare 0 -> 1 -> 2 ... 254 -> 255 -> 0 -> 1 ...
E 'proprio difficile continuare un ciclo quando la cella corrente è pari a zero. Ho suonato con variazioni sullo stesso tema, ma nessuno di loro ha capito bene.
Questo particolare programma è solo un banale programma di conteggio per i test, ma ciò che mi aiuterà veramente con i programmi futuri è sapere come invertire il ciclo condizionale come ho bisogno di fare funzionare questo ciclo di conteggio.
Purtroppo aggiunge circa il 62% alla lunghezza del programma, ed è molto meno elegante, ma funziona. Non sono convinto che non ci sia un modo più breve, ma questo è probabilmente il più ovvio. – captncraig