Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

I have this project for my cs class and it needs to coded in C . I have started it but am very stuck and

I have this project for my cs class and it needs to coded in C. I have started it but am very stuck and need help completing it.

1. The basic rules of the game

A deck of poker cards are used. For simplicity, we have unlimited number of cards together, so we can generate a random card at a time without considering which cards have already dealt. The game here is to play as a player against the computer (the dealer). The aim of the game is to accumulate a higher points total than the dealers, but without going over 21. The cards 2 to 10 have their face values as points. J, Q, and K are10 points each, and the Ace is either 1 point or 11 points (player's choice). To simplify the matter, we consider that the Ace is 11 points only, unless you like to implement the option anyway.

A) Betting and Winning

The player first place a bet. Lets assume our minimum bet is $10 and maximum = is $1000.

B) Each hand will result in one of the following events for the player

Lose- the player's bet is taken by the dealer

Win - the player wins as much as s/he bet. If s/he bet $= 10, s/he wins $10 from the dealer.

Blackjack (natural) - the player wins 1.5 times the bet. With a bet of $10, s/he wins $15 from the dealer.

Push - the hand is a draw. The player keeps his/her bet, neither winning nor losing money.

c) The start of the game

At the start, the player and the dealer receive two cards each. The players cards are normally dealt face up (displayed), while the dealer has one face down (called the hole card) and one face up. The best possible blackjack hand is an opening deal of an Ace with any ten-point card. This is called a "blackjack", or a natural 21, and the player holding this automatically wins unless the dealer also has a blackjack. If a player and the dealer each have a blackjack, the result is a push.

d) The players turn

The player can keep his hand as it is (stand) or take more cards from the deck (hit), one at a time, until either the player judges that the hand is strong enough to go up against the dealers hand and stands, or until it goes over 21, in which case the player immediately loses (busts).

e) The dealers turn

The dealer turns over his hidden hole card. If the dealer has a natural 21 (blackjack) with his two cards, he won't take any more cards. If the dealer doesnt have a natural, he hits (takes more cards) or stands depending on the value of the hand. The dealer must hit if the value of the hand is lower than 17, otherwise the dealer will stand. If the dealer goes bust, the player wins. Otherwise the player wins if s/he has a higher score, lose if s/he has a lower score, or push if s/he has the same score as the dealer. A blackjack hand beats any other hand, also those with a total value of 21 but with more cards.

f) The program towards the end

If the player won or lost, s/he must decide whether to quit or to play another game unless the player runs out of money. Your program should give the player an initial betting amount of $1000.00.

2. Thea) The main() program and its variables

You will need to decide on appropriate variables in which to store the player's bank roll (in order to keep track of how much money the player has), the bet at a game, and other information. Lets use an integer array gamerecord[] to store how many times the player won, lost, hit a blackjack, and got busted.

This bank roll, bet, and game record should be kept up to date on the player's current status. (The program calls playing() to play a game, as discussed below. )

After each game, the program must report the result of the game, the amount of money won or lost, the current value of the bankroll, how many times the player won and lost, and how many times the player hit a blackjack and got busted. (You may want to record and report how many times the dealer got busted as well and report that.)

After each game (playing()), the program should allow the player to continue playing until s/he chooses to quit, or until the player runs out of money. This central program control may be done within main().

b) Dealing the card: the dealing() function

A separate dealing() function will be used to generate a card number. You will use a random number generator. The random number generator needs to be seeded with the current time at the beginning of the main program. The possible random values generated are 1 to 13, representing the cards face values. This function will return the number generated. The return value 1 represent the Aces face value, and the return value 11, 12, and 13 are J, Q, and Ks face value, respectively. Any other number is the cards face value. A large random number n can be converted to a value between 1 to 13 by: (1 + n %13).

A second function playing() will be used to play a single game until the player either wins or loses a bet, based upon the rules given above. This function should get a bet, modify the current amount of the player's bank roll according to the game result, modify the gamerecord array values of the player won or lost, and the player hit the blackjack or got busted. These values are returned through function parameters (address passing).

The player can keep his hand as it is (stand) or take more cards from the deck (hit), one at a time, until either the player judges that the hand is strong enough to go up against the dealer's hand and stands, or until it goes over= 21, in which case the player immediately loses the bet.

The dealer turns over his hidden hole card by displaying the hold card face value, and starts the game process automatically until the dealer wins or loses.

d) "Ending" and "Beginning" of the game

You need a separate function ending() to do the following: you should report the current value of the bank roll, how many times the player won, lost, hit a blackjack, and went busted. You need to save the above information into a text file as well.

You need a separate function beginning() to do the following at the beginning of your program in main(): the function will open the text file you used to save the game information for reading if it exists, so that your game can continue from previous played results. If the file does not exist or the bank roll has a balance below the minimum bet, you start the game from scratch as usual, and report new game or continual game.

3. Additional functions may be necessary and/or appropriate, depending upon the final overall design of your program.

Its your choice to have minor variations.

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Machine Learning And Knowledge Discovery In Databases European Conference Ecml Pkdd 2015 Porto Portugal September 7 11 2015 Proceedings Part 1 Lnai 9284

Authors: Annalisa Appice ,Pedro Pereira Rodrigues ,Vitor Santos Costa ,Carlos Soares ,Joao Gama ,Alipio Jorge

1st Edition

3319235273, 978-3319235271

More Books

Students also viewed these Databases questions

Question

5. Discuss the role of the Web in career management.

Answered: 1 week ago