Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

111B Assignment: Blackjack In the card game named 'blackjack' players get two cards to start with, and then they are asked whether or not they

111B Assignment: Blackjack

In the card game named 'blackjack' players get two cards to start with, and then they are asked whether or not they want more cards. Players can continue to take as many cards as they like. Their goal is to get as close as possible to a total of 21 without going over. Face cards have a value of 10.

Write a command line game that plays a simple version of blackjack. The program should generate random number between 1 and 10 each time the player gets a card. It should keep a running total of the players cards, and ask the player whether or not it should deal another card. Sample output for the game is written below. Your program should produce the same output.

Submit a single file named BlackjackGame.java using the Assignments tool on the class site. You do not need to submit sample output. Just the source code. The code must compile to receive credit.

> First cards: 3, 2

> Total: 5

> Do you want another card? (y/n): y

> Card: 6

> Total: 11

> Do you want another card? (y/n): y

> Card: 7

> Total: 19

> Do you want another card? (y/n): n

> Would you like to play again? (y/n): y

>

> First cards: 10, 2

> Total: 12

> Do you want another card? (y/n): y

> Card: 6

> Total: 18

> Do you want another card? (y/n): y

> Card: 7

> Total: 25

> Bust.

> Would you like to play again? (y/n): n

Note: You can generate random numbers using the Random class. Here is a tiny class that generates either a 0 or a 1.

import java.util.*;

public class RandomTest {

public static void main(String args[]) {

Random random = new Random();

System.out.println(random.nextInt(2));

}

}

Suggestion

Address the problem using an iterative approach. Start with a small amount of functionality, and then grow it gradually. This way you can compile and run your program after each statement that you write.

You might start by just generating a single card. The program execution might look like this:

> First card: 3

Then generate two cards

> First cards: 3, 2

Next add a variable to store the total, and a statement to show its value:

> First cards: 3, 2

> Total: 5

Next read in a user response and print out the value that was entered

> First cards: 3, 2

> Total: 5

> Do you want another card? (y/n): y

> You entered: y

Next you might add a loop, without yet adding the blackjack logic

> First cards: 3, 2

> Total: 5

> Do you want another card? (y/n): y

> Do you want another card? (y/n): y

> Do you want another card? (y/n): n

Now move the display of the total to the loop

> First cards: 3, 2

> Total: 5

> Do you want another card? (y/n): y

> Total: 5

> Do you want another card? (y/n): y

> Total: 5

> Do you want another card? (y/n): n

Your next steps might be something like this:

Generate a new card in each loop and display the value

Update the total in each loop.

Check to see if the user busts in each loop

Wrap the game in loop that handles the Play-Again functionality

What to submit?

Submit a single source file named Blackjack.java. Include your name in a comment at the top of the file.

Looking for more?

For extra practice, add a dealer to the game. There are two important blackjack rules to include:

Dealers must take more cards as long as their total is less than 17

If the player and dealer tie it is called a push. The player does not win or lose money.

Here is sample output below. Notice that I have the user input a 'c' to continue between dealer cards. That keeps some of the suspense of the game.

> The dealer starts with a 10

> Your first cards: 10, 10

> Total: 20

> hit? (y/n): n

> Dealers has a 10...

> (c to continue) c

> Dealer gets a 10

> Total: 20

> Push!

> play again? (y/n): y

>

> The dealer starts with a 10

> Your first cards: 5, 10

> Total: 15

> hit? (y/n): y

> Card: 5

> Total: 20

> hit? (y/n): n

> Dealers has a 10...

> (c to continue) c

> Dealer gets a 6

> Total: 16

> (c to continue) c

> Dealer gets a 5

> Total: 21

> Dealer Wins!

> play again? (y/n): n

If you write the dealer into your game make sure that you submit it. Its encouraging to see what people come up with.

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

Students also viewed these Databases questions

Question

What are some of the possible scenes from our future?

Answered: 1 week ago