testing RumbleBot

This commit is contained in:
Elias 2025-02-11 14:08:44 +01:00
parent e4dc5ec815
commit 4372c2a991
2 changed files with 123 additions and 0 deletions

92
src/src/RumbleBot.java Normal file
View File

@ -0,0 +1,92 @@
package src;
public class RumbleBot extends Bot{
String[] playerChars = {"<",">","^","v"};
int angle = 0;
int x = 0;
int y = 0;
boolean left = false;
boolean right = false;
boolean up = false;
boolean down = false;
int turnCounter = 0;
int waitTimer = 80;
protected RumbleBot(String[] args) {
super(args);
}
public static void main(String[] args) {
RumbleBot bot = new RumbleBot(args);
bot.run();
}
protected char nextMove(View view){
if(waitTimer > 0){
waitTimer--;
return 0;
}
//back away if possible
if(playerAhead(view) && !view.data.substring(49,50).contains("X")){
return 'v';
}
//shoot target
if(playerAhead(view)){
return 'f';
}
if(view.data.substring(39,40).contains("X") && view.data.substring(49,50).contains("X")){
return '^';
}else turnRight();
// if (x <= 15 && !up){
// x++;
// return '^';
// }else if(angle != 180){
// up = true;
// return turnRight();
// }else if (x >= -15 && !down){
// x--;
// return '^';
// } else if (angle != 0) {
// down = true;
// return turnRight();
// }else if (x < 0){
// x++;
// return '^';
// } else if (angle != 90 && x == 0) {
// return turnRight();
// } else if (y <= 15 && !right) {
// y++;
// return '^';
// } else if (angle != 270) {
// right = true;
// return turnRight();
// } else if(y >= -15 && !left){
// y--;
// return '^';
// }else if(angle != 90){
// turnRight();
// }else if (y > 0){
// y++;
// return '^';
// }
return 0;
}
private boolean playerAhead(View view){
for (String s : playerChars){
if(view.data.substring(4,5).contains(s) || view.data.substring(43,45).contains(s)){
return true;
}
}
return false;
}
private char turnRight(){
angle = (angle + 90) % 360;
return '>';
}
}

31
src/src/test.java Normal file
View File

@ -0,0 +1,31 @@
package src;
public class test extends Bot{
String[] playerChars = {"<",">","^","v"};
protected test(String[] args) {
super(args);
}
public static void main(String[] args) {
test bot = new test(args);
bot.run();
}
protected char nextMove(View view){
if(playerAhead(view)){
return 'f';
}
return '>';
}
private boolean playerAhead(View view){
for (String s : playerChars){
if(view.data.substring(4,5).contains(s) || view.data.substring(13,14).contains(s)){
return true;
}
}
return false;
}
}