Привтствую, уважаемые!
Очень интересует сабж, в частности тонкости устройства игрового цикла. Скажем, в первом приближении (поле М х N, прямоугольное) — все просто:поменял по запросу игрока местами две фишки, удалил линию, сдвинул все вниз, отсыпал новых.
Усложнения начинаются при усложнениях
, например, если игроку позволено менять местами фишки в момент, когда линия еще уничтожается и новые фишки еще сыпятся на свои будущие места. Собственно, с этого места и начинаются вопросы организации внутренних структур: что использовать? очередь состояний, и последовательно отрабатывать каждое состояние? или держать информацию о состоянии и обновлять ее для всех объектов?
Чего-то сумбурно получается, блин. Но представьте, что игрок закрыл одну линию в центре поля, сверху посыпались фишки, сдвигаемые вниз, плюс фишки, добавленные на поле. Естественно, и у тех и у других фишек в конечном итоге есть ячейка, куда она (фишка) должна прилететь. Игрок тем временем убрал еще одну линию в самом низу поля, следовательно, всем фишкам надо теперь падать на одну строку дальше.
Вопрос, собственно, именно в этом разрезе: как правильно — отработать одно состояние (закрытие первой линии), потом перейти к другому (закрытие второй линии), или же внести изменения в первое состояние?
В общем, литература needed, чтобы не рожать велосипед.