[求助]Video Poker Simulation编程问题
QUOTE:
Video Poker Simulation
Acme Software, Inc, has been contracted to write a Video Poker Simulation game in basic C++ that follows the following rules:
Basic Setting:
The player places an initial bet between one (1) and fifty (50) coins. The player is then dealt five (5) cards and allowed to choose which cards, if any, they wish to keep. The cards that they do not wish to keep are discarded, and replacement cards are dealt so that they again have a total of five (5) cards. The computer then determines what amount they have won, if any.
Card Ranks and Suits:
Cards are ranked, from highest to lowest:
· Ace
· King
· Queen
· Jack
· Ten
· Nine
· Eight
· Seven
· Six
· Five
· Four
· Three
· Two
· Ace
(Ace can count as either low or high. See "Royal Flush"'s scoring, below.)
The card suits are: Hearts, Clubs, Diamonds, and Spades
Hand Ranks:
When you are dealt replacement cards for your discards, your new hand is evaluated. Based on what kind of hand you're holding, you'll receive a certain number of points.
Hands are listed below, from best (highest scoring), to worst (no score):
· Royal Flush - 2000 points
A straight flush, with the Ace high.
In other words, a Ten, Jack, Queen, King and Ace, all of the same suit.
· Straight Flush - 250 points
A straight flush.
In other words, all five cards are consecutive and are the same suit.
For example: Three of Clubs, Four of Clubs, Five of Clubs, Six of Clubs and Seven of Clubs.
· Four of a Kind - 125 points
Four cards of the same value. (Obviously, each of different suits.)
· Full House - 40 points
A three of a kind and a pair at the same time.
· Flush - 25 points
All cards in your hand are the same suit.
· Straight - 20 points
All five cards are consecutive.
For example: Three of Clubs, Four of Spades, Five of Clubs, Six of Diamonds, and Seven of Hearts.
· Three of a Kind - 15 points
Three cards of the same value.
· Two Pair - 10 points
Two pairs of cards.
In other words, two cards in your hand are the same value, and two other cards in your hand are also the same value.
· Pair - 5 points
Two cards in your hand are the same value. In this version, they must be Jacks or better!
· None of the Above - 0 points
Each turn "costs" 5 dollars, so if you get a pair, no money actually end up added to your total score. If you don't get anything, you actually lose five dollars! If you bet more than one 5 dollar coin, then the returns above are multiplied by the number of coins entered to give the actual yield. This is just how handheld and Vegas video poker games actually work!
Project Requirements:
Your project must meet the following specifications:
1. Text-based display of what is in the player’s hand.
2. Read all cards to be discarded at once
3. Read from the command line as a program parameter the name of a file that contains the state of a previous game so that a player can resume a game at any point. Thus, your program must read and write to a file as well as verify that a file exists.
4. Provided adequate “help” for the player on how to play the game.
5. Score all hands correctly.
6. Know the player’s name and be “friendly”
Acme Software, Inc, has been contracted to write a Video Poker Simulation game in basic C++ that follows the following rules:
Basic Setting:
The player places an initial bet between one (1) and fifty (50) coins. The player is then dealt five (5) cards and allowed to choose which cards, if any, they wish to keep. The cards that they do not wish to keep are discarded, and replacement cards are dealt so that they again have a total of five (5) cards. The computer then determines what amount they have won, if any.
Card Ranks and Suits:
Cards are ranked, from highest to lowest:
· Ace
· King
· Queen
· Jack
· Ten
· Nine
· Eight
· Seven
· Six
· Five
· Four
· Three
· Two
· Ace
(Ace can count as either low or high. See "Royal Flush"'s scoring, below.)
The card suits are: Hearts, Clubs, Diamonds, and Spades
Hand Ranks:
When you are dealt replacement cards for your discards, your new hand is evaluated. Based on what kind of hand you're holding, you'll receive a certain number of points.
Hands are listed below, from best (highest scoring), to worst (no score):
· Royal Flush - 2000 points
A straight flush, with the Ace high.
In other words, a Ten, Jack, Queen, King and Ace, all of the same suit.
· Straight Flush - 250 points
A straight flush.
In other words, all five cards are consecutive and are the same suit.
For example: Three of Clubs, Four of Clubs, Five of Clubs, Six of Clubs and Seven of Clubs.
· Four of a Kind - 125 points
Four cards of the same value. (Obviously, each of different suits.)
· Full House - 40 points
A three of a kind and a pair at the same time.
· Flush - 25 points
All cards in your hand are the same suit.
· Straight - 20 points
All five cards are consecutive.
For example: Three of Clubs, Four of Spades, Five of Clubs, Six of Diamonds, and Seven of Hearts.
· Three of a Kind - 15 points
Three cards of the same value.
· Two Pair - 10 points
Two pairs of cards.
In other words, two cards in your hand are the same value, and two other cards in your hand are also the same value.
· Pair - 5 points
Two cards in your hand are the same value. In this version, they must be Jacks or better!
· None of the Above - 0 points
Each turn "costs" 5 dollars, so if you get a pair, no money actually end up added to your total score. If you don't get anything, you actually lose five dollars! If you bet more than one 5 dollar coin, then the returns above are multiplied by the number of coins entered to give the actual yield. This is just how handheld and Vegas video poker games actually work!
Project Requirements:
Your project must meet the following specifications:
1. Text-based display of what is in the player’s hand.
2. Read all cards to be discarded at once
3. Read from the command line as a program parameter the name of a file that contains the state of a previous game so that a player can resume a game at any point. Thus, your program must read and write to a file as well as verify that a file exists.
4. Provided adequate “help” for the player on how to play the game.
5. Score all hands correctly.
6. Know the player’s name and be “friendly”