2015-08-19 3 views
5

Ich habe dieses Hallo Weltprogramm in Brainfuck ausprobiert. Wie kann ich den Text mehrere Male drucken? Hier ist mein Code:Text mehrfach in Brainfuck drucken

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

Antwort

5

ist ein 5 Zeichen langen Wortes Lassen Sie denken, wie „Hallo“.

Also, wenn Sie wollen, dass es diejenigen 5 Zeichen 3 Mal drucken Sie einen Code wie diese haben könnte:

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

Lassen Sie mich den Code erklären:

Der erste Teil des Codes ist der Eingang Teil:

,>,>,>,>, 

Dann initialisieren Sie eine Variable, die Informationen enthält, die Sie wollen, dass es 3 mal drucken.

>+++ 

Dann haben Sie die Schleife, die zum Anfang zurückgeht, druckt diese 5 Zeichen aus, geht zur Variable und dekrementiert sie.

[<<<<< //goes back 

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

>-] //decrement 

Wenn Sie die Idee haben, dann können Sie den Code leicht verbessern, z. Ich habe mehr Loops hineingelegt, ich wollte dir nur eine einfache Idee zeigen.

2

Eine allgemeinere Antwort lautet wie folgt.

Angenommen, Sie haben den Text 5mal drucken möchten

(wir werden diese Zähler nennen)
+++++ > 

und dann bis zu einem \ n Import-Zeichen (= 10) gegeben ist.

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

Das Array sieht nun wie < Zähler, 0, string>. Schließlich platzieren wir den Zeiger auf Counter.

<[<]< 

Wir beenden, indem wir die Zeichenfolge mehrmals drucken.

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