1.4Kпросмотров
15.7%от подписчиков
20 марта 2026 г.
Score: 1.5K
Создаём Крестики-Нолики! В итоге мы получим реальную игру: поле 3×3, два игрока, проверка победы и ничьи. Игроки будут вводить координаты, а программа — валидировать ход и обновлять поле. Создаём поле и текущего игрока:
char[][] b = { {' ', ' ', ' '}, {' ', ' ', ' '}, {' ', ' ', ' '}
};
char player = 'X'; Функция вывода поля:
void print() { for (int i = 0; i < 3; i++) { System.out.println(" " + b[i][0] + " | " + b[i][1] + " | " + b[i][2]); if (i < 2) System.out.println("---+---+---"); }
} Проверка победы (строки, колонки, диагонали):
boolean win(char p) { for (int i = 0; i < 3; i++) if ((b[i][0]==p && b[i][1]==p && b[i][2]==p) || (b[0][i]==p && b[1][i]==p && b[2][i]==p)) return true; return (b[0][0]==p && b[1][1]==p && b[2][2]==p) || (b[0][2]==p && b[1][1]==p && b[2][0]==p);
} Проверка ничьи (нет пустых клеток):
boolean draw() { for (var r : b) for (var c : r) if (c == ' ') return false; return true;
} Основной игровой цикл:
var sc = new java.util.Scanner(System.in); while (true) { print(); System.out.print("Игрок " + player + " (строка и столбец 1-3): "); int r = sc.nextInt() - 1; int c = sc.nextInt() - 1; Проверяем корректность хода: if (r < 0 || r > 2 || c < 0 || c > 2 || b[r][c] != ' ') { System.out.println("Некорректный ход!"); continue; } Делаем ход и проверяем состояние игры: b[r][c] = player; if (win(player)) { print(); System.out.println("Победил " + player + "!"); break; } if (draw()) { print(); System.out.println("Ничья!"); break; } Меняем игрока: player = (player == 'X') ? 'O' : 'X';
}
sc.close(); В итоге получаем полноценную игру: ходы, проверка ошибок, победа и ничья всё работает как на бумаге. 👉 Java Ready | #совет