Sie befinden sich hier: Termine » Prüfungsfragen und Altklausuren » Prüfungen im Bachelor-Studium (1. - 5. Semester) » aud » Forendiskussionen » codezuraufgabe5d   (Übersicht)

public class Jul16_ADT {
 
	public static void main(String[] args) {
		LangtonAntJava ant=new LangtonAntJava();
		System.out.println(ant.toString());
		for(int steps=0; steps < 10; steps++){
			ant.step();
			System.out.println(ant.toString());
		}
	}
 
}
class LangtonAntJava {
	boolean[][] raster = new boolean[10][10];
	int x = 5, y = 5, d = 0; // Position und Richtung
 
	public void step() {
		if(x < 0 || x >= raster.length || y < 0 || y >= raster.length )
			return;
 
		boolean col=raster[x][y];
		d=col?(d+1)%4:(d+3)%4;
		raster[x][y]=!col;
 
		switch(d){
		case 0:x--;break;
		case 1:y--;break;
		case 2:x++;break;
		case 3:y++;break;
		}
 
	}
 
	public String toString(){
		String pos0="^";
		String pos3=">";
		String pos2="v";
		String pos1="<";
		String pos= d==0?pos0:d==1?pos1:d==2?pos2:pos3;
		String res="";
		for(int i=0; i < raster.length; i++){
			for(int j=0; j < raster[i].length; j++){
				boolean col=raster[i][j];
 
				if(i == x && j == y){
					res +="| "+pos;
				}else if(col){
					res +="| #";
				}else{
					res +="|  ";
				}
 
			}
			res +="|\n";
		}
		return res;
 
	}
}