The Gist
In this challenge, you write an AI for the game Zombie Dice. The AI has to make a simple, binary decision: cash in the brains or roll again. You are provided with all of the code to play the game and run tournaments. The only thing that you may submit is an AI that inherits the based AI class. One of its method takes in a few parameters, and return a True/False decision.
The game is simple, a few dices, some brains and shotguns. |
The game ends at the end of the first turn where at least 1 player has a cumulative score of 13 or more. The winner is the player with the highest cumulative tally of brains.
Details about the game
The cup contains 13 dices: 6 green, 4 yellow and 3 red. The green die has 3 brains, 2 feet and 1 blast. Red die has 3 blasts, 2 feet and 1 brain. The yellow die has an even number of feet, brains and blasts. The maximum score for a turn is thus 13, while the minimum is 0.
Ok, how does it works?
Step 1 - Get the code
The code is available on GitHub. Download a zip archive, or clone the repository (preferable to get updates).
If you don't know Python... time to get started. You only need to write the content of one method (minimally). You only need to know enough to handle the game's logic.
Step 2 - Register by joining the slack channel
Quick communication can be done via a slack channel. Feel free to join here:
You will need to request an invitation. Private (e)mail Christian Blouin with your email address to get one. "cblouin" + "@" + "dalhousie"[:3] + '.' + 'canada'[:2] Note: cs.dal.ca and dal.ca address can now auto-enroll.
Step 3 - Understand what needs to be done
Please refer to this separate post to understand better the code base and what needs to be done.
Step 4 - Run the tournament yourself
Place your AI class(es) into the tournament folder and execute the ZDtournament.py script. The outcome will appear on leadersboards once the tournament ranking is stable.
Step 5 - Submit your absolute best shot
When you feel confident that your best solution is competitive, submit your code to the tournament admin.
Grand finale
The official tournament will take place on February 1st 2016. There will be three criteria:
- 1 vs 1 [1 point]
- 4 player table [1 point]
- Most efficient AI on 4 players [tie breaker, 1.1 point]
Each AI will be run in duplicates within the same competition to provide a coarse assessment of variance with respect to sampling error. Each tournament is made of mini-tournaments of 20 games. Opponents are selected at random but should play approximately 5000 mini tournament each. These parameters may change when I determine the shortest stable tournament length.
There will be three divisions:
We'll meet over lunch to reveal the final leaderboard. The leader in each categories may then share their awesomeness with everyone else.
There will be three divisions:
- Division 1: out of program and BCS/BInf/ undergraduates with less than 20 courses completed.
- Division 2: General undergraduate students.
- Division 3: All of the above, plus Master's, Ph.D. and alumni.
We'll meet over lunch to reveal the final leaderboard. The leader in each categories may then share their awesomeness with everyone else.
Ranking
All AI enter the tournament with a set amount of gold. Each game played require each AI to put forward a fraction of 20 gold based on its prior probability to win against the set of opponents (current rank over the sum of ranks of opponents). After each mini tournament, an AI recovers gold in proportion to its frequency of actual victories.
No comments:
Post a Comment