Вопрос

Я пытаюсь развиваться Pentago-ГАЕТ В C#.

Прямо сейчас у меня есть режим 2 игроков, который работает отлично.

Проблема в том, что я хочу Один игрок Режим (против компьютера), но, к сожалению, все орудия минимального / негамакса предназначены для один вещь, рассчитанная для каждого «перемещения» (размещение мрамора, движущаяся игра для игры).

но в Pentago, каждый игрок должен сделать два Вещи (поместите мрамор и вращайте одну из внутренних дворов)

Я не понял, как реализовать как вращение части, так и размещение мрамора, и я бы хотел, чтобы кто -то помог мне.

Если вы не знакомы с игрой, вот ссылка на сайт к игре.

Если кто -то хочет, я могу загрузить свой код где -нибудь, если это актуально.

заранее большое спасибо

Это было полезно?

Решение

Если один юридический ход состоит из двух подметок, то ваш «ход» для целей алгоритма игры-это просто кортеж, где первым пунктом является размещение мрамора, а второй пункт-ротация доски, например:

var marbleMove = new MarbleMove(fromRow, fromCol, toRow, toCol);
var boardRotation = new BoardRotation(subBoard, rotationDirection);
var move = new Tuple<MarblMove, BoardRotation>(marbleMove, boardRotation);

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

Другие советы

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

В таком алгоритме, как UCT (который, вероятно, превзойдет Minimax для простых реализаций), разрывание на два движения может быть более эффективным, поскольку алгоритм может сначала выяснить, что перемещает размещение, а затем выяснить, какое вращение лучше всего. (Googling UCT не дает много. Первоначальная исследовательская работа не очень проницательна, но эта страница может быть лучше: http://senseis.xmp.net/?uct)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top