The important part of a game design like this is to make sure you put most of the logic in the data model for the game and not in the view controllers or views. The data model should track where objects are in the game space, what logical attributes and visual attributes they should have and whether they interact with other game objects.
The function of the view controller should merely be to translate the logic of each object to the view. The view's sole function should be to dumbly draw whatever the controller tells it to.
For example: Suppose you have a simple game with two balls that bounce off walls or each other. When they collide with another ball they change color. Each ball and each wall would be represented by an individual object in the data model. Each object would be responsible for modeling the state of the ball/wall at any given time and determining its position and whether it collided or not.
In other words, the data model should handle everything about the game except the actual display. In principle, the data model should be wholly independent of any particular display. You should be able to play the game on a standard view, a webview or even a command line.
The role of the view controller is translate the logical position and logical state of game object into a subview on the game screen. E.g. using a UIImageView to display an image of a ball. The view controller simply tells the view to draw a ball at a certain location on the screen using a certain graphic. That's it. As the data model changes, the view controller changes what is drawn but it doesn't remember what it drew the last time or what and where it draw anything next. It simply reflex the data model.
To handle user input, it reverse the process converting UI changes to inputs to the data model. However, the view controller does not calculate the results or consequences of those inputs. That is the job of the data model.
By putting all the complex logic of the game in the data model you make it easy to change the view-controller/view pairs and to add, remove or modify many different views. For example, you might have the same game on iPhone, iPad and Mac. Most of the code would be the same on all three platforms but each would have custom view-controller/view pairs.
Model-View-Controller is very important and grows more important as the complexity of the app increases. It is very easy to cram to much data and logic in the controllers or views which overloads them and creates tangles of interrelationships when you try to extend the app. Write the data model first. Make the data model able to play the entire game with just text inputs. Then and only then, attach the graphical interface. If you follow this pattern, writing the graphical elements will prove very simple and be very flexible.