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; } }