问题
用计算机实现一个随机1~100之间的数字,然后由用户来猜这个数字,根据用户猜测的次数分别给出不同的提示。
模拟算法
它的侧重点不在于求解,而在于实现题目所述过程,结果只不过是过程实现的副产品。
思路
感觉没啥可说的,就是模拟过程。就分5次,只要猜不中,就提示“猜错了哦!”,直接结束程序。1次就猜中,提示“你真聪明”,2次猜中,提示“你还可以哦”,3次猜中提示“你怎么才猜中呢”,4次猜中“唉呀妈呀,你终于猜中了”,5次猜中“太勉强了”。5次以后无论能不能猜中都结束程序,5次之内猜对也结束程序。
使用
package com.company;
public class Main {
public static void main(String[] args) {
// write your code here
Solution.guessNumber();
}
}
输出
1~100中的随机数已经生成
请猜第1次:
24
猜错了哦!
请猜第2次:
46
猜错了哦!
请猜第3次:
37
猜错了哦!
请猜第4次:
98
猜错了哦!
请猜第5次:
57
猜错了哦!
游戏结束
Process finished with exit code 0
实现
package com.company;
import java.util.Random;
import java.util.Scanner;
public class Solution {
/**
* 用模拟算法解决猜数字游戏
*/
static public void guessNumber() {
int randomInt = new Random().nextInt(100) + 1;
System.out.println("1~100中的随机数已经生成");
int guessCount = 0;
while (guessCount < 5) {
System.out.println("请猜第" + (guessCount + 1) + "次:");
Scanner scanner = new Scanner(System.in);
int inputInt = scanner.nextInt();
switch (guessCount) {
case 0:{
if (inputInt == randomInt) {
System.out.println("你真聪明");
System.out.println("游戏结束");
return;
} else System.out.println("猜错了哦!");
}break;
case 1:{
if (inputInt == randomInt) {
System.out.println("你还可以哦");
System.out.println("游戏结束");
return;
} else System.out.println("猜错了哦!");
}break;
case 2:{
if (inputInt == randomInt) {
System.out.println("你怎么才猜中呢");
System.out.println("游戏结束");
return;
} else System.out.println("猜错了哦!");
}break;
case 3:{
if (inputInt == randomInt) {
System.out.println("唉呀妈呀,你终于猜中了");
System.out.println("游戏结束");
return;
} else System.out.println("猜错了哦!");
}break;
case 4:{
if (inputInt == randomInt) {
System.out.println("太勉强了");
System.out.println("游戏结束");
return;
} else System.out.println("猜错了哦!");
}break;
default:break;
}
guessCount++;
}
System.out.println("游戏结束");
}
}