Здравствуйте, Shmj, Вы писали:
S>Здравствуйте, alpha21264, Вы писали:
S>>>Возможно существует простое правило как не проиграть, но я такого правила не знаю.
A>>Научи программу смотреть на несколько ходов вперёд.
S>Пробовал — нужно достаточно на много ходов смотреть, иначе есть возможность "загнать в угол". Т.е. ходов вообще нет, к примеру (а обратный запрещен).
S>По этому выход — хранить все возможные состояния доски (включая запрещенные ходы и фишки, которым запрещено) — и разрешенные варианты, которые позволяют не проиграть. Из разрешенных вариантов выбираем ход рандомно (кроме случаев, когда победа — тогда такой ход).
S>Причем, что интересно, ни одной полноценной реализации этой игры не встречал. Есть несколько в маркете, но везде алгоритм поверхностный, не гарантирует победу компьютера. А это не интересно — один раз победишь и уже знаешь как играть. В моей версии победа кожаного исключена и кожаный обычно на 30-40 шаге делает ошибку и проигрывает, это в лучшем случае.
Ну храни только выигрышные ходы. Или попробуй шахматы/го написать с таким подходом — удивишься, сколько нужно будет памяти.