Teaching
670 S '05
 
Projects
Presentations
Programming
 
Carcassonne
Tiles
Project 1
Project 2
Project 3
Project 4
Project 5
Project 6
Project 7
Project 8
Project 9
Project 10
Project 11
Project 12
Project 13

Project 10

Due date: 3/24 @ 3pm

Objective: to learn to find appropriate patterns


Task: The goal is to groom some Carcassonne players. Clearly, every player implements the same general game strategy:

  1. find out what the currently available "locations" for the chosen index are;
  2. pick one of those locations;
  3. determine whether to place a follower at all and, if so, where to place it
Points 2 and 3 call for "intelligence" that is, for algorithms that evaluate the chosen locations for tiles and followers.

You are to develop at least two such algorithms for steps 2 and 3, respectively. This gives you four different kind of players. Naturally, you are not allowed to replicate the code in all four players. Instead you need to find design patterns in your "dictionary" that help you organize these pieces of software properly. [POINTS: 12]

Optional: If you figure out a good organization, it becomes easy to "groom" a good player, mixing and matching and even evolving strategies as the game proceeds. [POINTS: 5]


Product: Mail a tar bundle with a a single subdirectory labeled YourName_Project10. The subdirectory must contain your entire project. The README file must contain instructions for running and visualizing the game [POINTS: 3]; it must also give a brief high-level overview of the design patterns you used to arrange your code. If you chose to go for the optional points, describe how you did it.


last updated on Tue Jun 9 22:03:19 EDT 2009generated with PLT Scheme