В поисках лучшей системы отслеживания - PullRequest
2 голосов
/ 12 февраля 2012

Я попытаюсь объяснить это простыми словами, потому что это, вероятно, короче, чем если бы я отправил код. Я сделал часть рекурсивного решения, которое должно завершить игру, выбрав правильный «порядок ходов», и если он попадает в тупик, то он должен вернуться назад. Моя текущая система работает, устанавливая идентификатор для любого движения, которое не сработало, чтобы его нельзя было использовать снова при возврате, пока не будет найден новый порядок пути / перемещения.

Однако я столкнулся с проблемой; игра может достичь состояния, когда осталось только два хода, и ни один из них не решит игру. Моя текущая система в основном заставляет эти два хода постоянно менять друг друга, потому что решение пытается воспроизвести ход, видит, что оно не работает, а затем пытается перейти к следующему. Я считаю, что моя проблема заключается в том, что я сбрасываю свой идентификатор, который говорит решению не использовать перемещение, каждый раз, когда выполняется перемещение, но я не уверен, как еще я бы его настроил.

Дайте мне знать, если вам нужна дополнительная информация или есть какие-либо идеи. Спасибо!

1 Ответ

0 голосов
/ 12 февраля 2012

Я не уверен в характере игры, которую вы описываете, и некоторая дополнительная информация может помочь в определении лучшего способа для вас следовать.Я видел ваш комментарий в теме, где вы говорите, что этот индекс сбрасывается после того, как был найден новый ход.Это звучит не очень хорошо.Я полагаю, вам придется это исправить, потому что, как вы только что видели из своего примера, есть случаи, когда он не работает, и у нас не может быть алгоритма, который работает только условно.

Проблема, которую вы описываете, звучит как иградерево?Правильный?Если так, то почему бы не изменить описание проблемы на игровое дерево и использовать один из проверенных алгоритмов поиска по игровому дереву, например Альфа-бета-обрезка , предполагая, что игра является состязательной?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...