模拟双色球的操作

创建一个模拟双色球的系统。

第一步-->先创建中奖的号码

 //创建中奖的数字,红球1--33,蓝球1--16
    public static int[] createLuckNumber() {
        int[] luckNumbers = new int[7];
        Random random = new Random();

        for (int i = 0; i < luckNumbers.length-1; i++) {
            int num = random.nextInt(33)+1;
            // 如果不定义flag就是会,虽然不会进下面的循环但是出了循环,后还是会赋值给数组,达不到去重的效果
                boolean flag = true;
            for (int j = 0; j < i; j++) {
                if(num == luckNumbers[j]){
                    flag = false;
                    i--;
                    break;
                }
            }
            if(flag){
                luckNumbers[i] = num;
            }
        }
        luckNumbers[luckNumbers.length - 1] = random.nextInt(16) + 1;
       // System.out.println(Arrays.toString(luckNumbers));

        return luckNumbers;
    }

这一步创建好了双色的获奖号码

第二步-->模拟买家买号码:

   //创建用户要买的号码,红球1--33,蓝球1--16
    public static int[] userInputNumbers() {
        int[] userNumbers =new int[7];
        Scanner sc = new Scanner(System.in);
        //判断输入的号码是否买过,不能重复购买同一个号
        for (int i = 0; i < userNumbers.length - 1; i++) {
            System.out.println("你要买的第"+(i + 1)+ " 红球号是:");
            int num = sc.nextInt();
            if(num >= 1 && num <= 33){

                boolean flag = true;
                for (int j = 0; j < i; j++) {
                    if(num == userNumbers[j]){
                        flag = false;
                        System.out.println("号码已经买过了,请选择不同的号码:");
                        i--;
                        break;
                    }
                }
                if(flag){
                    userNumbers[i] = num;
                }
            }else{
                System.out.println("你买的号码不存在,请买1--33的号码:");
                i--;
                continue;
            }
        }
        System.out.println("你要买的蓝球号:");
        int bluenum = sc.nextInt();
        while(bluenum<1 || bluenum > 16){
            System.out.println("你买的号不存在,请买1--16的号码:");
            bluenum = sc.nextInt();
        }

        userNumbers[userNumbers.length-1] =bluenum;
        return userNumbers;

    }

这一步就可以模拟买家已经买好了自己的双色球号了

第三步-->根据用户买的号判断中了什么奖,获奖的规则是;

 //判断用户的中奖
    public static void judge(int[] luckNumbers, int[] userNumbers) {
        int redNumber = 0;
        int blueNumber = 0;
        //判断红球中了多少个
        for (int i = 0; i < luckNumbers.length - 1; i++) {
            for (int j = 0; j < userNumbers.length - 1; j++) {
                if(luckNumbers[i] == userNumbers[j]){
                    redNumber++;
                    break;
                }
            }
        }
        //判断蓝球是否中了
        if(luckNumbers[luckNumbers.length - 1] == userNumbers[userNumbers.length - 1]){
            blueNumber++;
        }
        if((blueNumber==1 && redNumber ==0)|| (redNumber<=2 && blueNumber ==1)) {
            System.out.println("恭喜你中了5元");
        }else if((redNumber == 4 && blueNumber == 0)|| (redNumber ==3 && blueNumber == 1)){
            System.out.println("恭喜你中了10元");
        }else if((redNumber == 4 && blueNumber == 1) || (redNumber == 5 && blueNumber == 0)){
            System.out.println("恭喜你中200元");
        }else if(redNumber == 5 && blueNumber == 1){
            System.out.println("恭喜你中3000元");
        }else if(redNumber == 6 && blueNumber == 0){
            System.out.println("恭喜你中500万元");
        }else if(redNumber == 6 && blueNumber == 1){
            System.out.println("恭喜你中1000万元");
        }else{
            System.out.println("谢谢参与");
        }
    }
    

 这下就全部好了:

测试一波:

    public static void main(String[] args) {
        int[] luckNumbers = createLuckNumber();
        System.out.println(Arrays.toString(luckNumbers));
        int[] userNumbers = userInputNumbers();
       // System.out.println(Arrays.toString(userNumbers));
        judge(luckNumbers,userNumbers);
    }

结果

 [30, 28, 14, 8, 3, 7, 15]
你要买的第1 红球号是:
30
你要买的第2 红球号是:
28
你要买的第3 红球号是:
14
你要买的第4 红球号是:
8
你要买的第5 红球号是:
3
你要买的第6 红球号是:
7
你要买的蓝球号:
15
恭喜你中1000万元

 

欧耶中大奖了;到这里就完了!!! 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值