Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Create a basic car racing game (no graphics necessary). Using the UML diagram be

ID: 3781436 • Letter: C

Question

Create a basic car racing game (no graphics necessary). Using the UML diagram below, create a bet class, a player class (two players), and a car class (four cars). Create a demo class for the three classes. For input, each player should be able to select a vehicle and place a wager (capped at $100). The game should be able to run until one player has $0 remaining or until the user wants to quit. For example, (both players initialized with $100 in bet money) if in round one player 1 wagers $20 and player 2 wagers $30, and player 1 loses the round, player 1 will have $100 - $20(player 1's lost wager)= $80 and player 2 will have $100 + $20(player 1's lost wager). Rounds will repeat until the game should theoretically end when one player has $200 or until the user quits the program. The game should display (output) who won (player one or player two)

Variables

Player1

Player2

Player1 Bet

Player2 Bet

Cars             quarterMileTime

vehicleOne    14.7s

vehicleTwo    13.7s

vehicleThree 14.0s

vehicleFour 13.9s

UML DIAGRAM:

Racing Game

Bet
----------
player1 : Player
player2 : Player
wager : int
----------
+Bet( player1, player 2 : Player, wager : int )
+Race() : String

Player
----------
-name : String
-cash : int
-vehicle : Car
-----------
+getName() : String
+getCash() : int
+addCash( int cash ) : int
+setVehicle( Car car ) : void

+getVehicle() : Car

Car
-----
-make : string
-model : string
----
+getQuarterMileTime() : double
- make this random < 10 seconds
+getMake() : String
+getModel() : String
+toString() : String

GUI screen
-Player 1 select a car ( radio button? )
-total cash ( starts at 100 )
-Player 2 select a car ( radio button? )
-total cash ( starts at 100 )

-Text box for wager
-button for Place Bet
-button for Race

display race result
-If player 1 wins, cash goes up, player 2 cash goes down

Game ends when one player has <= 0 cash

Explanation / Answer

Compile all the classes (using javac) and run Game.class:

1. Game.java
2. Player.java
3. Bet.java
4. Car.java

package org.learning.chegg.racingproblem;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

public class Game {

  

   public static void main(String[] args) throws IOException {

      

       Car vehicle1 = new Car("BMW", "Z8");

       Car vehicle2 = new Car("Audi", "720d");

       Car vehicle3 = new Car("Koenigsegg", "CCX");

       Car vehicle4 = new Car("Pagani", "Zonda-R");

      

       Player player1 = null;

       Player player2 = null;

      

       BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));

      

       System.out.println("Player 1 enter name: ");

       player1 = new Player(bufferedReader.readLine());

       System.out.println("Player 2 enter name: ");

       player2 = new Player(bufferedReader.readLine());

      

      

       System.out.println("Player 1 select a car: ");

       System.out.println("1. "+vehicle1);

       System.out.println("2. "+vehicle2);

       System.out.println("3. "+vehicle3);

       System.out.println("4. "+vehicle4);

       int choice = Integer.parseInt(bufferedReader.readLine());

       switch (choice) {

       case 1:

           player1.setVehicle(vehicle1);

           break;

          

       case 2:

           player1.setVehicle(vehicle2);

           break;

          

       case 3:

           player1.setVehicle(vehicle3);

           break;

          

       case 4:

           player1.setVehicle(vehicle4);

           break;

       default:

           break;

       }

      

       System.out.println("Player 2 select a car: ");

       System.out.println("1. "+vehicle1);

       System.out.println("2. "+vehicle2);

       System.out.println("3. "+vehicle3);

       System.out.println("4. "+vehicle4);

       choice = Integer.parseInt(bufferedReader.readLine());

       switch (choice) {

       case 1:

           player2.setVehicle(vehicle1);

           break;

          

       case 2:

           player2.setVehicle(vehicle2);

           break;

          

       case 3:

           player2.setVehicle(vehicle3);

           break;

          

       case 4:

           player2.setVehicle(vehicle4);

           break;

       default:

           break;

       }

      

       player1.addCash(100);

       player2.addCash(100);

      

       System.out.println("Enter Wager: ");

      

       Bet bet = new Bet(player1, player2, Integer.parseInt(bufferedReader.readLine()));

      

       int count = 0;

       while(!(player1.getCash() <= 0 || player2.getCash() <=0)){

           count++;

           String result = bet.race();

           Player winner = (Integer.parseInt(result) == 1)?player1: player2;

           System.out.println("Round"+count+" "+winner.getName()+" wins");

          

       }

      

       if(player1.getCash() <= 0 ){

           System.out.println(player2.getName()+"(Player 2) wins");

       }else{

           System.out.println(player1.getName()+"(Player 1) wins");

       }

   }

}

package org.learning.chegg.racingproblem;

public class Bet {

  

   Player player1;

   Player player2;

   int wager;

  

   public Bet(Player player1, Player player2, int wager) {

       this.player1 = player1;

       this.player2 = player2;

       this.wager = wager;

   }

  

   public String race(){

       String result = "";

       if(player1.getVehicle().getQuarterMileTime() < player2.getVehicle().getQuarterMileTime()){

           result = "1";

           player1.addCash((wager));

           player2.addCash((0-wager));

       }else{

           result = "2";

           player1.addCash((0-wager));

           player2.addCash((wager));

       }

      

       return result;

   }

}

package org.learning.chegg.racingproblem;

public class Player {

  

   String name;

   int cash;

   Car vehicle;

  

   public Player(String name) {

       this.name = name;

   }

  

   public String getName() {

       return name;

   }

  

   public int getCash() {

       return cash;

   }

  

   public void addCash(int cash) {

       this.cash += cash;

   }

  

   public Car getVehicle() {

       return vehicle;

   }

  

   public void setVehicle(Car vehicle) {

       this.vehicle = vehicle;

   }

  

  

}

package org.learning.chegg.racingproblem;

public class Car {

  

   String make;

   String model;

  

   public Car(String make, String model) {

       super();

       this.make = make;

       this.model = model;

   }

  

   public String getMake() {

       return make;

   }

   public String getModel() {

       return model;

   }

  

   @Override

   public String toString() {

       return "[Car make: "+this.make+", model: "+this.model+"]";

   }

  

   public double getQuarterMileTime(){

       double quartMileTime = 0;

       while (true){

           quartMileTime = Math.random() * 10;

          

           if(quartMileTime < 10 && quartMileTime>3){

               break;

           }

          

       }

       quartMileTime = Math.round(quartMileTime*100);

       return quartMileTime/100;

   }

}