Я разрабатываю игру SDL, в которой игрок (человек) может размещать сети на сетке N * M, так что каждая сеть покрывает только один элемент сетки (на сетке есть N * M элементов/ячеек). Теперь в каждом раунде игры (в игре в настоящее время 10 раундов) игрок может размещать сетки на сетке, покупая сети с каждой чистой стоимостью NetCost (которая вычитается из оценки игрока), чтобы ловить шары. Также игрок может перемещать сети в начале любого раунда в ячейку/элемент, разделяющий ребро (т.е. вверх, вниз, влево, вправо). Теперь шары падают в каждом раунде (каждый раунд мгновенно теоретически, хотя в видах игры он длится 2 секунды) Сети игроков ловят эти шары так, что сеть, помещенная в клетку, ловит все шары, которые упали на эту конкретную ячейку. Для каждого пропущенного мяча есть штраф на счет B. Игрок начинает с фиксированного счёта. Компьютерный плеер и игрок-человек играют в одном и том же раунде отдельно, так что выбор, сделанный игроком-человеком, не влияет на компьютер-плеер и наоборот.
Теперь я должен создать эффективный компьютерный плеер для однопользовательского режима. Компьютерный плеер также начнет с того же показателя, что и у человека. Целью компьютерного плеера является получение максимального количества баллов в той же сетке с использованием тех же сетей, доступных пользователю. Этими входами в компьютерный проигрыватель будут шары, падающие в каждом раунде R в начале раунда R вместе с местом их сетки. Как я могу создать эффективный компьютерный плеер для этой игры?Какой алгоритм может быть применен для разработки эффективного компьютерного плеера?
Обратите внимание, что размер сетки постоянный для каждого раунда и составляет 30x30. Стартовый балл фиксируется на уровне 100 000 для обоих игроков. Однако чистая стоимость и штраф за удар шара могут быть выбраны пользователем в начале игры, т.е. до раунда 1. Эти расходы остаются неизменными для всех раундов. Число сетей может ограничить, чтобы сказать 200 за каждый раунд. Я не уверен, какой алгоритм я могу применить здесь. Может ли кто-нибудь помочь мне в правильном направлении?
Вы могли бы уточнить, где шары падают? Может ли игрок предсказать, где будут шары? –
Шарики упадут на ячейки сетки. Для целей игры ячейки являются объектами с размером точек (то есть мяч может упасть где-нибудь внутри ячейки, результат будет таким же, если сеть есть в ячейке, сеть будет поймайте его, иначе счет игрока будет оштрафован). Компьютерный игрок знал бы, где будут падать яйца, как я упоминал в вопросе. Но человеческий игрок не знает. – user1907531
Если компьютер знает, где все шары будут падать, он может просто поставить свои сети там, верно? Это дало бы ему «максимальный результат», хотя было бы не очень весело играть против ... – Thomas