[Instructions] [Search] [Current] [Changes] [Syllabus] [Handouts] [Outlines] [Labs] [Assignments] [Examples] [Bailey Docs] [SamR Docs] [Tutorial] [API]
Summary:
In this assignment, you will use the Matrix structure
you built in a previous assignment to build an interactive
Othello game.
Collaboration: You can work on this assignment in groups of up to size four, with three being an "optimal" size. You may discuss your design with any size group. You may also work with each other on general debugging issues.
If you work as part of a group, you are responsible for ensuring that all members of the group understand all sections of the assignment. You may (and should), however, break up the initial work. I'd say that in a three-person group, one could be responsible for the game board, one for the user input, and one for the interface between the two. In a two-person group, one person might be responsible for the board, and the other for everything else. In a four-person group, two people could work on the game board.
Once the pieces are coded, you can take on additional roles. One member might be responsible for developing reasonable tests, another for making sure that everyone understands the underlying code, and another for making sure that the documentation is readable.
Using your Matrix class from
assignment 3, develop an object-oriented
interface for Othello, a two-player game played on an NxM grid with
black and white pieces. Your game should repeatedly prompt the current
player for a move, determine whether the move is legal and, if so, make
the move. If the player's move is illegal, you may either reprompt or
make the player lose his/her turn (it's up to you which you do).
Try to design your game in such a way that it would be possible for one to change the rules, the design of the board, or the interface. (I don't expect you to completely succeed, but do your best.) For example, we might want to play Othello on a 4x4 board rather than an 8x8 board.
The basic rules of Othello are as follows.
*** /-\ *** | | *** \-/ /-\ *** | | *** \-/ ***
For extra credit, do one or all of the following:
[Instructions] [Search] [Current] [Changes] [Syllabus] [Handouts] [Outlines] [Labs] [Assignments] [Examples] [Bailey Docs] [SamR Docs] [Tutorial] [API]
Disclaimer Often, these pages were created "on the fly" with little, if any, proofreading. Any or all of the information on the pages may be incorrect. Please contact me if you notice errors.
Source text last modified Sun Feb 22 19:33:47 1998.
This page generated on Tue Jan 12 11:44:34 1999 by SiteWeaver.
Contact our webmaster at rebelsky@math.grin.edu