BrickBreaker - Initial commit
BrickBreaker - Setting up WIDTH & HEIGHT constants

Switching them around though because we have our project to not support
Portrait mode, i.e. the height is now the width and vice versa.
BrickBreaker - Adding a root ViewController
BrickBreaker- LevelController paddle, ball &bricks

Adding Level ViewController that contains a private interface with a
paddle, balls and bricks properties.
BrickBreaker- Add UIDynamicKit elements

- Updating rootVC to call our levelVC and restart the level.
- Updating levelVC to include a number of properties belonging to
various UIDynamicKit classes that will help us model our paddle, balls
and bricks and the interaction between them.
- Currently the paddle appears on the screen with the ball, but the
ball is not moving yet << BUG!
BrickBreaker - Fixing bug where ball didn't move

Don’t understand why we have to use a global variable instead of a
local variable. (Maybe because it is a weak reference and now as a
global variable it’s hanging around a bit longer - some sort of memory
issue!?)
BrickBreaker - Ball now bounces and bricks present
BrickBreaker- Collision detection to remove bricks

If two items hit each other and one of them is a brick, then we remove
it. There is still a problem here if 2 bricks bounce into each other
one will make the other disappear.
BrickBreaker- No functional change.

Changing comments/ indentation.
BrickBreaker- Add button to start game.

Adding a start button entry page. On click, then the game begins.
BrickBreaker- Takes 2 hits to destroy brick

Adding little animation for points label that appears when a brick is
hit.
BrickBreaker- Add Tap Recognizer to move paddle
BrickBreaker- Brick points are now random
BrickBreaker- Setting random points for bricks

Meant to include this with previous commit
BrickBreaker- Delegate to detect/send game over

- Adding collision boundaries to the LevelVC so that it no longer uses
the frame of the view. Instead we want the ‘floor’ of our view to cause
a custom reaction (i.e. ball dies)
- Adding a delegate protocol to LevelController with a gameDone method.
Note that this is an OPTIONAL method.
- In our LevelVC, when we see the ballView ‘colliding’ with the floor
then the game is over. First we check to see if our delegate HAS
implemented the gameDone method (since it was optional for the delegate
to implement it) and then call it.
BrickBreaker- Add scoreboard on top of root VC

Moving ability to track points away from LevelVC and into the root VC
by making use of the delegate method addPoints. i.e. every time we hit
a brick with the ball, it sends the addPoints message to the delegate
to update the total score in the root VC.