Skip to content

okg21/coup

 
 

Repository files navigation

coup

Python implentation of the popular bluffing card game, Coup.

For a description of the rules, click here.

Player Descriptions:

  1. Random
  • all logic functions make completely random choices
  • uses random_dispose, random_keep
  1. Truth Teller
  • only chooses moves that never bluff based on its own cards
  • uses random_dispose, random_keep
  1. User
  • chooses moves based on user input to the terminal
  1. Income
  • always takes income or assinates/coups whenever possible
  • uses random_dispose, random_keep
  1. Neural Network
  • utilizes Q-learning with a neural network to learn the best decision_fn
  • uses income_block, random_dispose, random_keep

Running the program:

  1. Create player objects using the various FUNCS from player.py
  2. Put all players into the players list and create the game object.
  3. Run python3 game.py

Model Files Format: "{number of players}-{number of episodes trained on}-{types of opponents}"

Missing Features / Bugs:

  • Blocking the 'Steal' action is ambiguous, and doesn't force the player to specifically claim 'Captain' or 'Ambassador'
  • Winning a challenge does not cause the player to reshuffle their card back into the deck
  • There is no implementation for a GUI yet
  • RL agents are only trained to be the first player, need to fix cases when they aren't first

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 98.1%
  • Python 1.9%