Skip to content

Hanabi AI #311

Open
Open

Description

@Zomis

Make an HanabiAIListener that keeps track of recent actions and uses that to play according to a strategy.

  • The more clues are available, the more you can assume that a card is playable if you're given a clue about it
  • Figure out "reason for telling me this" for each clue
    • Play card(s) X
    • Do not discard card(s) X
    • Plenty of cards to discard (usually a bad idea to give this clue, but still)
    • What was the most recent thing that happened regarding this number/color? Did it become playable or was something discarded and only 1 remains?
    • Assume that recent clues are related to recent actions -- played or discarded cards
    • Assume that old cards without clues are discardable, and new cards are more often playable

Advanced strategy:

  • If a player will assume that a card is playable, but both you and the cluegiver know it isn't, then that means you or someone else can do something to make it playable.

When giving a clue to reduce possibilities, you can only consider what you know about what they know. i.e. can't consider the true value of your unknown cards.

Try to give as much details as possible (lower number of combinations for other players)

Make assumptions about if players know what to do or not -- play or discard - might benefit from the game copying feature?

Prefer clues that give unambigous information. e.g. if you have two 1s, but only one of which is playable, tell the color instead of the value. (which will tell you about one card but also give more information)

Activity

  1. added
    enhancementNew feature or request
    aiComputer opponents are fun!
    on Aug 3, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    aiComputer opponents are fun!enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions