В общем-то мысль про box2D у меня была... Когда я взялся за функцию появления новых блоков.
Нахождение схожих и общая, стартовая, расстановка блоков, падание блоков после убирания схожих - уже было сделано. Загвоздка стала именно с появлением новых. Потому что они сдвигали все блоки на одну ячейку влево. И нужно было ещё учитывать пустые ячейки, которые могли быть между основной "кучей" блоков и каким-нибудь остатком.
В общем - после попыток всё это собрать, я посмотрел в сторону box2D. Но, как писал выше - после двух часов бесплотных попыток заставить его работать - плюнул и таки собрал нужную функцию.
Которая сейчас благополучно прошла тестирование и работает
К слову, кто хочет попробовать написать движок, я делаю аналог вот этой игры -
http://www.deadwhale.com/play.php?game=2124 Чтоб я не расписывал все правила, так проще показать.