package com.github.cbpos1989.examples.conditional;
import java.util.Random;
import java.util.Scanner;
public class NumberGuessApp {
public static void main(String[] args) {
Random rand = new Random();
Scanner scan = new Scanner(System.in);
boolean playAgain = false;
do{
boolean[] guesses = new boolean[20];
int guess = 0;
int randomNumber = rand.nextInt(20) + 1;
int countGuess = 0;
boolean invalid = true;
boolean validGuess = false;
do{
System.out.println(randomNumber);
do{
System.out.println("Guess a number between 1 and 20: ");
try {
String input = scan.next();
guess = Integer.parseInt(input);
validGuess = true;
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("Put in a proper digit(1-20)");
validGuess = false;
}
if(guess > 0 && guess < 21){
if(guesses[guess - 1]){
validGuess = false;
System.out.println("You have already picked this number,\n Pick another number please!");
} else {
guesses[guess-1] = true;
validGuess = true;
}
} else {
validGuess = false;
System.out.println("Enter between 1-20");
}
int[] pickedNums = new int[20];
int[] unpickedNums = new int[20];
String pickedOutput = "";
String unpickedOutput = "";
for (int i = 0; i < guesses.length; ++i) {
if(guesses[i]){
pickedNums[i] = i + 1;
pickedOutput += " " + pickedNums[i];
} else {
unpickedNums[i] = i + 1;
unpickedOutput += " " + unpickedNums[i];
}
}
System.out.println("Number you have picked: " + pickedOutput);
System.out.println("Number left to pick from: " + unpickedOutput);
}while(!validGuess);
if(guess == randomNumber){
System.out.println("You got it right, the number was " + randomNumber
+ " and you used " + (countGuess + 1) + " guesses.");
invalid = false;
}else{
System.out.println("Wrong guess, Guess again");
countGuess++;
}
}while(invalid);
validGuess = false;
do{
System.out.println("Would you like to play agian? Y/N: ");
String exit = scan.next();
exit = exit.toUpperCase();
if(exit.equals("Y")){
System.out.println("Y");
validGuess = true;
playAgain = true;
} else if (exit.equals("N")) {
System.out.println("Thank you for playing, good bye");
validGuess = true;
playAgain = false;
} else {
System.out.println("Please Y or N");
validGuess = false;
}
}while(!validGuess);
}while(playAgain);
scan.close();
}
}