CSPP 51090 & CMSC 22001: Software Construction Assignment 9: Prepare for Tournament |
Due: December 7, 2004 @ 5pm |
Your task is to get your best player program into shape for the tournament. Each team will only be allowed a single player in the tournament. The purpose of the tournament is to judge the cleverness of your player and the quality of your code in a practical manner. The tournament will take place on December 8th, during class. Bring a computer that can get online to run your player or leave your software on a network accessible computer and we can run your player from remotely from my computer. If you'd like, you can test your protocol implementation against the server that will be used for the tournament. It is provided as a .tar.gz and a .zip file. To use, first install DrScheme (version 208). To start the server, either
At most 16 players can be registered. Registrations after that are ignored. One strategy for building a good player is to generate all possible moves from each position and then pick the board that looks the best, according to some criterion you think up (e. g., pieces are furthest along towards home and/or have a small chance of being bopped). There is a pitfall to be aware of with this strategy, however. On average, a given board has about 6.6 possible next moves[1], but there are some boards that have thousands of moves. For example, if green rolls double 2s on this board: here they are, in XML form. Let me know if you find a board in there that doesn't belong or one that isn't there that does belong.This was the worst board I found. I'm not sure it is the worst (in fact it probably isn't the worst), but I ran more than 50,000 games with four players that pick randomly from the available moves. Overall, I only found about 10 boards that have more than 1500 moves. Since this happens so infrequently, your player implementation can probably get away with just quitting after some fixed number of boards. [1]: To get this figure, I ran 5000 games with four players that just enumerate all possible moves and pick one randomly (about 915,000 moves over the course of the 5000 games). Your players probably have a different profile, so you might see different averages. For example, I suspect that if you use the MoveLastPawn player from assignment 6 and run the same computation, you'll get a much higher average. |
CSPP 51090 & CMSC 22001: Software Construction |