Parameters & Assumptions - bensbits91/csnw-bb-poker GitHub Wiki

Original Project Description

Write a program that simulates a 4-player game of 5 Card Draw poker, without the betting, using a standard 52 card deck with no Jokers. The program should display each of the 5 cards that are initially dealt to each player, should allow the user to select which of the 5 cards to be replaced for each player, should replace these with random cards from the deck, and should determine and display which of the final hands is the winner (or winners if multiple hands have equal rank). For simplicity's sake, aces are always high (above a King, not below a 2). These unicode characters may be helpful.

Assumptions

Game Mechanics

  • The game does not include betting or chips, as explicitly stated in the description.
  • The game ends after one round of card replacement and determining the winner(s).
  • There is no concept of a "dealer" or turn order; all players' actions (card replacements) happen simultaneously.

User Interaction

  • The user acts as a controller for all four players, selecting which cards to replace for each player.
  • The user can replace 0 to 5 cards for each player, as there are no restrictions mentioned.
  • The user interface should display all four hands simultaneously for easy decision-making.

Deck and Card Rules

  • The deck is a standard 52-card deck with no Jokers.
  • Cards are dealt randomly, and no card can appear in more than one hand.
  • Replaced cards are drawn randomly from the remaining deck.

Hand Ranking

  • Aces are always high (above a King, not below a 2), as explicitly stated.
  • Standard poker hand rankings are used to determine the winner(s).
  • Tiebreakers are resolved based on the highest-ranking cards in the tied hands.

Winner Determination

  • There can be multiple winners if hands have equal rank (e.g., two players with the same pair or straight).
  • The program should clearly display the winning hand(s) and the player(s) associated with them.

Display and Output

  • The program should visually display the initial hands, the cards selected for replacement, and the final hands.
  • Unicode characters for playing cards are used for display purposes, as suggested in the description.

Simplifications

  • The game does not account for advanced poker rules like wild cards or split pots.
  • There is no timer or time limit for the user to make decisions.