Bots for the game "Mäxchen" aka Mia.
View Demo
These are bots for the game "Mäxchen" (aka Mia) developed in the Digital Innovation Challenge 2020. We developed several bots including Machine learning approaches for the lie detection of other players and combining several winning strategies for the announcement of our current roll.
The rules for the game "Mäxchen" (aka Mia) are explained in Detail here.
You need the Poetry package manager to install and run our code base.
After you installed Poetry simply type the following commands to clone and install our code:
git clone https://github.com/Digital-Innovation-Challenge/Team8.git
cd Team8/src
poetry install
You can run a bot via
poetry run python3 duckling/bots/bot.py -h
You are also able to run our scipts in the poetry shell by typing
poetry shell
The game runs on a remote server (IP: 35.159.50.117
, port: 9000
).
The players communicate with the server using text-based protocol over UDP (using UTF-8 encoded strings)
We wrapped this protocol to a high level python api.
We also introduced an object oriented hierarchy which allowed us to combine multiple strategies and abstract the server communication on multiple levels. Allowing methods like our machine learning based lie detection.
We also added some tools (TODO LINK) to listen to the game traffic, parse it and save them in a structured format. This resulted in huge datasets that we used for our machine learning approach.
We used a machine learning model which we created from scratch using sklearn and our recorded dataset to predict if the predecessor lies. This worked very well with an accuracy over 0.88 on the test data set (1/3 the size). The Dataset contains over 100k played rounds. Only game-moves where a player accused another one where used to train the lie detection.