Questo collegamento deve essere molto utile: http://esolangs.org/wiki/brainfuck_algorithms
Esso contiene algoritmi per la moltiplicazione e anche una condizione IF così come il confronto booleani (per verificare se, per esempio, l'utente preme entrare [carattere 10] per terminare la input.)
Quindi quello che fai è questo (scriverò qualche pseudocodice e poi spetta a te implementarlo usando gli algoritmi descritti lì). Vi dirò anche di dare pseudocodice su come implementare un ciclo while alla fine poiché non è incluso in quella pagina (ma piuttosto semplice, tuttavia ... relativamente). Sarai sicuramente stupito quando riuscirai a capire esattamente cosa sta facendo ogni personaggio: D. In ogni caso, ecco qui:
avete bisogno di due celle A e B
move to B
input a character
while B is not equal to 10 (the newline character) then
subtract 48 from B ('0' is character 48, so if we subtract 48 from any digit entered we should get its value. Of course this assumes that the user only presses digit keys or enter. I'll leave it as an exercise to you to do error checking)
multiply A by 10
add B to A (you can just move B to A like this [<+>-] since you will not need B's value anymore)
move to B
input a character
Ed ecco un po 'di informazioni su come creare un ciclo while. Supponiamo di avere questo codice: while (condition) {body}
. Assumerò che tu sia riuscito a implementare il codice per la condizione usando il link che ti ho dato in precedenza. Hai bisogno di una cella in cui per memorizzare il risultato della condizione, che chiamerò C
execute condition and store result in C
start loop using [[-] (start the loop and immediately clear C)
execute loop body
execute condition and store result in C
end loop using ]
fonte
2012-11-27 12:09:50
Quando ho provato questa linea a https://copy.sh/brainfuck/ ea https://sange.fi/esoteric/brainfuck/impl/interp/i.html, entrambi i siti non è riuscito a fermare. – JSideris