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