SkillAgentSearch skills...

Clue

haskell implementation of a simplified version of clue (or cluedo)

Install / Use

/learn @rampion/Clue
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

This is my attempt at implementing a simplified game of Clue (or Cluedo) in Haskell.

The Game module specifies a typeclass for Players, and a mediator function (playgame) to walk the players through a game.

In a simplified game of Clue, there can be 1,2,3,6,9 or 18 players. One weapon, one room, and one suspect are removed from the original deck of clues - the remaining 18 are divided among the players. To win, a player must successfully guess the three removed clues.

The players take turns in a cycle. During a players turn, they may take two actions (in order):

  • suggest a particular tuple of weapon, room, and suspect
  • accuse a particular tuple of weapon, room, and suspect

After a player makes an suggestion, the next player who has any of the cards named must reveal one to the player. The other players do nothing. If no other player has any of the named cards, nothing happens.

If a player attempts to reveal a card that was not dealt to them, or that was not named, then they are marked as a cheater. They no longer get turns, and the mediator will automatically choose which card to display for them when responding to others suggestions from then on.

After a player makes an accusation, it is checked against the three cards revealed. If they are correct, they win, and the game ends. If they are wrong, they lose, and they take no more turns, though they still get to choose which card to reveal when others make suggestions.

If all players have lost, the game ends.

View on GitHub
GitHub Stars5
CategoryDevelopment
Updated4y ago
Forks1

Languages

Haskell

Security Score

55/100

Audited on Oct 12, 2021

No findings