Question

Java How to Program, Early Objects ISBN-13: 9780133813432 Project Name: C2800_Proj1_RaceGame Source File Name: (Submit zip...

Java How to Program, Early Objects ISBN-13: 9780133813432

Project Name:

C2800_Proj1_RaceGame

Source File Name:

(Submit zip of these)

RaceGame.java (contains main)

RaceCar.java                                                                                                                                                             

RaceGame is a text based car racing game.

The user is car #1 and the computer is car #2.

A car is drawn using 2 lines. The number on the first line is 1 for the user and 2 for the computer.

__/1\__

-O---O-

When the car has moved down the track, print underscore’s on the second line showing how many spots. For example, if the car has moved 3 spots total, it would look like:

     __/1\__

_____-O---O-

The track is 20 spots long.

The track is drawn as 27 ~’s. 20 spots that the cars have to move plus 7 move because that is how wide the car is when it is drawn

The track looks like:

~~~~~~~~~~~~~~~~~~~~~~~~~~~

When either car reaches the 20th spot, the game is over

How to play the game:

Ask the user if he/she wants a regular roll or to go for double or nothing.

For a regular roll, move the car that many spaces forward

For a double or nothing roll: if you roll an odd number, move twice that many spaces; if you roll an even number, then move no spaces

Then roll the die for the computer. Move the computer’s car that many spaces

After both cars move, draw both cars on their track

Print the track

When one of the cars has moved at least 20 spaces, the game is over. Print a message to say who has won

Your program should have 2 class/files:

RaceGame

Contains main()

RaceCarNeeds 2 instance variables

Car’s number

Car’s position

Need get and set methods for car’s position

Need a way to set the car’s number. You can do this with a set method or a constructor with a parameter

May want a method to print the car

May want another method to move the car forward a number of spaces (updates car’s position variable)

Requirements:

Put System.out.println() after each call to nextInt(). This will help you match the Test Program and make it easier to use it.

Before the game starts, prompt the user for a set roll or a random roll. If the user enters -1, then let each roll of the die be a random number (see the next note). If the user enters anything else, then let every ‘roll of the die’ be that number. Obviously, each roll of a die will not always be the same number, but it is a great feature that allows us to test the game in a variety of ways where we always know what should happen next.

Use a random number generator to roll the die when the user chooses -1 at the first prompt for random. (We’ll cover this in more detail in Chapter 6)

Import Random

import java.util.Random;

Declare a Random number generator variable

Random rand = new Random();

Call the Random’s nextInt() method every time you want another random number. Let move be an int variable. This will return a random number between 1 and 6

move = rand.nextInt(6) + 1;

Use a random number generator to roll the die when the user chooses -1 at the first prompt for random. (We’ll cover this in more detail in Chapter 6)

Sample Run #1: (the highlighted text is what the user types)

Dice roll or -1 for random? 5

__/1\__

-O---O-

__/2\__

-O---O-

~~~~~~~~~~~~~~~~~~~~~~~~~~~

1=regular move, 2=double or nothing? 1

You move 5 spaces

Computer moves 5 spaces

     __/1\__

_____-O---O-

     __/2\__

_____-O---O-

~~~~~~~~~~~~~~~~~~~~~~~~~~~

1=regular move, 2=double or nothing? 1

You move 5 spaces

Computer moves 5 spaces

          __/1\__

__________-O---O-

          __/2\__

__________-O---O-

~~~~~~~~~~~~~~~~~~~~~~~~~~~

1=regular move, 2=double or nothing? 1

You move 5 spaces

Computer moves 5 spaces

               __/1\__

_______________-O---O-

               __/2\__

_______________-O---O-

~~~~~~~~~~~~~~~~~~~~~~~~~~~

1=regular move, 2=double or nothing? 1

You move 5 spaces

Computer moves 5 spaces

                    __/1\__

____________________-O---O-

                    __/2\__

____________________-O---O-

~~~~~~~~~~~~~~~~~~~~~~~~~~~

It's a tie

Sample Run #2: (the highlighted text is what the user types)

Dice roll or -1 for random? 6

__/1\__

-O---O-

__/2\__

-O---O-

~~~~~~~~~~~~~~~~~~~~~~~~~~~

1=regular move, 2=double or nothing? 2

Sorry, you don't move

Computer moves 6 spaces

__/1\__

-O---O-

      __/2\__

______-O---O-

~~~~~~~~~~~~~~~~~~~~~~~~~~~

1=regular move, 2=double or nothing? 1

You move 6 spaces

Computer moves 6 spaces

      __/1\__

______-O---O-

            __/2\__

____________-O---O-

~~~~~~~~~~~~~~~~~~~~~~~~~~~

1=regular move, 2=double or nothing? 1

You move 6 spaces

Computer moves 6 spaces

            __/1\__

____________-O---O-

                  __/2\__

__________________-O---O-

~~~~~~~~~~~~~~~~~~~~~~~~~~~

1=regular move, 2=double or nothing? 1

You move 6 spaces

Computer moves 6 spaces

                  __/1\__

__________________-O---O-

                        __/2\__

________________________-O---O-

~~~~~~~~~~~~~~~~~~~~~~~~~~~

Sorry, you lose

Sample Run #3: (the highlighted text is what the user types)

Dice roll or -1 for random? 5

__/1\__

-O---O-

__/2\__

-O---O-

~~~~~~~~~~~~~~~~~~~~~~~~~~~

1=regular move, 2=double or nothing? 2

Yay - you doubled your move, 10 spaces

Computer moves 5 spaces

          __/1\__

__________-O---O-

     __/2\__

_____-O---O-

~~~~~~~~~~~~~~~~~~~~~~~~~~~

1=regular move, 2=double or nothing? 2

Yay - you doubled your move, 10 spaces

Computer moves 5 spaces

                    __/1\__

____________________-O---O-

          __/2\__

__________-O---O-

~~~~~~~~~~~~~~~~~~~~~~~~~~~

Congratulations, you win!

Expected Progress: (Be prepared to show progress each week during lab time)

Week 1

Create RaceGame.java, add prompts, roll die once for first turn

Week 2

Create RaceCar.java, add methods. For now, let drawing the car just print the car’s position

Have main() create 2 RaceCar objects, set their position based on the first roll, and print the car’s new position

Week 3

Add loop to main() that will continue to roll the die and stop when a car wins

Add code to choose between a set roll and a random roll

Print the winner

Week 4

Add code to draw the cars and the track

Add code for double or nothing choice

Final testing

Extra Notes:

Did you correctly name the package/folder?

Did you correctly name the class/file?

Did you include comments?

0 0
Add a comment Improve this question Transcribed image text
Answer #1

RaceCar.java

public class RaceCar

{

    int number;

    int position;

    int no_of_moves;

   

    // parametarized constructor

    RaceCar(int number, int position)

    {

        this.number = number;

        this.position = position;

        this.no_of_moves = 0;

  }

   

    public void setPosition(int position)

    {

        // set the position

        this.position = position;

    }

   

    public int getPosition(int position)

    {

        return this.position;

    }

   

    public void moveForward(int spaces)

    {

        // update the position

        setPosition(this.position + spaces);

        this.no_of_moves += 1;

    }

   

    // check if won

    public boolean ifWon()

    {

        if(position >= 20)

            return true;

        return false;

   }

   

    public void printCar()

    {

        int i;

        // print the upper car

        for(i = 1; i <= 2 * no_of_moves; i++)

            System.out.print(" ");

        System.out.println("__/" + this.number + "\\__");

       

        // print lower car

        for(i = 1; i <= position; i++)

            System.out.print("_");

        System.out.println("-O---O-");

    }

}

RaceGame.java

import java.util.*;

public class RaceGame

{

    public static void main(String[] args)

    {

        Scanner sc=new Scanner(System.in);

       

        // create object of type random

        Random rand = new Random();

       

        // create object of type RaceCar

        RaceCar user = new RaceCar(1,0);

       

        // create object of type RaceCar

        RaceCar computer = new RaceCar(2,0);

       

        System.out.print("Dice roll or -1 for random? ");

        int move = sc.nextInt();

        System.out.println();

       

        if(move == -1)

            move = rand.nextInt(6) + 1;

       

        user.printCar();

        computer.printCar();

        System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~");

       

        while(true)

        {

            System.out.print("1=regular move, 2=double or nothing? ");

            int n = sc.nextInt();

            System.out.println("\n");

           

            if(n == 1)

            {

                System.out.println("You move "+ move + " spaces");

               

                // move user forward

                user.moveForward(move);

            }

            else

            {

                if(move % 2 == 0)

                {

                    System.out.println("Sorry, you don't move");

                   

                    // move user forward

                    user.moveForward(0);

                }

                else

                {

                    System.out.println("Yay - you doubled your move, " + (2 * move) +"spaces");

                   

                    // move user forward

                    user.moveForward(2 * move);

                }

            }

           

            System.out.println("Computer move "+ move + " spaces");

           

            // move computer forward

            computer.moveForward(move);

           

            // print cars

            user.printCar();

            computer.printCar();

            System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~");

           

            if(user.ifWon() && computer.ifWon())

            {

                System.out.println("It's a tie");

                break;

            }

            else if(user.ifWon())

            {

                System.out.println("Congratulations, you win!");

                break;

            }

            else if(computer.ifWon())

            {

                System.out.println("Sorry, you lose");

                break;

            }

        }

    }

}

Sample Output:

Add a comment
Know the answer?
Add Answer to:
Java How to Program, Early Objects ISBN-13: 9780133813432 Project Name: C2800_Proj1_RaceGame Source File Name: (Submit zip...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
  • INTRODUCTION: Play sorry with two die, and one peg. Move your piece down the board first....

    INTRODUCTION: Play sorry with two die, and one peg. Move your piece down the board first. But rolling certain numbers will change the pace of the game. INCLUDE IN YOUR ASSIGNMENT: Annotation is a major part of any program. At the top of each of your C++ programs, you should have at least four lines of documentation: // Program name: tictactoe.cpp // Author: Twilight Sparkle // Date last updated: 5/26/2016 // Purpose: Play the game of Tic-Tac-Toe ASSIGNMENT: Sorry Game...

  • Can anyone help me with this java program? We are still very early with lessons so...

    Can anyone help me with this java program? We are still very early with lessons so no advanced code please. And if you comment throughout the code that would be incredibly helpful. Thank you Create 2 Java files for this assignment: Die.java and TestDie.java Part 1 - The Die Class             The program Design a Die class that contains the following attributes: sides: represents how many sides a dice has. A dice usually has 6 sides but sometimes could have...

  • Write a Java program to play the game Tic-Tac-Toe. Start off with a human playing a...

    Write a Java program to play the game Tic-Tac-Toe. Start off with a human playing a human, so each player makes their own moves. Follow the design below, creating the methods indicated and invoking them in the main program. Use a char array of size 9 as the board; initialize with the characters 0 to 8 so that it starts out looking something like the board on the left. 0|1|2 3|4|5 6|7|8 and then as moves are entered the board...

  • Please, can you help me solve these questions? Thanks! 1- Roll a dice (get a random...

    Please, can you help me solve these questions? Thanks! 1- Roll a dice (get a random number from 1 to 6) 2-Print value of the dice 3- Keep track of running total points(display of points) 4-Ask the user to continue (y/n) 5- If the user gets 21 points, print " bingo" 6- If the user more than 21 points, print "sorry you lose" 7- If the user decides to stop the game, print his final points.

  • Write a C# program that allows one user to play Rock-Paper-Scissors with computer. The user will...

    Write a C# program that allows one user to play Rock-Paper-Scissors with computer. The user will pick a move (Rock Paper Scissors) from 3 radio buttons and click the play button to play the game. The application will use random number generator to pick a move for the computer. Then, the application display the computer's move and also display whether you won or lost the game, or the game is tie if both moves are the same. The application must...

  • Hello, Could you please help me code this program in Java? It is important that all...

    Hello, Could you please help me code this program in Java? It is important that all rules are carefully followed. Using the PairOfDice class from PP 4.9, design and implement a class to play a game called Pig. In this game, the user competes against the computer. On each turn, the current player rolls a pair of dice and accumulates points. The goal is to reach 100 points before your opponent does. If, on any turn, the player rolls a...

  • Java Submit a program in a .java file. The program should print a multiplication table for...

    Java Submit a program in a .java file. The program should print a multiplication table for the numbers 1-9. This requires a nested for loop. The outer loop moves from row to row, while the inner loop prints the row. Use tabs to separate the output, such as in the following statement:      System.out.println(“1\t2\t3\t4\t5\t6\t7\t8\t9”); Output should look similar to the following. 1      2     3     4     5     6     7     8     9 ------------------------------------------------------------------ 1       2     3     4     5     6        7     8     9...

  • Assignment C++: Rock-Scissor-Paper & Tic-Tac-Toe i need you to write two different program for RSP and...

    Assignment C++: Rock-Scissor-Paper & Tic-Tac-Toe i need you to write two different program for RSP and TTT: R-S-P Requirement: - write one program that mimics the Rock-Scissor-Paper game. This program will ask user to enter an input (out of R-S-P), and the computer will randomly pick one and print out the result (user wins / computer wins). - User's input along with computer's random pick will be encoded in the following format: -- user's rock: 10 -- user's scissor: 20...

  • The Rules of Pig Pig is a folk jeopardy dice game with simple rules: Two players...

    The Rules of Pig Pig is a folk jeopardy dice game with simple rules: Two players race to reach 100 points. Each turn, a player repeatedly rolls a die until either a 1 (”pig”) is rolled or the player holds and scores the sum of the rolls (i.e. the turn total). At any time during a player’s turn, the player is faced with two decisions: roll If the player rolls a 1: the player scores nothing and it becomes the...

  • In Java, Using arrays. You are going to write a program that will play a solitaire...

    In Java, Using arrays. You are going to write a program that will play a solitaire (one-player) game of Mancala (Links to an external site.) (Links to an external site.). The game of mancala consists of stones that are moved through various buckets towards a goal. In this version of mancala, the user will be able to choose a number of buckets and a number of stones with which to set up the game. The buckets will be created by...

ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT