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

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

pruefungen:bachelor:aud:loesungss16:codezuraufgabe5d [03.04.2017 09:32] (aktuell)
Danplan angelegt
Zeile 1: Zeile 1:
 +<code java>
 +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;
 +
 + }
 +}
 +
 +
 +
 +</​code>​