BotRoss/src/EnemyBot.java
2024-01-25 18:04:53 +01:00

53 lines
1.3 KiB
Java

import java.util.Random;
public class EnemyBot extends Bot {
protected final Random random = new Random();
protected EnemyBot(String[] args) {
super(args);
}
@Override
protected char nextMove(View view) {
int size = view.width;
String data = view.data
.replace('^', '*')
.replace('<', '*')
.replace('>', '*')
.replace('v', '*');
char[][] grid = dataToGrid(data, size);
if (data.contains("*") && isInLineOfSight(grid))
return 'f';
return switch (random.nextInt(10)) {
case 1 -> '<';
case 2 -> '>';
case 3 -> 'v';
default -> '^';
};
}
@Override
protected void print(View view) {
}
protected char[][] dataToGrid(String data, int size) {
char[][] grid = new char[size][size];
for (int i = 0; i < data.length(); i++) {
grid[i % size][i / size] = data.charAt(i);
}
return grid;
}
protected boolean isInLineOfSight(char[][] grid) {
int size = grid.length;
for (int y = size / 2; y > 0; y--) {
if (grid[size / 2][y] == '*')
return true;
}
return false;
}
}