You are here




Zombies is a strategy game where each player has 11 pieces from 5 different piece types. The goal of the game is for the players to surround the main piece (necromancer) of the opponent. The pieces are placed or moved one by one on an hexagonal grid. The particularity of this game is that it each piece type has a specific move set allowing a huge amount of strategies. This game is inspired from the game Hive.


For the AI course (teacher: Yves Deville, teaching assistants: Jean-Baptiste Mairy and Cyrille Dejemeppe), students had to develop artificial agents playing Zombies. A contest between these agents was held.

Students formed groups of two. Each group was responsible to produce an AI agent for the contest. This AI agent would play Zombies autonomously. For this, the students were allowed to use any technique they wanted. Of 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 46 valid submissions for the contest. The agents were divided into 8 pools of agents (6 pools of 6 agents and 2 pools of 5 agents). Inside one pool, each agent played four matches against each other agent. For each match won, the winner got 3 points; for each draw match, both agents win 1 point and for each loss the loser wins no point. The two first agents of each pool 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 16 selected players selected for the playoffs were partitioned in groups of two. The format of the playoffs was “best-of-four”. Indeed, within each group, four matches were played with each agent being the beginning player twice. In the case of an equality, the fastest player was selected as winner. The winners of each playoff went to the next level, until having a final between two players. A third and fourth place playoff was also played to determine the third and fourth places between the losers of the semi-final.

Here is the video of one of the games for the final match. In this video, the blue player is the agent of the group 26 (Floran Hachez, Benjamin de Wergifosse) and the red player is the agent of the group 13 (Aurélien De Ryck, Olivier Marinx).

The traces (i.e. record of the games) of games performed for the contest are available for download at the bottom of the page. To replay a game, use the following command:

python3 -r TRACE

Replace TRACE by the path to the trace file of the game you wish to replay. To visualize the replay, open a web browser at the page http://localhost:8000/ and click on the start button.


Position Students
1 Floran Hachez, Benjamin de Wergifosse
2 Aurélien De Ryck, Olivier Marinx
3 Vladimir Somers, Armand Posquillon
4 Mattieu Detaille, Mohammad Syed

The winners of the AI tournament with their prizes kindly offered by Case Départ   The winning group and the second group received prizes kindly sponsored by [Case Départ](

Match against Human

The winning AI was challenged by the students who implemented the second place agent. After a thrilling game, the humans took their revenge and defeated the AI!

The best AI playing against the designers of the AI that was defeated in final   The best AI playing against the designers of the AI that was defeated in final

The best AI playing against the designers of the AI that was defeated in final   The best AI playing against the designers of the AI that was defeated in final

The second place agent designers (Aurélien De Ryck, Olivier Marinx) Playing against the best AI Player of the 2014 Contest

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 AGENT human
python3 human AGENT

Replace AGENT by the path to the agent against which you desire to play. 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 -h for an exhaustive list.

agents.zip531.21 KB
traces.zip46.2 MB
zombies.zip361.09 KB