package caishuzi; import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class CaiShuZiWenTi { public static void main(String[] args) { CaiShuZiWenTi caiShuZiWenTi = new CaiShuZiWenTi(); /* 分析: 得有一个随机数 得键盘输入一个数值 比较数据和随机数是否相等 相等提示对了 不相等提示错了 */ //Random r = new Random(); //int data = r.nextInt(10000);//生成一个随机的int值,该值在0-10000之间包含0不包含10000 //int data = (int) (Math.random() * 10000);//也是生成随机的int的值,math.random是返回0.0-0.1的一个随机数乘以10000就是1000到9999的值 RandomMethod randomMethod = new RandomMethod(); int data = randomMethod.getRandom(); System.out.println("随机数生成成功"); System.out.println(data); String str2 = "Y"; String str3 = "N"; String str4 = "y"; String str5 = "n"; int count = 0;//答了几道题 int count_2 = 0;//标识是否答对 while (true) {//死循环 Scanner sc = new Scanner(System.in); System.out.println("请输入一个数值"); int c = sc.nextInt(); Map<String, Integer> stringIntegerMap = randomMethod.IfMathTrue(data, c, count, count_2); count = stringIntegerMap.get("count"); count_2 = stringIntegerMap.get("count_2"); data = stringIntegerMap.get("data"); if (count == 4) {//当答了4道题后判断是否继续 System.out.println("游戏结束,答案是" + data + "是否继续(Y:继续 N:结束):______"); Scanner enter_2 = new Scanner(System.in); String s = enter_2.next(); if (s.equals(str2)||s.equals(str4)) { //randomMethod.IfMathTrue(data,c,count,count_2); data = RandomMethod.IfRandom(data);//如果不加这一行代码在判断是否继续后随机码会和上次执行的一样所以重新赋一次值 System.out.println(data); count = 0; count_2 = 0; } else if (s.equals(str3)||s.equals(str5)) { System.out.println("下次继续"); break; } else { System.out.println("输入错误,请输入正确字符"); break; } } } } } class RandomMethod{ public static int getRandom(){ //获取随机数 int data = (int) (Math.random() * 10000); return data; } public static int IfRandom(int data){ //判定每次出现的随机数是否相等,相等则重新随机 int data1 = getRandom(); if (data1 == data){ getRandom(); }else{ data = data1; } return data; } public Map<String,Integer> IfMathTrue(int data,int c,int count,int count_2){//判定输入的值是否和生成的随机数相等 Map<String, Integer> map = new HashMap<String,Integer>(); if (data == c) { System.out.println("输入正确"); /* 这个if判断因为上面我限定的是执行到count为4的时候就判定是否继续,不继续就break跳出。 如果不加这个if会在判断游戏结束的上面在执行一遍if里面的判断 */ if (count < 3) { data = IfRandom(data); System.out.println("随机数生成成功"); System.out.println(data); } count++; count_2++; }else{ System.out.println("输入错误"); count++; } map.put("count",count); map.put("count_2",count_2); map.put("data",data); return map; } }比較菜,希望各位大佬提提建議,麻煩了。
求评论,看能不能改进一下,或者再加一些什么。