Compare commits

..

No commits in common. "f67726a7cfb44875470ec5f25ac779f9c24ebccb" and "9de3f327e5c6e1741399822afb81610f578ca0f3" have entirely different histories.

4 changed files with 28 additions and 82 deletions

View File

@ -1,30 +0,0 @@
package Praktikum05;
import java.util.Scanner;
public class RumbleBot extends Bot{
protected RumbleBot(String[] args) {
super(args);
}
private Scanner input = new Scanner(System.in);
@Override
protected char nextMove(View view) throws Exception {
char roverKennung = view.data.charAt(40);
boolean exit = false;
while (!exit) {
input.close();
}
throw new Exception("Beendet");
}
public static void main(String args[]){
Bot bot = new RumbleBot(args);
bot.run();
}
}

View File

@ -13,83 +13,59 @@ public class SnakeBot extends Bot {
public int counter = 0; public int counter = 0;
private Random leftOrRight = new Random(); private Random leftOrRight = new Random();
@Override @Override
protected char nextMove(View view) throws Exception { protected char nextMove(View view) throws Exception{
boolean exit = false; boolean exit = false;
while (!exit) { while(!exit){
System.out.println(counter);
int rockPosition = findNextRock(view); int rockPosition = findNextRock(view);
if (rockPosition != -1) { if(rockPosition != -1){
System.out.println(counter + "| RockPosition: " + rockPosition); testForWagon(view);
return testForWagon(view, rockPosition); return determineNextStep(rockPosition);
} else { }else{
testForWagon(view);
++counter; ++counter;
if (counter < 8) if (counter < 8)
return testForWagon(view, rockPosition); return '^';
else { else{
if (view.data.charAt(10) == '*' || view.data.charAt(11) == '*') { if(leftOrRight.nextBoolean() == true) {
counter = 0;
return '>';
} else if (view.data.charAt(13) == '*' || view.data.charAt(14) == '*') {
counter = 0; counter = 0;
return '<'; return '<';
}else{ }else {
if(leftOrRight.nextBoolean() == true) { counter = 0;
counter = 0; return '>';
return '<';
}else {
counter = 0;
return '>';
}
} }
} }
} }
} }
throw new Exception("Quit"); throw new Exception("Beendet");
} }
private char determineNextStep(int rockPosition) {
private char determineNextStep(int rockPosition,View view) {
if (rockPosition < 10) if (rockPosition < 10)
return '^'; return '^';
else if(rockPosition == 13 || rockPosition == 14 || rockPosition == 18 || rockPosition == 19 || rockPosition == 23 || rockPosition == 24 && !(view.data.charAt(13) != '*' && view.data.charAt(14) != '*')) else if(rockPosition == 13 || rockPosition == 14 || rockPosition == 18 || rockPosition == 19 || rockPosition == 23 || rockPosition == 24)
return '>'; return '>';
else if((rockPosition == 10 || rockPosition == 11 || rockPosition == 15 || rockPosition == 16 || rockPosition == 20 || rockPosition == 21) && !(view.data.charAt(10) != '*' && view.data.charAt(11) != '*')) else if(rockPosition == 10 || rockPosition == 11 || rockPosition == 15 || rockPosition == 16 || rockPosition == 20 || rockPosition == 21)
return '<'; return '<';
else return '^'; else return 0;
} }
private int findNextRock(View view) { private int findNextRock(View view) {
return view.data.indexOf('@'); return view.data.indexOf('@');
} }
// test funktioniert nicht muss angepasst werden vielleicht als boolean oder so
private char testForWagon(View view, int rP){ private char testForWagon(View view){
char move = ' ';
if (view.data.charAt(7) == '*'){ if (view.data.charAt(7) == '*'){
if(view.data.charAt(11) == '*' || view.data.charAt(13) == '*'){ if (view.data.charAt(11) != '*') {
if(view.data.charAt(11) == '*' || view.data.charAt(10) == '*'){ return '<';
}else {
if (view.data.charAt(13) == '*') {
return 'V';
} else {
return '>'; return '>';
}else if(view.data.charAt(13) == '*' || view.data.charAt(14) == '*'){
return '<';
}
}else if(view.data.charAt(11) != '*' && view.data.charAt(13) != '*'){
if(view.data.charAt(8) == '*' || view.data.charAt(9) == '*'){
if(view.data.charAt(10) == '*'){
return '>';
}else if(view.data.charAt(14) == '*'){
return '<';
}
}else if(view.data.charAt(5) == '+' || view.data.charAt(6) == '*'){
if(view.data.charAt(10) == '*'){
return '>';
}else if(view.data.charAt(14) == '*'){
return '<';
}
} }
} }
}else{ }else return 0;
move = determineNextStep(rP, view);
}
System.out.println(move);
return move;
} }
public static void main(String args[]){ public static void main(String args[]){