Задание №6
«Крестики-нолики»

Описание задачи

Игровое поле состоит из NхN клеток (число 19<N<41 задается в настройках игры). В игре участвуют два игрока (человек и компьютер). Первый игрок может рисовать в клетке игрового поля только «крестик», второй игрок – «нолик». За каждый ход игрок может нарисовать только один знак. Если линия, соединяющая одинаковые знаки замыкается (возможно соединение по любой из сторон клетки или по углам клеток), то знаки расположенные внутри – меняются на знаки, из которых составлена линия и другой игрок получает право двух ходов. Выигрывает тот игрок, у которого знаков в конце игры больше.

 

Функциональные требования:
  1. Программа должна визуализировать игровое поле и происходящие на нем изменения.
  2. Программа должна реализовывать некоторый оптимальный алгоритм игры компьютера (выбор алгоритма необходимо обосновать). При этом, в каждой новой игре компьютер должен играть по-разному, то есть его ходы не должны быть предсказуемы.
  3. Программа должна анализировать предыдущие ходы и следующий делать на основе проведенного анализа.
  4. По ходу игры программа должна вести протокол игры, в который будут заноситься информационные сообщения о сделанных ходах противников.