Skip to content

Latest commit

 

History

History
44 lines (29 loc) · 1.43 KB

README.md

File metadata and controls

44 lines (29 loc) · 1.43 KB

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