Здравствуйте,
есть 3 кучки (в 1 кучке - 7 спичек, во 2 кучке - 5 спичек, в 3 кучке - 3 спички) забирать можно любое количество спичек, но только из одной кучки, проигрывает тот, кто возьмёт последнюю спичку.
Количество ходов в этой игре не такое большое, поэтому думаю можно построить сразу всё дерево игры, но как правильно реализовать минимакс для игры и как хранить дерево игры?
1) Получается, если начальное состояние [7,5,3] и, если компьютер ходит первый, он может взять 1 спичку из любой кучки, 2 спички из любой кучки, 3 спички из любой кучки, 4 спички или из 1, или из 2 кучки, 5 спичек из 1 или 2 кучки, 6 спичек из 1 кучки, 7 спичек из 1 кучки. (имеется 15 вариантов первого хода), 13 вариантов второго хода и т.д.
Как генерировать и хранить в программе эти варианты?
есть 3 кучки (в 1 кучке - 7 спичек, во 2 кучке - 5 спичек, в 3 кучке - 3 спички) забирать можно любое количество спичек, но только из одной кучки, проигрывает тот, кто возьмёт последнюю спичку.
Количество ходов в этой игре не такое большое, поэтому думаю можно построить сразу всё дерево игры, но как правильно реализовать минимакс для игры и как хранить дерево игры?
1) Получается, если начальное состояние [7,5,3] и, если компьютер ходит первый, он может взять 1 спичку из любой кучки, 2 спички из любой кучки, 3 спички из любой кучки, 4 спички или из 1, или из 2 кучки, 5 спичек из 1 или 2 кучки, 6 спичек из 1 кучки, 7 спичек из 1 кучки. (имеется 15 вариантов первого хода), 13 вариантов второго хода и т.д.
Как генерировать и хранить в программе эти варианты?