Размещать прямоугольники на сетке случайно? - PullRequest
0 голосов
/ 10 февраля 2020

Я пытаюсь сделать игру на линкоре. Когда дело дошло до того, чтобы сделать противника ИИ, у меня было несколько идей, как заставить его работать, но я наткнулся на размещение кораблей в первую очередь. Итак, вот некоторая информация о том, что я планирую:

Игрок определяет размер сетки. Затем он определяет, какие и сколько кораблей размещены (высота и ширина каждого корабля). Затем компьютерный оппонент должен приступить к заполнению своего поля теми же кораблями, что и игрок, за исключением, возможно, переворачивания их на 90 градусов. И конечно, он не должен просто копировать доску игроков. Или отражать это или что-то, это должно быть на самом деле случайно. Насколько способен P C, что означает псевдослучайность. То, о чем я сначала думал, будет следующим. Я создаю список с каждым возможным сценарием того, как эти квадраты могут быть размещены в сетке без ущерба для l aws игры. Затем я просто выбираю случайную запись в списке и применяю ее к своей игре. Но это (по моему мнению) не очень эффективно. Так как это делается только один раз за игру, это было бы терпимо, но это просто не кажется мне хорошим решением. Также я подумал о попытке грубой силы, когда компьютер просто выбирает точки и ориентации случайным образом, пока не добьется успеха. Не очень элегантно, особенно если игрок решает заполнить игровое поле множеством кораблей. Поэтому я бы очень хотел услышать мнение ваших парней по этому поводу. Я что-то пропустил? Есть ли алгоритм, который решает такие проблемы?

Привет и спасибо за ваше время!

...