- Instead of "everything in single main.m file" as in Ver 1, Ver 2 is splited into different files.
- There are total of 4 View Controllers. The main one only in charge of switching between the 3 child view controllers. The 3 child view controllers are Intro, GamePlay and Ending. Each looks after different parts of the game.
- Added 3 different difficulty levels for single player mode: beginner, advanced and expert. In beginner mode, computer will always play randomly. Advanced mode is with the 2 special conditions disabled. Expert mode has those conditions included.
- Intro View Controller looks after collect info about single/two player mode and the 3 difficulty levels.
- GamePlay View Controller mostly remain unchanged from Ver 1 except now it highlights the winning row at the end.
- Ending View Controller shows the final score/result, and ask player to choose whether try again or start a new game.
- Also created a new class "GameData" to store all game related data. This isolates the game logic and data, plus makes it easier to handle the data, in case say need to export/store the data into file system or whatever other purpose.
Original plan was to use this as practice and build a simple multi-view template/platform so that I can further expand it into more complicate projects in the future.
However, I felt like been punched on the face after I did a quick run using "Instruments". As shown below it's leaking memory quite badly - see the purple little bars on top of the screen.
Any way, if any of you still interested in the "leaky" TicTacToe V2", the link is below.
[UPDATE 2] Please see this post for TicTacToe V2.1 (Memory Leak Fixed)