In: Computer Science
This assignment will acquaint you with the use of while loops and boolean expressions. You will create a program that acts as a score keeper of a racquet ball game between two players. The program will continually ask the user who the winner of every point is as the game is played. It will maintain the scores and declare the match is over, using these rules: (1) A game is over when a. one of the players wins 7 points or, b. one of the players wins 3 points while the other player has 0 points. (2) The match is over when one of the players wins 2 games. The program will run a single match. See sample runs below. Write a complete class called RacquetBallMatch that has the following: • (8 points) playGame method: that plays one full game of 7 points between two players Allen and Bob. This method accepts a Scanner object and returns the name of the winner of this game. Specifically, this method repeatedly asks the user “who the winner of the next point is” until the game is over by following the rules mentioned above. The user is expected to enter the first letter of the player’s names, i.e. A for Allen and B for Bob. (Make the input case insensitive) See sample runs below. • (2 points) printGameScores method: accepts points of two players and prints the scores. See sample runs below. • (2 points) printMatchScores method: accepts game counts of two players and prints the scores. See sample runs below. • (5 points) main method: o Welcomes the user. o Declares and initializes a Scanner object to be used throughout to read user input. o Calls the playGame method repeatedly until the winner of a 3-game set can be declared. For example, if Bob wins the first 2 games, he would be declared the match winner and the program would stop. • (3 points) Include appropriate program documentation and formatting including: Your first and last name, the date of submission, code comments necessary to explain the operation of your program, and proper indentation of the code, etc. Notes: • For each of the methods, think about the following: What is the return type, what parameter(s) will it need to perform the task, and accordingly decide the method signature for each. • Don’t use static variables (variables that are declared outside of all the methods). It is ok to have class constants (variables declared with final keyword). • Use while-loops to handle the repetition. • Make sure there is no code-duplication. • Use a Boolean variable that captures the winning condition for a game or the match and use it in the while-loop conditions.
import java.util.Scanner;
import java.lang.*;
class Main
{
static char playGame (Scanner sc)
{
int a = 0, b = 0;
char win;
while (true)
{
System.out.print("Enter round winner : ");
win = sc.next ().charAt(0);
System.out.println();
win = Character.toLowerCase (win);
if (win == 'a')
a++;
else
b++;
if (a == 3 && b == 0)
return 'A';
else if (b == 3 && a == 0)
return 'B';
else if (a == 7)
return 'A';
else if (b == 7)
return 'B';
}
}
static void printGameScores (int a, int b)
{
System.out.println ("Allen's score : " + a);
System.out.println ("Bob's score : " + b);
}
static void printMatchScores (int a, int b)
{
System.out.println ("Games won by A : " + a);
System.out.println ("Games won by B : " + b);
}
public static void main (String[]args)
{
System.out.println ("Welcome to Racquet Ball simulator\n");
Scanner sc = new Scanner (System.in);
char win;
String winner = "";
int a = 0;
int b = 0;
boolean matchOver = false;
while (!matchOver)
{
win = playGame (sc);
System.out.println("Game over.\n");
if (win == 'A')
a++;
else
b++;
if (a == 2)
{
winner = "Allen";
matchOver = true;
}
else if (b == 2)
{
winner = "Bob";
matchOver = true;
}
}
System.out.println ("The winner of the match is " + winner);
}
}
I'm not sure where I was supposed to call the printing functions, so I've just declared them. Let me know if you need any changes!