2015-08-19 6 views
5

Ho provato questo ciao programma mondiale in Brainfuck. Come posso stampare il testo più volte? Ecco il mio codice:Stampa testo più volte in Brainfuck

+++++++[>++++++++++ <- ] >++.>++++++[>++++++++++ <- ] >+++++++++.>+++++++[>++++++++++ <- ] >++++++..>+++++++[>++++++++++ <- ] >+++++++++.>+++[>++++++++++ <-]>++. >++++++++[>++++++++++<-]>+++++++.>+++++++[>++++++++++<-] >+++++++++.>++++++++[>++++++++++ <-]>++.>+++++++[>++++++++++ <- ] >++++++.>++++++[>++++++++++ <-]>++++++++.>+++[>++++++++++<-]>++.>+++[>++++++++++<-]>+++.>+++[>++++++++++<-]>+++. 

risposta

5

Pensiamo di una parola lunga 5 personaggio come "ciao".

Quindi, se si desidera stampare i 5 caratteri 3 volte si potrebbe avere un codice come questo:

,>,>,>,>,>+++[<<<<<.>.>.>.>.>-] 

Mi spiego il codice:

La prima parte del codice è l'ingresso parte:

,>,>,>,>, 

Quindi si inizializza una variabile contenente le informazioni che si desidera stamparlo 3 volte.

>+++ 

Poi si ha il ciclo che va di nuovo all'inizio, stampa i quei 5 personaggi, e va alla variabile, e farlo diminuire.

[<<<<< //goes back 

.>.>.>.>. //print out 

>-] //decrement 

Se hai l'idea, puoi facilmente migliorare il codice, ad es. mettendoci più anelli, volevo solo mostrarti un'idea semplice.

2

Una risposta più generale è la seguente.

Diciamo che si desidera stampare il testo 5 volte (Chiameremo questo contatore)

+++++ > 

e poi personaggi di importazione fino a quando un \ n (= 10) è dato.

----- -----[+++++ +++++ >, ----- -----] 

L'array ora assomiglia < contatore, 0, string>. Infine, posizioniamo il puntatore al contatore .

<[<]< 

Finiamo stampando la stringa più volte.

[  while (counter) { 
>>[.>] print string 
<[<]<- counter-- 
]  }