[Игра-головоломка] Поиск комбинации квадратов в 2D сетке - PullRequest
0 голосов
/ 03 апреля 2020

Я создаю игру, подобную Lumines Remastered (https://www.youtube.com/watch?v=8aJqNGjLtaY&t=358s), и я был довольно успешен в этом. Но я застрял в одном месте при очистке фигур.

У меня есть сетка 2d Array 16x10, и каждая отдельная часть хранится в ней.

Мне удалось найти все подходящие фигуры, использующие алгоритм заливки и сохраняющие все одинаковые по цвету кусочки в отдельном списке Теперь условие состоит в том, что я хочу удалить только те части, которые находятся в комбинации квадратов с другими, а не с отдельными.

Например: - Like This

Нравится. 1 в квадратной комбинации, и я только хочу удалить их.

Но, Second Image

2 на этом изображении также является действительным квадратом (так, 1 & 2 вместе должны быть удалены). Я не могу понять, как проверить комбинацию квадрата. Любые предложения и идеи будут великолепны.

1 Ответ

0 голосов
/ 03 апреля 2020

Вы, вероятно, могли бы l oop по всем ячейкам и проверить, являются ли они нижним углом квадрата 2x2 одного цвета, и если это так, отметьте все ячейки в этом квадрате для удаления. После завершения l oop вы удаляете / очищаете все отмеченные ячейки.

Это также будет работать для больших групп ячеек, так как они состоят из (перекрывающихся) квадратов 2x2.

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

...