Reputation: 13
EDIT
Thanks for your help guys. Here's the answer that helped me: https://stackoverflow.com/a/14903642
Here's the complete working code: http://pastebin.com/1kbipuAZ
End Edit
I'm supposed to make a simple cmd game that asks a user to input a number between a certain range of numbers. Then Player 2 is supposed to take a stab at guessing what that number is. The program keeps telling "Higher" or "Lower" until the player guesses the number. I figure I'm supposed to use some if/else statements and maybe while loops, but I can't figure out in what way. I either get an infinite loop, or it stops before I want it too. Here is what I have:
import java.io.*;
class game
{
public static void main (String[]args) throws IOException
{
InputStreamReader inStream = new InputStreamReader(System.in);
BufferedReader stdin = new BufferedReader(inStream);
String inData;
System.out.println("Welcome to The Game. Player One, please enter an integer higher than 0, and less than 1000...\n");
inData = stdin.readLine();
int number = Integer.parseInt(inData);
if(number >= 1000 || number <= 0)
{
System.out.println("Sorry, that number is out of the acceptable range on numbers...\n");
}
else
{
System.out.println();
}
String f1;
System.out.println("Player Two, Please enter a guess as to what Player One's number is...\n");
f1 = stdin.readLine();
int guess = Integer.parseInt(f1);
while(guess < number)
{
if(guess != number)
{
System.out.println("Higher. Please Guess Again...\n");
}
else
{
System.out.println();
}
break;
}
while(guess > number)
{
if(guess != number)
{
System.out.println("Lower. Please Guess Again...\n");
}
else
{
System.out.println();
}
break;
}
if(number==guess)
{
System.out.println("Congratulations. Thank you for playing...\n");
}
else
{
System.out.println();
}
}
}
I've tried different combinations of loops and statements etc. and I just can't get very far.
Upvotes: 0
Views: 108
Reputation: 817
Your code is almost correct....
You need to break out of loop when second player guess correct number. So,
while(guess != number)
In the loop you need to do comparison and print. Also you need to get input each time in loop.
Code as below:
f1 = stdin.readLine();
int guess = Integer.parseInt(f1);
while(guess != number)
{
if(guess < number)
{
System.out.println("Higher. Please Guess Again...\n");
}
else if(guess > number)
{
System.out.println("Lower. Please Guess Again...\n");
}
f1 = stdin.readLine();
guess = Integer.parseInt(f1);
}
*Edited**
Complete working program below:
import java.io.*;
class game
{
public static void main (String[]args) throws IOException
{
InputStreamReader inStream = new InputStreamReader(System.in);
BufferedReader stdin = new BufferedReader(inStream);
String inData;
System.out.println("Welcome to The Game. Player One, please enter an integer higher than 0, and less than 1000...\n");
inData = stdin.readLine();
int number = Integer.parseInt(inData);
if(number >= 1000 || number <= 0)
{
System.out.println("Sorry, that number is out of the acceptable range on numbers...\n");
}
else
{
System.out.println();
}
String f1;
System.out.println("Player Two, Please enter a guess as to what Player One's number is...\n");
f1 = stdin.readLine();
int guess = Integer.parseInt(f1);
while(guess != number)
{
if(guess < number)
{
System.out.println("Higher. Please Guess Again...\n");
}
else if(guess > number)
{
System.out.println("Lower. Please Guess Again...\n");
}
f1 = stdin.readLine();
guess = Integer.parseInt(f1);
}
}
}
Here is the output:
Welcome to The Game. Player One, please enter an integer higher than 0, and less than 1000...
10
Player Two, Please enter a guess as to what Player One's number is...
2 Higher. Please Guess Again...
5 Higher. Please Guess Again...
7 Higher. Please Guess Again...
12 Lower. Please Guess Again...
11 Lower. Please Guess Again...
9 Higher. Please Guess Again...
10
Upvotes: 1