/
ledart
/
RRP_LedNik
Обзор
Документация
Войти
/
ledart
/
RRP_LedNik
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
server/Bot.java
65 строк
2 KB
Darya
Реализована полная игровая логика: столкновения, система очков, ИИ бота, обработка MOVE команд
15 дек 2025, 21:33
15 дек 2025, 21:33
ce0169c
Код
Авторство
О чём код?
package server; import java.util.Random; public class Bot { private final String name; private final Random random = new Random(); private boolean running = true; private String lastDirection = "RIGHT"; private int moveCounter = 0; public Bot(String name) { this.name = name; } public String getName() { return name; } public void start(GameSession session) { new Thread(() -> { System.out.println("[Bot] " + name + " started in game session"); while (running && !session.isGameOver()) { String direction = chooseDirection(); session.handleMove(name, direction); lastDirection = direction; moveCounter++; try { // Бот движется с переменной скоростью int delay = 400 + random.nextInt(400); // 400-800 мс Thread.sleep(delay); } catch (InterruptedException ignored) { Thread.currentThread().interrupt(); break; } } System.out.println("[Bot] " + name + " stopped"); }, "Bot-" + name).start(); } private String chooseDirection() { // Каждые 5-10 ходов бот может сменить направление if (moveCounter > 0 && random.nextInt(100) < 30) { // 30% шанс сменить направление return getRandomDirection(); } // 70% шанс продолжить в том же направлении return lastDirection; } private String getRandomDirection() { return switch (random.nextInt(4)) { case 0 -> "UP"; case 1 -> "DOWN"; case 2 -> "LEFT"; default -> "RIGHT"; }; } public void stop() { running = false; } }