Posts tagged with: матч 3

Match-3. Match-3. Создание стартового поля без матчей.

Это первая из статей об алгоритмах match-3 игр.

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

Проблема

Если вы разрабатывали или разрабатываете match-3 игру, то наверняка столкнулись с проблемой исключения готовых матчей на стартовом поле, до того как игрок совершит первое действие.

Основной проблемой является то, что поле генерируется на основе значений генератора случайного числа (как базового так и псевдо-генератора с использованием зерна(seed)). Следовательно у вас нет абсолютно никакой гарантии, что на поле не образуются комбинации 3+ в ряд.

Псевдо-генератор случайных чисел

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

Такой подход помогает в тестировании и отладке, и позволяет получить более предсказуемые результаты, по сравнению с использованием Math.random().

Оба предложенных решения базируются на возможности повторить достигнутый результат.

Решение

Для решения озвученной проблемы я могу предложить два достаточно простых варианта, один из которых крайне очевидный. С него и начнём.
Continue Reading