Вы заставляете старого самурая браться за меч
Накидал вот по быстрому
git
Маджонг и гейш можно добавить по желанию.
Основная идея понятна - поле 4х4. Клетка со значением 0 пустая т.е. та которую можно двигать
@dplsoft - я думаю можно глянуть и вопросы по поводу расширяемости отпадут. Кстати забыл, что игра называется пятнашки :)
@ZzZero - совсем не костыль. в 80% случаев надо стараться использовать MVC для отображения данных и т.д.
@tugo - Вы были правы, альтернативный подход QML для таких целей