设计并实现一个Hi-Lo猜猜游戏程序。程序从1到100中随机选择一个数,然后反复让用户猜该数字是什么直到对或用户退出为止。每猜一次都告诉用户猜测的结果是对还是过大或过小。使用一个标识值确定用户是否想退出。当用户猜对时报告其猜测的次数。每次游戏结束时询问用户是否想继续玩,直到用户选择结束。
为什么我玩完一次,虽然显示了问你是否继续的选择,但不能进行选择直接结束了,不能玩第二轮?
import java.util.*;
import java.util.Random;
public class hilo
{
public static void main(String[] args)
{
final int Max = 100;
int answer, guess;
String str, author = "y";;
Scanner scan = new Scanner(System. in);
int count = 0;
Random generator = new Random ();
answer = generator.nextInt(Max) + 1;
System.out.println("Start play (y/n)?: ");
author = scan.nextLine();
while(author.equalsIgnoreCase("y"))
{
System.out.print("Guess a number between 1 and" + Max + ".\nEnter your guess (0 to quit): ");
guess = scan.nextInt();
while(guess != 0)
{
count++;
if(guess == answer )
{
System.out.println("Right! Guesses:" + count);
break;
}
else if(guess > answer )
{
System.out.println("Your guess was too big");
System.out.print("Enter your guess (0 to quit): ");
guess = scan.nextInt();
}
else
{
System.out.println("Your guess was too low");
System.out.print("Enter your guess (0 to quit): ");
guess = scan.nextInt();
}
}
if(guess == 0)
{
System.out.println("游戏结束") ;
}
System.out.println();
System.out.println("Play again (y/n)?: ");
author = scan.nextLine();
}
if(author.equalsIgnoreCase("n"))
{
System.out.println();
System.out.println("游戏结束");
}
}
}