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 + "");
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.