есть объекты, есть поле игровое, есть некая бизнес логика, есть контроллеры: один рассчитывает на основе бизнес логики - как изменятся объекты игровые на следующем шаге - в какой клетке появится грибочек, какие клетки будут заняты змейкой, определяет столкновения, изменяет длину змейки, уничтожает грибочки и порождает новые
есть движок который тупо отрисовывает