„SnakeBot.java“ ändern
This commit is contained in:
parent
e917165fa8
commit
d7f85e7568
@ -1,16 +1,16 @@
|
|||||||
package praktikum05;
|
package bot;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class SnakeBotMimi extends Bot{
|
public class SnakeBot extends Bot{
|
||||||
boolean lastMoveWasTurn = false; // Merker, ob der letzte Zug eine Drehung war
|
boolean lastMoveWasTurn = false; // Merker, ob der letzte Zug eine Drehung war
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
Bot snakeBot = new SnakeBotMimi(args);
|
Bot snakeBot = new SnakeBot(args);
|
||||||
snakeBot.run();
|
snakeBot.run();
|
||||||
}
|
}
|
||||||
protected SnakeBotMimi(String[] args) {
|
protected SnakeBot(String[] args) {
|
||||||
super(args);
|
super(args);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -23,9 +23,9 @@ public class SnakeBotMimi extends Bot{
|
|||||||
System.out.println(view.data + " xxx: ");
|
System.out.println(view.data + " xxx: ");
|
||||||
|
|
||||||
// Das ist nur fuer debug
|
// Das ist nur fuer debug
|
||||||
// List<Integer> positions = positionsOfRock(view.data);
|
// List<Integer> positions = positionsOfRock(view.data);
|
||||||
// for (Integer i : positions)
|
// for (Integer i : positions)
|
||||||
// System.out.println("Position: " + i);
|
// System.out.println("Position: " + i);
|
||||||
|
|
||||||
if (lastMoveWasTurn) {
|
if (lastMoveWasTurn) {
|
||||||
lastMoveWasTurn = false; // Merker fuer die letzte Drehung zuruecksetzen
|
lastMoveWasTurn = false; // Merker fuer die letzte Drehung zuruecksetzen
|
||||||
@ -46,40 +46,40 @@ public class SnakeBotMimi extends Bot{
|
|||||||
* @param view
|
* @param view
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private char calculateNextMove(View view){
|
private char calculateNextMove(View view){
|
||||||
List<Integer> positions = positionsOfRock(view.data);
|
List<Integer> positions = positionsOfRock(view.data);
|
||||||
int firstPostion = positions.get(0);
|
int firstPostion = positions.get(0);
|
||||||
|
|
||||||
|
|
||||||
// Wenn das @Zeichen an Position kleiner 11, dann ist es oberhalb von uns
|
// Wenn das @Zeichen an Position kleiner 11, dann ist es oberhalb von uns
|
||||||
if (firstPostion < 11 )
|
if (firstPostion < 11 )
|
||||||
return '^';
|
return '^';
|
||||||
|
|
||||||
// Ist die Position vom @Zeichen zwischn 11 und 12, dann links von uns
|
// Ist die Position vom @Zeichen zwischn 11 und 12, dann links von uns
|
||||||
// wir muessen uns nach links drehen
|
// wir muessen uns nach links drehen
|
||||||
else if (firstPostion >= 11 && firstPostion < 13) {
|
else if (firstPostion >= 11 && firstPostion < 13) {
|
||||||
lastMoveWasTurn = true; // Merker auf true, da wir uns gedreht haben
|
lastMoveWasTurn = true; // Merker auf true, da wir uns gedreht haben
|
||||||
return '<';
|
return '<';
|
||||||
}
|
}
|
||||||
// Bei allen anderen Positionen drehen wir uns nach rechts drehen
|
// Bei allen anderen Positionen drehen wir uns nach rechts drehen
|
||||||
else {
|
else {
|
||||||
lastMoveWasTurn = true; // Merker auf true, da wir uns gedreht haben
|
lastMoveWasTurn = true; // Merker auf true, da wir uns gedreht haben
|
||||||
return '>';
|
return '>';
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Ermittle alle Positionen der Steine innerhalb des flachen Scans
|
* Ermittle alle Positionen der Steine innerhalb des flachen Scans
|
||||||
* @param row das Ergebnis von View.data (der Scan als String)
|
* @param row das Ergebnis von View.data (der Scan als String)
|
||||||
* @return eine Liste mit den Positionen
|
* @return eine Liste mit den Positionen
|
||||||
*/
|
*/
|
||||||
private List<Integer> positionsOfRock (String row){
|
private List<Integer> positionsOfRock (String row){
|
||||||
int index = row.indexOf('@');
|
int index = row.indexOf('@');
|
||||||
ArrayList<Integer> positions = new ArrayList<>();
|
ArrayList<Integer> positions = new ArrayList<>();
|
||||||
while (index >= 0) {
|
while (index >= 0) {
|
||||||
positions.add(index);
|
positions.add(index);
|
||||||
index = row.indexOf('@', index + 1);
|
index = row.indexOf('@', index + 1);
|
||||||
}
|
|
||||||
return positions;
|
|
||||||
}
|
}
|
||||||
|
return positions;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user