The world’s Largest Sharp Brain Virtual Experts Marketplace Just a click Away
Levels Tought:
Elementary,Middle School,High School,College,University,PHD
| Teaching Since: | Apr 2017 |
| Last Sign in: | 103 Weeks Ago, 3 Days Ago |
| Questions Answered: | 4870 |
| Tutorials Posted: | 4863 |
MBA IT, Mater in Science and Technology
Devry
Jul-1996 - Jul-2000
Professor
Devry University
Mar-2010 - Oct-2016
C Game Code
Hey all! I have this code in C I'd like written - I wrote some myself, and I'd like for someone to write this one so I can compare what I created to it. Since I struggled with some functions, it would be great if the tutor could comment in some areas the logic behind what they did so I could better grasp how each function worked. I also included some sample outputs for what it should look like when run. Let me know if you have any questions!
Casino Game
Description
Code a casino where a user can play the following games: lucky seven, high
card, and match card
The user starts with $100. The user is then prompted to pick a game. All
inputs must be error checked. The user is then asked how much they want to
bet on the game. (this can’t be 0 or more than the user currently has.)
Depending on the user’s outcome, the user either wins or loses the amount
they bet. All the games require a deck of cards (simulated with an array). The
cards will need to be shuffled before each game. The user is kicked out of the
casino if they have no money left Game Descriptions
Lucky Seven: the user draws a card. If the card value is equal to 7, the user
wins 7X the amount bet. If the card value is not 7, the user loses the amount
bet
High Card: the user draws a card from the deck, and the computer picks a
random (different) card. If the computer’s card is higher, then the player
loses. If the player’s card is higher, then the player wins. For this version, all
cards are different numbers
Match Card: the user does not bet for this game. Works similar to high card,
Games Win Lose Lucky Seven + 7 * AmountBet AmountBet High Card + AmountBet AmountBet Match Card + totalMoney totalMoney except there will be 4 “decks of cards” in play (2D array). The user will
choose a deck and a card. The computer will pick a random card from a
random deck. If the value of the user’s card matches the computer’s card,
then the user doubles their total money. If the user loses, then the user loses
everything Random Number Generator
Use the rand() function from <stdlib.h> to generate random numbers. The
output will need to be between 0-12 for card operations (not 52). Use rand()
and the % operator. SIZE is a global constant. Treat it like a variable that you can’t change. Use it for all card operations where you need the value for size
of the deck Win/loss calculation table
Example: lucky seven, if the user has an initial amount of $100, bets $25 and
wins, then total = 100 + 7 * 25->$275. If they lose, then the total = 100 - 25
-> $75 Function Prototypes & Descriptions
void display_menu(); Displays the menu for choosing a game. Should only have printf
statements. Has no arguments, returns nothing int error_check(int); Argument int, option chosen in main. Check if the options chosen is
valid or not. Returns 1 if input is valid, 0 otherwise void shuffle(int); Argument int. Array signifying deck of cards, which was created in
main. Return nothing. Takes in the deck of cards array, loads with
values from 1-13 and shuffles the order. Do not create a new array. Index of an array starts from location 0, your deck must have card
values from 1-13. To shuffle the order use rand() function to get a
random index and then swap the values. Example: After loading the
deck with values from 1-13 in the locations 0-12, your deck is loaded.
Now to shuffle, as of now at location 0, value is 1 and at location 1
value is 2 and so on. Imagine rand() returns a random index 3(which
has the card value 4 in it now), you have to swap this with whatever is
in location 0. This was just a one-time swap; you have to do it for all
the 13 locations. How do you do it?? int draw_card(int); Picks the first card that hasn’t been drawn already, marks it as “taken”
and returns the value of the card. Change value to -1 at the location to
indicate “taken”. Arguments: int deck of cards, which was created in
main(). Return – int: value of card drawn. int lucky_seven(int); Implements lucky seven game logic. Takes in one card value and
checks if it is equal to 7. Return 1 if value matches indicating the user
won, return 0 if user loses. int high_card(int, int); High Card game logic. Takes in card values and checks which one is
higher. Return 1 if user card is greater than dealer card indicating user
wins, return 0 if user loses. double calculate_winnings(int, int, double); Calculates winnings based on game played and if the user won.
Arguments- int: game played, int: win or loss, double: amount bet.
Return double: amount won or lost. int match_card(int, int); // Bonus Game is only played when the user decides to quit. (Give them a last
minute chance to double their money). Takes in card values and checks
if they are the same. Return 1 if user wins, return 0 if user loses int main(void) {} Acts as user interaction, creates arrays, calls other functions, keeps
track of user’s total money. First display the menu of games to play.
Declare all the variable you need to use and also the array
representing the deck Every time a game is played, display the amount
the user has left and ask the user to enter the amount he wants to bet.
Assume the user won’t mess up (brownie points if you check this too).
Next, display the result of the game (display if the user won or lost,
display the card(s) drawn, and the amount of money gained/lost).
Continue to play the game as long as user does not choose to exit and
still has money. Display final amount of money when the user quits or
gets thrown out. For the bonus, create a 2D Array representing 4 decks
of 13 cards each. Shuffle each deck and choose two random cards from
two different decks. Display cards drawn and if the user won or lost. Sample Output: Characters in bold are inputs from the user. //begin 1
Welcome to the Casino!
Which game do you want to play?
1) Lucky Seven
2) High Card
3) Exit
4
Invalid choice; Try again. Which game do you want to play?
1) Lucky Seven
2) High Card
3) Exit
-1
Invalid choice; Try again. Which game do you want to play?
1) Lucky Seven
2) High Card
3) Exit
1
How much do you want to bet? $5
Lucky Seven
You drew 1.
You lost $5.00. Too bad.
Your total money is $95.00.
Which game do you want to play?
1) Lucky Seven
2) High Card
3) Exit
1
How much do you want to bet? $7
Lucky Seven
You drew 1.
You lost $7.00. Too bad.
Your total money is $88.00.
Which game do you want to play? 1) Lucky Seven
2) High Card
3) Exit
2
How much do you want to bet? $50
High Card
You drew 1. The dealer drew 6.
You lost $50.00. Too bad.
Your total money is $38.00.
Which game do you want to play?
1) Lucky Seven
2) High Card
3) Exit
3
Wait! Before you go, do you want a chance to double your money???
1) Yes
2) No
1
Match Card
You drew 3. The dealer drew 11.
You lost everything!!!
Your total is now $0.00.
Thanks for playing!
//end 1 //begin 2
Welcome to the Casino!
Which game do you want to play?
1) Lucky Seven 2) High Card
3) Exit
3
Wait! Before you go, do you want a chance to double your money???
1) Yes
2) No
2
Bye!
//end 2
//begin 3
Welcome to the Casino!
Which game do you want to play?
1) Lucky Seven
2) High Card
3) Exit
1
How much do you want to bet? $100
Lucky Seven
You drew 2.
You lost $100.00. Too bad.
Your total money is $0.00.
You have been thrown out of the casino.
Be more careful with your money next time.
//end 3 //begin 4
Welcome to the Casino!
Which game do you want to play? 1) Lucky Seven
2) High Card
3) Exit
1
How much do you want to bet? $57
Lucky Seven
You drew 1.
You lost $57.00. Too bad.
Your total money is $43.00. Which game do you want to play?
1) Lucky Seven
2) High Card
3) Exit
1
How much do you want to bet? $43
Lucky Seven
You drew 1.
You lost $43.00. Too bad.
Your total money is $0.00.
You have been thrown out of the casino.
Be more careful with your money next time!
//end 4