"A Multi-Agent Approach to klaverjassen"

Joris de Keijser & Wolter Peterson
S1628038 & S1787675

Our Implementation

Our implementation of klaverjassen playing agents can be found under the Documents-section at the bottom of this page. The implementation is a simulation in which four computer controlled agents play a game (16 rounds) of klaverjassen.

Basic Knowledge

Our simulation is a working model of the game of klaverjassen. On the basic level of knowledge and play, the agent can see its own cards and the cards that are being played on the table. The players use this information to determine which card they should play: If they have the highest card still in play that can play this, otherwise they should be more careful.

Knowledge and believes one level deep

In our implementation we keep track of the beliefs of the players by using a two dimensional array. In this array, which represents each card in de game, the player has the following beliefs about a card:

He knows the card has been played by which player, and in which trick.
He knows the card is in his hands.
He beliefs that player X has the card.
He beliefs that player X does not have the card (same as saying that he believes one of the other two players has it).

The players use these first order believes to decide which card they are going to play. For example if they think an opponent is going to win the current trick, they will try to avoid playing a card with a lot of points if possible. On the other hand, if a player beliefs their mate is going to win the trick, they will try to play points. These beliefs are aquired through the signaling that the other players did in combination with cards that are played already. Everytime a player plays a card, all players will do an update of their current beliefs.

Knowledge and believes two levels deep

The knowledge and believes two levels deep in klaverjassen are mostly implicit. In our current implementation we mostly kept things this way. As in normal games of klaverjassen (between intermediate or experienced players) we regard plays that look like seins as seins and act on them accordingly. Our implementation does not make use of deception as this would quickly venture into even more deep levels of believe.

Documents

Source Code
Runnable jar file