Task Livecoding Java Tictactoe Console

68. Консольная игра «Крестики-нолики» #

Можно пользоваться всем, хотят посмотреть, как ты начинаешь решать сложную задачу, какие вопросы задаешь. Можно спорить с тз аргументированно

Составь пожалуйста код консольной игры крестики нолики,
которая работает следующим образом

1. Сначала тебя спрашивают размер поля
2. Потом ход игрока крестиком
   (указываешь строку и колонку)
3. Потом ход игрока ноликом
   (указываешь строку и колонку)
4. Сделай так чтобы структура программы была следующей

- Main класс
- Класс Game - где игра проходит
- Класс Desk - где собственно сама доска хранится
- Интерфейс AI (для игрока компьютера)
- Класс Player где игрок который руками вводит куда ходить
  (за живого игрока)
- И класс IndianAI где имплементация
  интерфейса AI - живой человек
Спойлеры к решению
Подсказки
💡 Представьте поле как char[][], пустые клетки отмечайте, например, '.'.
💡 Вынесите проверку победы в Desk: проверяйте строки, столбцы и обе диагонали.
💡 Используйте интерфейс AI как стратегию: Move nextMove(Desk, char mark).
💡 Для ввода с консоли используйте один общий Scanner, передавая его в игроков.
💡 Делайте ввод 1-based (строка/колонка с 1), внутри переводите в 0-based и валидируйте.