import java.util.Random;
import java.util.Scanner;
public class GuessNum1 {
public static void main(String[] args) {
Random r = new Random();
int sum = r.nextInt(1,201);//1--200的随机数
Scanner sc = new Scanner(System.in);
int a = 0;
while(true){
System.out.println("请输入数字: ");
try{
a =sc.nextInt();
}catch (Exception e) {
System.out.println("请输入正确的数字: ");
sc.next();
continue;
}
if(a > sum){
System.out.println("猜大了");
}else if(a < sum){
System.out.println("猜小了");
}else{
System.out.println("猜对了");
break;
}
}
}
}
2.随机等级挑战,计分器模式
import java.util.Random;
import java.util.Scanner;
public class GuessNumber {
public static void main(String[] args) {
//随机出题
Random rand = new Random();
int level = rand.nextInt(1,11);//10级
int a = 1;
int b = level*50;
int num = rand.nextInt(a,b+1);
int n = 0;
//接收键盘输入
Scanner sc = new Scanner(System.in);
while(true){
++n;
System.out.printf("请输入[%d-%d]:",a,b);
int t = sc.nextInt();
if(t<a || t>b){
System.out.printf("请重新%n");
--n;
continue;
}
if(t>num){
System.out.printf("%d、太大了。%n",n);
}else if(t<num){
System.out.printf("%d、太小了。%n",n);
}else{
System.out.printf("%d、恭喜,猜对了(%d分)。%n",n,(110 - n*10 ));
break;
}
if(n>=10){
System.out.print("游戏结束");
break;
}
}
}
}
2.随机等级挑战,计分器模式,并用try.......catch捕获异常
package cn.zh_jie;
import java.util.Random;
import java.util.Scanner;
public class GetNum {
public static void main(String[] args) {
Random r = new Random();
Scanner sc = new Scanner(System.in);
int level = r.nextInt(1, 11);//1--10级
int a = 1;
int b = level * 50;
int n = 0;
String str = null;
int t;
int num = r.nextInt(a, b + 1);
while (true) {
++n;
System.out.printf("请输入一个[%d-%d]整数:", a, b);
try {
str = sc.next();
t = Integer.parseInt(str);
} catch (Exception e) {
System.out.printf("你输入的不是一个整数,请输入一个整数%n");
--n;
continue;
}
if (t > num) {
System.out.println("猜大了");
} else if (t < num) {
System.out.println("你猜小了");
} else {
System.out.printf("%d 恭喜你, 猜对了(%d分).%n", n, (110 - n*10));//计分器
break;
}
if (n >= 10) {
System.out.print("游戏结束");
break;
}
}
}
}