12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- 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;
- }
- }
|