![]() |
Игра Гомоку на Си
Доброго времени суток.
Программу написал, есть проверка кто победил при комбинации в 4 "шашки" подряд, работает вертикальная и горизонтальная проверки, но вот беда, все никак не додумаюсь как доделать диагональную. И так о самой игре, в игре 2 игрока по очереди ставят на игральный стол свои "шашки" задача построить цепочку из 4х шашек первым и не дать оппоненту это сделать. (Я сделал саму игру без АИ, то есть 2 игрока играют между собой) в общем игра похожа на крестики-нолики только на площади 10*10. Использую 4 функции void DeskOut(), Input(); int Turn(), Winner(); Turn - определяет кто по очереди должен делать ход Winner - определяет победителя, идет ту самую цепочку из шашек DeskOut - печатает на экран игральный стол Input - берет от пользователя координаты куда ставить шашку Мне необходимо построить алгоритм, который бы по диагонали проверял всю доску на наличие цепочки из 4х шашек одного цвета. Я использовал буквы B - Black W - White. Все голову ломаю, никак не лезет Вот и исходник: Код:
int Winner(){ |
вроде так
Код:
for(i = 0; i < 10; i++) |
Он проверяет только 1 диагональ, то есть 1*1 2*2 3*3 4*4 и тд... Этот вариант я попробовал с самого начала, однако мне необходимо чтобы проверялась вся площадь доски, не с начала координат, а к примеру с 4*8 5*9 6*10 и тд в таком духе.
|
Ну в общем надо чтобы вся доска проверялась по диагонали, вот это я никак не додумаюсь как сделать, пробовал, но мусор выходит
|
Время: 05:10. |
Время: 05:10.
© OSzone.net 2001-