This project is due on 6/9/2011. You have the option to work in a group of 2s.
Grading criteria:
1) The use of at least two functions/procedures (not including main: for example, Deal, Bet)
2) The use of arrays
3) The use of comments and correct variable declarations.
4) The correctness of the code. (Does it meet the requirements?)
This project will simulate a blackjack program. It will put one player against the computer. The player will be able to wage money on the game. The game will continue until the player does not want to play anymore or he/she runs out of money.
This program will start with the following prompt:
How much money are you playing with today? 1000
The user will then enter how much money they are playing with.
A sample execution of the program is as follows:
What is your wager? 10001
Sorry, you can’t wager10001, you only have 1000 left
What is your wager? 2
Sorry, the minimum bet for this table is 10
What is your wager? 50
Your cards are 5,10
Your sum is 15. Would you like to hit(1) or stay(2)? 1
You got a J.
Your sum is 25. You lose this game. You have $950 left.
Would you like to play again? Yes(1) or No(2)?: 1
What is your wager? 950
Your cards are J,Q
Your sum is 20. Would you like to hit(1) or stay(2)? 2
Computer’s cards: 6, 7, 5, 3
Computer got: 21
You lose this game. You have $0 left.
Thank you for playing. Good bye.
Rules
If the dealer’s sum is less than 17, the dealer must take another card.
If the dealer’s sum is 17 or above, the dealer must stand
The deck has 52 cards in it. Cards cannot be reused. Cards must be generated
using some random number. You will need to keep track of the number and type of cards played.
Assume Ace is always 11, unless you are over, then assume it is 1.
The program will always ask the user to play again, unless the user has no more money to play.
Blackjack, a total of 21 on your first two cards, pays normal (NOT 3:2)
Advanced playing (such as doubling down, splitting pairs) IS NOT required.
Hints:
You will need to use an array to hold the deck. An array of 52 will work fine.
You may want an array to keep track of the players hand and an array to keep track of the dealers hand. (This way you can change aces from 11 to 1 if needed)
Create the array like this:
int cards[52] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, //Array to initialize
2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, //52 card
2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,};//deck with 4 cards for each suit
In this deck, 11 is a J, 12 is a Q, 13 is a K, and 14 is an Ace.
In order to deal a card
a) generate a random number between 0 and 51.
random = rand() …..;
b) See if the value of that array index is 0.
Does cards[random] == 0?
If it is, generate another random number until
cards[random] doesn’t equal zero
c) Show the card, and then set
cards[random] = 0
d) Once all the cards have been dealt, then reset the array
to the original state.