You are here

Sarena

Year: 
2012

Sarena

Competition

Students formed groups of two. Each group was responsible to produce an AI agent for the contest. This AI agent would play Sarena autonomously. For this, the students were allowed to use any technique they wanted. Off course, unfair play (such as overloading the CPU when another AI agent is computing its move) was forbidden. For the competition, the AI agent had a time credit of 20 minutes per game, meaning that the time repartition for each individual move was up to the agent.

We received 31 submission for the contest. The agents were divided into 6 pools of agents. Inside one pool, each agent played twice against each other agent. For each match, the winner got 3 points and a draw game gave 1 point to each of the two agents. The three first agents of each pools were selected for the playoffs. The total time taken by the agents has been used as a tie breaker: in case of equality, the quickest player was selected.

The 18 selected players were partitioned in groups of two for the playoffs. The format of the playoffs was “best-of-three”. Indeed, within each group, three matches were played. The winner of one group was the player winning at least two matches. In the case of a draw game, the fastest player was selected as winner. The winning agent of pool A played against the fourth agent of pool B, the second of pool A against the third of pool B, the third against the second and the fourth against the first. The same for pools C, D, E and F. The winners of each playoff went to the next level, until having a final between two players. A third place playoff was also played to determine the third place between the losers of the semi-final.

Winners

Position Students
1 Benoit Daloze, Xavier de Ryckel
2 Xavier Crochet, David Defrenne
3 Iwan Briquemont, Cédric Delforge
4 François Fontelyn, Thibaut Knop

Benoit Daloze and Xavier de Ryckel receiving their prizesCase Départ

Benoit Daloze and Xavier de Ryckel receiving their prizes, kindly sponsored by Case Départ

Match against Humans

The winning AI was challenged by the students of the third group (Iwan Briquemont and Cédric Delforge) for them to take their revenge. Unfortunately for them, the agent won the game.

Game agains humans 1 Game agains humans 2 Game agains humans 3

Here is a screencast of the game. Iwan Briquemont and Cédric Delforge played with red. The computer played with yellow.

The code

The code of the game has a GPLv2 license and is downloadable at the bottom of the page. Python 3.x is required.

To play against an AI, use one of the following commands:

python3 game.py AGENT human
python3 game.py human AGENT

Replace AGENT by the number of the port on which you have launched an agent. You can get a list with python3 game.py -l. Note that many agents were designed to run with a time limit of 20 minutes and may be broken otherwise. Use the -t 1200 option to enforce such time limit. Human players are not affected by the limit.

There are also many other options. See python3 game.py -h for an exhaustive list. Each agent can also be launched as a small XML-RPC server with python3 -m agents.AGENT -p PORT. This was used to make the agents play against each other in separate processes and without sharing source code.

AttachmentSize
sarena2012.zip1.12 MB
quoridor.zip1.04 MB
traces.zip870.22 KB