2013-03-27 2 views
0

Я разрабатываю игру SDL, в которой игрок (человек) может размещать сети на сетке N * M, так что каждая сеть покрывает только один элемент сетки (на сетке есть N * M элементов/ячеек). Теперь в каждом раунде игры (в игре в настоящее время 10 раундов) игрок может размещать сетки на сетке, покупая сети с каждой чистой стоимостью NetCost (которая вычитается из оценки игрока), чтобы ловить шары. Также игрок может перемещать сети в начале любого раунда в ячейку/элемент, разделяющий ребро (т.е. вверх, вниз, влево, вправо). Теперь шары падают в каждом раунде (каждый раунд мгновенно теоретически, хотя в видах игры он длится 2 секунды) Сети игроков ловят эти шары так, что сеть, помещенная в клетку, ловит все шары, которые упали на эту конкретную ячейку. Для каждого пропущенного мяча есть штраф на счет B. Игрок начинает с фиксированного счёта. Компьютерный плеер и игрок-человек играют в одном и том же раунде отдельно, так что выбор, сделанный игроком-человеком, не влияет на компьютер-плеер и наоборот.
Теперь я должен создать эффективный компьютерный плеер для однопользовательского режима. Компьютерный плеер также начнет с того же показателя, что и у человека. Целью компьютерного плеера является получение максимального количества баллов в той же сетке с использованием тех же сетей, доступных пользователю. Этими входами в компьютерный проигрыватель будут шары, падающие в каждом раунде R в начале раунда R вместе с местом их сетки. Как я могу создать эффективный компьютерный плеер для этой игры?Какой алгоритм может быть применен для разработки эффективного компьютерного плеера?

Обратите внимание, что размер сетки постоянный для каждого раунда и составляет 30x30. Стартовый балл фиксируется на уровне 100 000 для обоих игроков. Однако чистая стоимость и штраф за удар шара могут быть выбраны пользователем в начале игры, т.е. до раунда 1. Эти расходы остаются неизменными для всех раундов. Число сетей может ограничить, чтобы сказать 200 за каждый раунд. Я не уверен, какой алгоритм я могу применить здесь. Может ли кто-нибудь помочь мне в правильном направлении?

+1

Вы могли бы уточнить, где шары падают? Может ли игрок предсказать, где будут шары? –

+0

Шарики упадут на ячейки сетки. Для целей игры ячейки являются объектами с размером точек (то есть мяч может упасть где-нибудь внутри ячейки, результат будет таким же, если сеть есть в ячейке, сеть будет поймайте его, иначе счет игрока будет оштрафован). Компьютерный игрок знал бы, где будут падать яйца, как я упоминал в вопросе. Но человеческий игрок не знает. – user1907531

+0

Если компьютер знает, где все шары будут падать, он может просто поставить свои сети там, верно? Это дало бы ему «максимальный результат», хотя было бы не очень весело играть против ... – Thomas

ответ

0

Похоже, что это пошаговая игра. Если это так, вам нужно взглянуть на minimax search, возможно, с обрезкой альфа-бета (которая представляет собой оптимизацию пространства поиска, которая не изменяет результат минимаксности, а только ускоряет ее - в некоторых случаях значительно).

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

+0

Сэр вы отметили тот факт, что компьютерный игрок знает места мяча только для следующего следующего раунда? – user1907531

+0

На самом деле, я пропустил это, но я думаю, что вы все равно сможете использовать минимакс, чтобы ваш ИИ играл стратегически хорошо, используя вероятность (а не уверенность), что мяч будет падать в определенное место сейчас или позже. –

+0

Сэр, я не уверен, как я могу применить минимакс здесь. Можете ли вы дать небольшой пример того, как принять вероятность падения шара по определенному элементу/ячейке и как решить, когда покупать сети, и должны ли они быть перемещенным? – user1907531

0

Звучит так, как будто вам нужен курс в A.I. Проверьте эту игру, чтобы помочь вам разобраться в продвинутом A.I. ответов: http://www.transience.com.au/pearl.html

Включает случайность и степень сложности для компьютерного плеера. Попросите его ответить в идеальных условиях.

Смежные вопросы