Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

Javakurs/Übungsaufgaben/Brainfuck/Musterloesung

Hinweis: Die Musterlösung kann von eurer Lösung abweichen, da es immer mehrere Varianten gibt ein Problem zu lösen. Im Zweifelsfall Fragt einen Tutor.

Lösung

/**
 * @author Andy Gunschl (Freitagsrunde)
 *
 */
public class Brainfuck {
	
	private static char[] workingTape ={'a','a','a','a','a','a','a','a','a','a'};
	private static int head = 0;

	public static void main(String[] args) {
		char[] sourceCode = {'#', '+', '#', '+', '#'};
		
		for(int i = 0;i<sourceCode.length;i++){
			progress(sourceCode[i]);
		}
	}

	private static void progress(char command){
		switch(command){
			case '>': head = (head+1)%9; 
				break;
			case '<': head = (head-1)%9;
				break;
			case '+': workingTape[head]=(char) (workingTape[head]+1);
				break;
			case '-': workingTape[head]=(char) (workingTape[head]-1);
				break;
			case '#': System.out.print(workingTape[head]);
				break;
			default: System.out.println("Befehl wurde nicht erkannt bitte Benutze < | > | + | - | #");
		}
	}
}

Kommentare

Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf "bearbeiten" und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)