public class RumbleBot extends Bot { private int game_state = 0; public static void main(String[] args) { RumbleBot eb = new RumbleBot(args); eb.run(); } public RumbleBot(String[] args) { super(args); } protected char nextMove(View view) throws Exception { String scan = view.data; //if (Gegner in Schusslinie) --> Feuer if (checkFireLane(scan)) { return 'f'; } //if (Gegner links, oder rechts) --> drehen switch (checkLeftAndRight(scan)) { case 0: return '<'; case 1: return '>'; default: break; } //if Hindernis --> drehen if (checkForCollission(scan)) { return '<'; } //else --> laufen return '^'; } private boolean checkFireLane(String scan) { String notEnemy = ".~#XA@"; char c1 = scan.charAt(2); char c2 = scan.charAt(7); if (notEnemy.indexOf(c1) == -1 || notEnemy.indexOf(c2) == -1) { //wenn true, dann Gegner vor uns return true; } else { return false; } } private int checkLeftAndRight(String scan) { String notEnemy = ".~#XA@"; char l1 = scan.charAt(10); char l2 = scan.charAt(11); char r1 = scan.charAt(13); char r2 = scan.charAt(14); if (notEnemy.indexOf(l1) == -1 || notEnemy.indexOf(l2) == -1) { //wenn true, dann Gegner vor uns return 0; } if (notEnemy.indexOf(r1) == -1 || notEnemy.indexOf(r2) == -1) { //wenn true, dann Gegner vor uns return 1; } return 2; } private boolean checkForCollission(String scan) { char c = scan.charAt(7); if (c != '.') { return true; } else { return false; } } }