[QUIZ#8] hammet (Brainfuck)

hammet

himekishi
Ok ist vielleicht nicht so im Sinn der Aufgabe, aber ich habe die erste Aufgabe des Quiz in Brainfuck umgesetzt. Für die anderen Aufgaben hatte ich leider keine Zeit, sonst hätte ich diese noch umgesetzt.

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

Wer den Code testen möchte kann dies auf folgender Homepage tuen.
http://koti.mbnet.fi/villes/php/bf.php

Dort einfach den gewünschten Namen eingeben (bei stdin) und anschließend auf "run" klicken.


Ich hoffe das nächste mal habe ich etwas mehr Zeit für das Quiz.
 
Hallo Hammet,

ein paar Kommentare wären ganz schön gewesen. Wie arbeitet denn dein Programm? Ich würde das vermutlich so machen:
  • Gib „Bitte geben Sie Ihren Namen ein: “ aus, verwende dafür die Zellen a[0] und a[1]
  • Lies den Namen ein und speichere ihn beginnend bei a[0]
  • Gib „\nHallo “ aus, verwende dafür die Zellen a[n+1] und a[n+2] (n: Länge des Namens)
  • Gehe zurück zu a[0]
  • Gib den Namen aus
  • Gib „!\n“ aus, verwende wieder a[n+1] und a[n+2]
In Quellcode gegossen:
Code:
Output B	>++++++++[<++++++++>-]<++.
Output i	>++++++[<++++++>-]<+++.
Output t	>+++[<+++>-]<++.
Output t	.
Output e	>+++[<--->-]<------.
Output  	>++++++++[<-------->-]<-----.
Output g	>++++++++[<++++++++>-]<+++++++.
Output e	--.
Output b	---.
Output e	+++.
Output n	>+++[<+++>-]<.
Output  	>++++++++[<-------->-]<--------------.
Output S	>+++++++[<+++++++>-]<++.
Output i	>++++[<++++>-]<++++++.
Output e	----.
Output  	>++++++++[<-------->-]<-----.
Output I	>++++++[<++++++>-]<+++++.
Output h	>+++++[<+++++>-]<++++++.
Output r	>+++[<+++>-]<+.
Output e	>+++[<--->-]<----.
Output n	>+++[<+++>-]<.
Output  	>++++++++[<-------->-]<--------------.
Output N	>++++++[<++++++>-]<++++++++++.
Output a	>++++[<++++>-]<+++.
Output m	>+++[<+++>-]<+++.
Output e	--------.
Output n	>+++[<+++>-]<.
Output  	>++++++++[<-------->-]<--------------.
Output e	>++++++++[<++++++++>-]<+++++.
Output i	++++.
Output n	+++++.
Output :	>+++++++[<------->-]<---.
Output  	>+++++[<----->-]<-.

Name einlesen	,[>,]

Output 10	>+++[<+++>-]<+.
Output H	>+++++++[<+++++++>-]<+++++++++++++.
Output a	>+++++[<+++++>-]<.
Output l	>+++[<+++>-]<++.
Output l	.
Output o	+++.
Output  	>++++++++[<-------->-]<---------------.

Zelle am Ende des Namens zurück auf 0 setzen
		[-]
Gehe zum Anfang	<[<]>
Name ausgeben	[.>]

Output !	>+++++[<+++++>-]<++++++++.
Output 10	>++++[<---->-]<-------.
Für die Ausgabe der statischen Zeichenketten hab ich str2bf verwendet.

Grüße, Matthias
 
Zurück