крестики-нолики: алгоритм
никак не могу придумать нормальный алгоритм проверки по игре крестики-нолики. Поле 3*3, после пятого хода (ходы записываются в двумерный массив: 0 или 1) надо начинать проверку, есть ли победа, но кроме тупого перебора каждой комбинации ничего не придумывается.
Это если центральная ячейка, тогда 4 комбинаций.
Если угловая - 3 комбинаций
средняя-крайняя - 2 комбинаций.
Вообще есть 8 комбинаций.
Каждой ячейке нужно бы присвоить сигнатуру. Если в i-й позиции стоит 1 значит проверяется i-я комбинация.
Например левая-верхняя ячейка имеет сигнатуру 0x49 или в двоичном виде 01001001
Цитата:
Originally posted by Mоngооsе
Нужно проверить, только те комбинации в которых участвует последним поставленный символ.
Вообще есть 8 комбинаций.
Нужно проверить, только те комбинации в которых участвует последним поставленный символ.
Вообще есть 8 комбинаций.
Немножко не то что спросили щас напишу (сори)
В етой игре ввобще мало комбинаций. Считаем:
9 клеток по 3 состояния (пусто, крестик, нолик)
Всево комбинаций 3^9=19683
Такой масив в память влезет. Если для каждой комбинации пощитать будет ли она финальной и кто победит, то можно получать результат по индексу из масива. Звучит как бред конечно. Но можно пойти и далее. А что если заставить програму играть с человеком. Тогда для каждой комбинации можно записать в масив ход для програми, которий приведет ее к выиграшу (если он возможен).