In Python, I've implemented a rudimentary engine to play "Cheat", supporting both bots and a human or only bots. When only bots are playing, the game is simulated.
When placing cards, input is represented by an array of integers corresponding to the indices of the cards. When bots play, they are presented with all valid combinations of cards to place (currently, the choice made is random). For example, if the bot has two cards, their options are:
[, , [0, 1]]
After a player places cards, the other players get a chance to call cheat (
true to accuse,
false not to).
When a player depletes their cards, they are appended to the
winners list. The goal of the game is to have the lowest index possible in the
Summary of game data and end goal
In summary, here is the data which I believe would be useful for the bots to play:
- the current number of cards that have been placed
- the current type (e.g. Ace) to play
- the type of and suit of each card of the bot's hand
- the number of cards that were just placed by a player
- the possible inputs to play during a bot's turn
- the options for calling cheat (
with the goal of ending up with the lowest index in the
I'm very new to machine learning, so I apologize for a such a high level question, but how might I go about using a Python module to implement a system for bots to learn to play intelligently as they play? Are there any modules which you think would be ideal for this situation?