Как оценить все возможные группы смежных плиток в 2D массиве? - PullRequest
1 голос
/ 02 октября 2019

Я работаю над идеей игры на основе плитки в Javascript. Это математическая игра-головоломка, в которой игроки перемещаются по плиткам с номерами на них, и цель состоит в том, чтобы соединить группы плиток, которые имеют сумму определенного числа целей, например 5 или 7 или 9. enter image description hereТем не менее, я застрял на алгоритме для обнаружения этих групп сумм. Я знаю, как сделать алгоритм заливки флудом с использованием рекурсии для обнаружения группы соседних плиток, как в той же игре . Но я не знаю, как перебрать все возможные перестановки возможных групп, и как лучше всего подойти к этому?

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

Tile letters     Contains numbers
+---+---+---+    +---+---+---+
| A | B | C |    | 1 | 5 | 2 |
+---+---+---+    +---+---+---+
| D | E | . |    | 2 | 1 | . |
+---+---+---+    +---+---+---+
| F | . | . |    | 4 | . | . |
+---+---+---+    +---+---+---+

Таким образом, группа - это все плитки A, хотя F, и подгруппой могут быть A, B и E (1 + 5 + 1), но также A, D и F (1+ 2 + 4). Но A, C и F не являются возможной группой, потому что эти плитки не смежны.

Как систематически пройти и оценить все возможные перестановки? Есть ли алгоритм для чего-то вроде этого? Или кто-нибудь может объяснить, как подойти к этой проблеме?

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