In 3-dimensional Noughts and Crosses, players place their mark (or playing piece) in a cell of a 4x4x4 cube. Any straight line of four pieces of the same player wins.
The object of this project is twofold: to provide an interface to allow human players to adjust their view of the cube, and to provide a simple AI opponent.
The interface should be constructed using OpenGL for 3D graphics, and using the Cocoa framework on Macintosh OS X (also used on the iPhone). This framework is most easily accessible through the Objective-C language, which is a superset of C – just as C++ is a superset of C. The “Xcode” and “Interface Builder” tools of Mac OS X should be used for development.
The interface should allow the user to rotate the view of the cube so as to see the pieces from different angles. The user should be allowed to place a piece in any vacant cell no matter what the orientation of the cube at the time.
A major part of the development effort will be the interpretation of mouse gestures to control the view of the cube. The user should be able to set the cube slowly spinning in any direction, bring it to a stop, nudge it in any direction, and of course place a piece in a vacant cell. The gestures used for these purposes should be highly intuitive for new users. Buttons may be used for restricted purposes only, such as: start new game, choosing human or computer opponent, take back move, quit, get hint.
The AI can be implemented with a simple minimax search of a game tree, to a depth of perhaps five moves, with an evaluation function to be designed and implemented by the student.