Задача по C++

Гость19 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
26.12.2005

Разработать программу следующей игры. Игровое поле – область на плоскости, разбитая решеткой, состоящая из правильных шестиугольников, на ячейки. Размер области составляет M ячеек по горизонтали и N по вертикали. Каждая ячейка покрашена в один из K заданных цветов. Левая верхняя и правая нижняя ячейки имеют различный цвет. Цвет остальных ячеек выбирается произвольно. Две ячейки, имеющие один цвет и общую сторону, считаются принадлежащими одной области. Все игровое поле, таким образом, разбито на несколько одноцветных областей.

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

Цель игры – включить в свою область как можно больше ячеек.

Игра заканчивается после того, как все поле оказывается, разбито на две области или после 4-х ходов области ни одного из игроков не увеличиваются. Побеждает игрок, в области которого больше ячеек.

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