Project: Phase 2
On the page that describes the entire project,
Phase 2 is described this way:
- Phase 2: Make a program for two human players at one computer
to play a game of any variant.
The user interface should be reasonably
good---there may be some expectation that there will be some changes to
it in the next phase, but it should be readily extensible for those
improvements.
You will work in 2 groups, sizes 3 and 4, with teammates
different from phase 1 as much as possible.
Each group will work on the same problem, and the
best result will be used in the final phase.
Assigned March 14, due Apr 1.
Some specifics and additions:
- Two humans playing chess at one computer is not going to be comfortable.
That's why we'll have two humans at two computers in the next phase.
For now, make your implementation
- As comfortable (= usable) as possible
- Naturally extensible to a two-computer version
- Your game-playing mode should be equipped with a chess clock.
There are
several ways in which game clocks can function.
Your program should allow for several commonly used policies, or for no clock
if the users don't want the game timed.
- You game should have a logging feature to keep track of the game history.
This feature allows the user to
- Have a record of the game in algebraic chess notation
- Save the game and come back to it later
- Revert to an earlier part of the game and pickup play from there.
("Aw, man, things really started to go wrong when I moved my bishop twelve turns ago.
Can we go back to the way the game was then and have a do-over? PLEASE??")
- Play an animated version of the game as a replay.
The user can also load the record of a game that wasn't played on the system
(say, the record of some famous game in chess history) and watch the animation
of it.
In other words, humans should be able to edit the logs.
- (You might find that this logging isn't feasible for some of the chess variants.
It should be in place at least for standard chess, and you should investigate what it
would take to implement it for variants as well.)
- You should perform usability tests on your system, grabbing real users
(such as members of the chess club).
Test how usable your system is for starting a game (including choosing a variant and
game clock), playing (including interacting with the game clock as necessary),
and using the logging features.
In Phase 3, you will revisit the problem of supporting chess variants.
Since algebraic chess notation denotes only standard chess,
it is likely that the logging and replay feature will have at most limited
functionality when the program is used for non-standard chess.
There may be times, then, that parts of the logging feature
will be unsupported.
Your submission should include a report on your
UI and usability tests
- outlines the decisions that you made about UI features
- documents the methodology and results of your usability tests
("we grabbed 3 people and had them try out this and
and they were able to do such and such but were confused at
this other thing", or something a little more specific than that)
- gives the conclusions you drew from the usability tests
("although we tried doing it this way, users found that inconvenient,
so either we changed it or we propose changing it in phase 3",
or "users really liked this feature, so it should definitely stay
in the final product")
.
DUE: Friday, April 8.