猜數字小游戲

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就是10009999的值
        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判断因为上面我限定的是执行到count4的时候就判定是否继续,不继续就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;

    }

}比較菜,希望各位大佬提提建議,麻煩了。
求评论,看能不能改进一下,或者再加一些什么。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值