import java.util.Random;
import java.util.Scanner;
/**
* 功能:猜数字游戏
* 文件:@guessNumber.java
* 作者:夜空中最亮的星
* 时间:@2018年8月6日 上午11:49:39
*/
public class guessNumber {
public static void main(String[] args) {
System.out.println("---------------请猜出一个0~100的随机数字------------------");
Scanner input=new Scanner(System.in);
System.out.println("请选择难度:1.简单,2.普通,3.困难");
try {
int difficulty=input.nextInt();
while(difficulty!=1&&difficulty!=2&&difficulty!=3){
System.out.println("你的输入不正确!请重新选择难度:1.简单,2.普通,3.困难");
difficulty=input.nextInt();
}
//存储猜的次数
int difficultyFrequency=0;
//判断出猜的次数
if(difficulty==1){
//简单难度加上8(才发现可以这样赋值)
difficultyFrequency=difficulty+=8;
}else if(difficulty==2){
//普通难度加上5
difficultyFrequency=difficulty+5;
}else{
//困难难度加上2
difficultyFrequency=difficulty+2;
}
System.out.println("你有"+difficultyFrequency+"次机会");
Random random=new Random();
//产生随机数
int ranNum=random.nextInt(101);
//测试
//System.out.println(ranNum);
//把猜数字的步骤写成一个私有的静态方法(逻辑更清晰)注:可省略
method(difficulty,ranNum,input);
} catch (Exception e) {
System.out.println("输入异常(只能输入整数),程序退出");
}
}
/**
* 猜数字步骤的私有静态方法
* @param difficultyFrequency 猜的次数
* @param ranNum 随机数
* @param input 接收输入
*/
private static void method(int difficultyFrequency, int ranNum, Scanner input) {
int i=0;
//iteach注:标记,使berak跳出标记处循环
iteach:while(i<difficultyFrequency){
System.out.println("请输入要猜的数字:(0~100)");
int inputNum=input.nextInt();
//判断猜的数字不能小于零或大于100
while(inputNum<0&&inputNum>101){
System.out.println("你的输入不正确!请重新输入要猜的数字(1~100):");
inputNum=input.nextInt();
}
if(ranNum<inputNum){
i++;
//次数不为零则继续,次数为零则Game Over
if(difficultyFrequency-i!=0){
System.out.println("你输入的数字大了!你还有"+(difficultyFrequency-i)+"次机会");
}else{
System.out.println("Game Over!-_-");
}
}else if(ranNum>inputNum){
i++;
//次数不为零则继续,次数为零则Game Over
if(difficultyFrequency-i!=0){
System.out.println("你输入的数字小了!你还有"+(difficultyFrequency-i)+"次机会");
}else{
System.out.println("Game Over!-_-");
}
}else{
System.out.println("恭喜你猜对了^_^,游戏结束!");
//跳出标记处循环
break iteach;
}
}
}
}
努力过后,才知道许多事情,坚持坚持,就过来了。
——宫崎骏《龙猫》