Due date: 1/26 : NOON -- NOTE UNUSUAL DATE, in SVN
Objective: to write the story of Ingenious, to work out the
"board-centric" use case; and to edit your memo on your choice of
Task 1: The two of you are to revise your memo in response to the
criticism of the first version. If project 2 has convinced you that you
aren't sufficiently comfortable with your chosen language, you may now
choose a different one and write a supportive memo. Before you do so, you
may wish to re-implement homework 2 in this new language. The grade for
this version will override the grade for homework 1.
Task 2: Supplement the description of Ingenious with two "software
stories": (1) human players wish to use a computerized board and (2) your
client wants a framework into which programmers can pluck in AI players
and compete with each other. For the second story, you could imagine that
someone wishes out the best strategy for playing Ingenious, and to do so,
he runs thousands of games and measures the performance of the various
Task 3: Work out a use-case for the "model" part of an automated
board. Players place tiles on the board as spelled out in the general
rules. It is your task to think through the idea of how a "computerized"
board could work in conjunction with, say, human players. Doing so will
require specifying the basic terminology of the game.
Rules for placing a tile:
As the game description says, a tile consists of two hexagons, which are
joined at one of the sides. Each hexagon features a symbol in one
color. Hence "to place a tile" means to occupy two adjacent hexagons on
the board with the colors of the given tile.
In general, a player may place a tile anywhere on the board as long as one
side of the tile touches a tile on the game board that displays a
color. To get started, six hexagons of the game board are initially
occupied with six distinct colors. The rules of the game impose one
significant additional constraint on the placement of tiles, namely, the
first tile of each player must be placed adjacent to a colored hexagon
that isn't already used by some other player.
Deliverables: Your SVN directory must contain a
subdirectory labeled "03" with a revised memo in PDF form (memo.pdf); a
"story" also in PDF (story.pdf); a "use case" in text form (use.txt) with
supplemental scans of "napkins". If you change the choice of language
and re-program project 2, place the new code into a subdirectory