Created new branch for Assignment 2 and removed MatchModeSwitch as it will not be necessary for this assignment.
Added a UITabBarController and made it the entry point for the app. It is now hooked up to show our CardGameViewController as the first tab and I have adjusted our CardGame's view controller accordingly as far as layout is concerned.
Added a ViewController for our SetGame to the StoryBoard and hooked it up to our new TabBarController. I've also stubbed out the class for our SetGameViewController.
Finished Required Tasks 1-8 (All Required Tasks). This required a pretty massive rewrite where I moved all UI functionality out of the model (as it should have been originally) and subclassed my existing CardGameViewController to implement set.
Finished Extra Credit 1 by adding icons for the two tabs in my UITabBarController.
Added game over functionality to the game. The model has a new method to check the number of legal remaining moves. My controller uses this to determine when no legal moves remain and alerts the user that the game is over.
Added the ability for the model to replace matched cards with new cards from the deck if enabled. This will occur until the deck runs out of cards at which point it will behave as it did before. Currently this is hardcoded to turn replacement ON until I implement the settings page.
Finished Extra Credit 2 which involved tracking scores and making the list sortable. I plan to enhance this feature further in the future.
Cleaned up my CardMatchingGame model's flipCardAtIndex method. Removed matchAttempted which was no longer needed and simplified the section used to replace cards as well as added a helper function to handle the replacement.
Added highlighted appearance to cards that have never been flipped over in Match game (Not Set game). This helps to show that a match was successful when card replace mode is enabled.
Further simplified the code in our model's flipCardAtIndex method.
Added icons for Scores and Settings tabs as well as implemented SettingsViewController with 1 button which resets all scores after asking for confirmation that they really wish to do so.
Made CardGameViewController generic and made MatchGameViewController subclass it to match SetGameViewController. Works properly except for one funny problem where I have to declare @synthesize game = _game, but only in SetGameViewController.
Removed all extra functional. Is now narrowed down to just Required Tasks and Extra Credit tasks for Assignment 2.