This year we will be "running" two distinct but related contests. We will announce/show the results at the banquet.
The attached files are the basis for the contests.
Contest #1 -- "Risk" playing Bot
Create a robot to play a "Risk" like game using SampleBot.tcl as a starting point.
Robots will play a double round robin. Starting at "high noon" on Wednesday. In each match a robot will be awarded points as follows:
- 0 points -- lost
- 1 point -- tie
- 2 points -- win
Winner on pure points.
Contest #2 -- Display of BotGame
Write a program to display the "log" of a game (you can modify the RunGame.tcl to output whatever you want as a log) either via Tk or HTML/JavaScript -- the "driver" has to be Tcl based. See the WorldMap files.
Winner(s) to be judged by artistic merit (whatever that means).
To run:
tclsh8.6 RunGame.tcl gameName gameDir mapSpec bot_1_name bot_1_path bot_2_name bot_2_path
Where:
gameName - name of the game
gameDir - directory game files are in
mapSpec - map specification file (i.e. WorldMap.tcl)
bot_1_name - name of bot #1
bot_1_path - command to launch bot #1
bot_2_name - name of bot #2
bot_2_path - command to launch bot #2
This is all based on http://theaigames.com/competitions/warlight-ai-challenge
Now contains all the files we got from Gerald, with some changes, namely
- Fixed a few typos in the sample bot and in the engine
- Refactored the engine internally a bit
- Gave the engine a higher-level log written to stderr.
- An example of this log is in the repository
- The log should be Tcl-readable (lines of Tcl lists)
- This should be a good starting point for visualization/replay of a game.
- Added two manager scripts, Shootout and Tournament.
- The shootout takes two bots, possibly the same and runs them through a series of independent matches (50 by default) and accumulates the results. This should allow you to judge relative strength better.
- The tournament takes a directory of bots and runs them against each other per the rules Gerald listed in his initial mail.
- Both scripts save the lower- and higher-level log in the logs/ subdir of the world directory they operate in. For reviewing things, and also as a source of game logs for visualization.
- Call either script without arguments to see the usage information.
All in all having these infrastructure script should allow us to focus on writing a bot, and not on writing helper scripts.
- Access without login, and anon access have standard permissions.
- So, everybody should be able to clone.
- Anon login can get zip/tar balls from a revision.