SnakeBot fertig

This commit is contained in:
leonmcfly 2024-02-06 19:58:08 +01:00
parent 9de3f327e5
commit 4332f7d10a
2 changed files with 52 additions and 28 deletions

Binary file not shown.

View File

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