|
|
|
|
|
|
|
|
|
|
|
package bot; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public class RumbleBot extends Bot { |
|
|
|
|
|
|
|
|
|
|
|
private boolean shouldFire; // wichtig um den Feuerstatus des Bots zu verfolgen |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Konstruktor für RumbleBot |
|
|
|
|
|
public RumbleBot(String[] args) { |
|
|
|
|
|
super(args); //Konstruktor der Elternklasse wird aufgerufen |
|
|
|
|
|
this.shouldFire = false; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// Logik für den RumbleBot, der in Fahrtrichtung schießt |
|
|
|
|
|
@Override |
|
|
|
|
|
protected char nextMove(View view) throws Exception { |
|
|
|
|
|
// Logik für den RumbleBot muss hier dann noch implementiert werden |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Wenn andere Bots in Sicht sind, wird gefeuert |
|
|
|
|
|
if (isOtherBotInSight(view.data)) { |
|
|
|
|
|
shouldFire = true; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (shouldFire) { |
|
|
|
|
|
shouldFire = false; // Zurücksetzen, damit nicht mehrmals hintereinander geschossen wird |
|
|
|
|
|
return 'f'; // Feuerbefehl |
|
|
|
|
|
} |
|
|
|
|
|
return 'w'; // nur als Notloesung gedacht fuer den Anfang |
|
|
|
|
|
} |
|
|
|
|
|
private boolean isOtherBotInSight(String data) { |
|
|
|
|
|
// Überprüft, ob anderer Bot in Sicht sind (z.B., "^", "<", ">", "v" in der Karte) |
|
|
|
|
|
return data.contains("^") || data.contains("<") || data.contains(">") || data.contains("v"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// main Methode um den Bot zu starten |
|
|
|
|
|
public static void main(String[] args) { |
|
|
|
|
|
RumbleBot rumbleBot = new RumbleBot(args); |
|
|
|
|
|
rumbleBot.run(); |
|
|
|
|
|
} |
|
|
|
|
|
} |