You are here:
3-dimensional Noughts and Crosses

3-dimensional Noughts and Crosses

Project ID: 
9150
People
Academic Supervisor: 
Arthur Cater
Project Mentor: 
Arthur Cater
Student: 
Ben Bradford
Project Specification
Subject: 
Graphics, AI for Games
Project Type: 
Design and Implementation
Software Requirements: 
Mac with XCode and InterfaceBuilder.
Hardware Requirements: 
Mac
Preassigned: 
No
Description
General Information: 

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.


 

Mandatory: 


Implement rules of 3D Nounghts and Crosses. Create OpenGL display of a cube with ability to place a piece in any empty cell. Add interface buttons. Create minimax opponent.
 

Discretionary: 


Handle mouse dragging gestures for starting and stopping spin of cube, and for nudging a stationary cube to a new orientation.
 

Exceptional: 


Adapt to non-Macintosh environment using Cocotron. Allow two players to play remotely across an internet (or other) connection.