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

For P12.6 - Be sure to define at least the following classes: 1) Player: a playe

ID: 3702000 • Letter: F

Question

For P12.6 - Be sure to define at least the following classes:

1) Player: a player of the math game that keeps track of the player's name and progress.

2) MathGame: play a math game by interacting with a Player.

3) MathGameRunner: starts the MathGame application.

Write a java program that teaches a young child. the program test addition and subtraction. in level 1 it test only addition of number less than 10 whose

sum is less than 10. In level 2, it test addition of arbitrary one digit-numbers. in level 3 it test subtraction of one- degit numbers with a non negative difference.

Generate Random problems and get the player's input. the player gets up two tries per problem. advance from one level to the next when the player has achieved a score of five points.

Explanation / Answer

// Save in game.java

//To Compile :>javac game.java

//To run this programme :>java MathGameRunner

import java.io.*;

import java.lang.Integer;

import java.util.*;

class Player

{

String name;

int level=0;

}

class MathGame

{

int num1,num2;

Random random = new Random();

public int level1() throws IOException

{

int result=11;

while(result>10) //print number only when total less then 10

{

randomnumbers();

result=num1+num2;

}

System.out.print("Addition " + num1 + "+" + num2 + " :" );

InputStreamReader isr = new InputStreamReader(System.in);

BufferedReader br = new BufferedReader(isr);

int input= Integer.parseInt(br.readLine());

if(result==input) //first attempt

return 1;

else

{

System.out.println("not correct" );

System.out.print("Addition " + num1 + "+" + num2 + " :" );

input= Integer.parseInt(br.readLine());

if(result==input) // 2nd attempt

return 1;

else return 0;

}

}

public int level2() throws IOException

{

randomnumbers();

int result=num1+num2;

System.out.print("Addition " + num1 + "+" + num2 + " :" );

InputStreamReader isr = new InputStreamReader(System.in);

BufferedReader br = new BufferedReader(isr);

int input= Integer.parseInt(br.readLine());

if(result==input) //first attempt

return 1;

else

{

System.out.println("not correct" );

System.out.print("Addition " + num1 + "+" + num2 + " :" );

input= Integer.parseInt(br.readLine());

if(result==input) // 2nd attempt

return 1;

else return 0;

}

}

public int level3() throws IOException

{

int result=-1;

while(result<0) //print number only when result grater then 0, not negative value

{

randomnumbers();

result=num1-num2;

}

//System.out.println(result);

System.out.print("Subtract " + num1 + "-" + num2 + " :" );

InputStreamReader isr = new InputStreamReader(System.in);

BufferedReader br = new BufferedReader(isr);

int input= Integer.parseInt(br.readLine());

if(result==input) //first attempt

return 1;

else

{

System.out.println("not correct" );

System.out.print("Subtract " + num1 + "-" + num2 + " :" );

input= Integer.parseInt(br.readLine());

if(result==input) // 2nd attempt

return 1;

else return 0;

}

}

public void randomnumbers()

{

num1 = random.nextInt(10);

num2 = random.nextInt(10);

}

}

class MathGameRunner

{

public static void main(String arg[]) throws IOException

{

Player p = new Player(); // creating objects to classes

MathGame m = new MathGame();

int score=0; // for level changing

InputStreamReader isr = new InputStreamReader(System.in);

BufferedReader br = new BufferedReader(isr);

System.out.print("Enter player name : ");

p.name = br.readLine();

while(score<5)

{

score=score+m.level1(); //if result correct score increase else remain same

}

System.out.println("Congrats " + p.name + " level 1 completed ");

score=0; //resetting to 0 for level 2

while(score<5)

{

score=score+m.level2(); //if result correct score increase else remain same

}

System.out.println("Congrats " + p.name + " level 2 completed ");

score=0; //resetting to 0 for level 3

while(score<5)

{

score=score+m.level3(); //if result correct score increase else remain same

}

System.out.println("Congrats " + p.name + " level 3 completed ");

System.out.println("Well done ! " + p.name + "");

}

}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote