用Java开发一个双色球系统

今天怒肝两小时写了一个双色球系统,还原了基本的彩票玩法,自己试了很多次,没中过五等奖以上,概率太低了~~~

双色球的基本玩法是:(按照福利彩票官网提供的规则)

双色球投注区分为红色球号码区和蓝色球号码区,红色球号码区由1-33共三十三个号码组成,蓝色球号码区由1-16共十六个号码组成。

原奖项一二等奖有比例分奖池的,这里进行了改动。

 上代码!!!!

package com.xiaomi.demo;

import java.util.Random;
import java.util.Scanner;

public class ExampleDemo4 {
    //开发双色球系统
    //双色球投注区分为红色球号码区和蓝色球号码区,红色球号码区由1-33共三十三个号码组成,蓝色球号码区由1-16共十六个号码组成。
    public static void main(String[] args) {
        //首先需要随机出一段7位数的号码,作为开奖号码
        int[] LuckyLotteryNumber = LotteryNumber();//接收这个幸运的开奖号码
        //然后要能接收用户想要的号码
        int[] PickNumber = FinallyNumber();
        //下一步是比较数组内容,看是否中奖
        CompareNumber(LuckyLotteryNumber, PickNumber);//比较是否中奖
    }

    public static void CompareNumber(int[] LuckyLotteryNumber, int[] PickNumber) {
        int redBoll = 0;//定义红球中奖个数
        int blueBoll = 0;//定义篮球中奖个数
        for (int i = 0; i < (LuckyLotteryNumber.length - 1); i++) {
            for (int j = 0; j < (PickNumber.length - 1); j++) {
                if (PickNumber[i] == LuckyLotteryNumber[j]) {//每一个自己选的号码分别与中奖号码的每个元素比对看有没有相同的
                    redBoll++;

                }
            }
        }
        if (LuckyLotteryNumber[LuckyLotteryNumber.length - 1] == PickNumber[PickNumber.length - 1]) {//判断篮球号码是否相同
            blueBoll++;
        }
        System.out.println();
        if (blueBoll == 1 && redBoll < 3) {
            System.out.println("恭喜你中了六等奖,5元");
        } else if ((redBoll == 4 && blueBoll == 0) || (redBoll == 3 && blueBoll == 1)) {
            System.out.println("恭喜你中了五等奖,10元");
        } else if ((redBoll == 5 && blueBoll == 0) || (redBoll == 4 && blueBoll == 1)) {
            System.out.println("恭喜你中了四等奖,200元");
        } else if (redBoll == 5 && blueBoll == 1) {
            System.out.println("恭喜你中了三等奖,3000元");
        } else if (redBoll == 6 && blueBoll == 0) {
            System.out.println("恭喜你中了二等奖,500万元" + "大奖!!!!!");
        } else if (redBoll == 6 && blueBoll == 1) {
            System.out.println("恭喜你中了一等奖,500万元" + "超级大奖!!!!!");
        } else {
            System.out.println("感谢你为福利彩票做出的贡献~~很遗憾,你未中奖");
        }
        System.out.println("本次中奖号码是:");
        Printf(LuckyLotteryNumber);
    }

    public static int[] FinallyNumber() {//最终号码由机选或者用户输入决定
        int[] numbers;//定义数组
        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.println("你想要机选还是自己选择号码");
            System.out.println("1.机选");
            System.out.println("2.自己选");
            int select = sc.nextInt();
            if (select == 1) {
                numbers = LotteryNumber();//机选调用随机生成号码的方法
                System.out.println("机器选的号码是:");
                Printf(numbers);//打印号码
                break;
            } else if (select == 2) {
                numbers = BettingNumber();//自己选调用输入号码方法
                System.out.println("你选的号码是:");
                Printf(numbers);//打印号码
                break;
            } else
                System.out.println("输入有误~~重新输入");
        }
        return numbers;
    }

    public static void Printf(int[] a) {
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i] + " ");
        }
    }

    public static int[] BettingNumber() {//用来接收用户自己选择的号码
        int[] numbers = new int[7];//固定数组长度为7
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < numbers.length - 1; i++) {//开始循环,接收用户想买的不重复的红球号码
            while (true) {
                System.out.println("请输入第" + (i + 1) + "个你想要的号码(红球)1-33");
                int boll = sc.nextInt();//然后判断这个数字是否和前面的数字重复
                boolean NotRepeat = true;//定义一个变量记录是否重复;默认不重复
                for (int j = i - 1; j >= 0; j--) {
                    if (numbers[j] == boll | boll > 33) {
                        NotRepeat = false;//这里发现了错误,改为false
                        if (boll > 33)//判断是什么原因发生的错误,给出对应的语句
                            System.out.println("不能超过33呢~~重新输一次吧");
                        else
                            System.out.println("你之前买过这个号码啦~~换一个~~重新输一次吧");
                        break;
                    }
                }
                if (NotRepeat) {
                    numbers[i] = boll;
                    break;//满足没有错误条件,跳出循环
                }
            }
        }
        System.out.println("再输入一个蓝色球号码1-16");
        int boll = 0;
        while (true) {//判断输入的蓝色球号码是否符合1-16
            boll = sc.nextInt();
            if (boll <= 16) {
                break;
            } else
                System.out.println("输入数字大于16~~请重新输入");
        }
        numbers[numbers.length - 1] = boll;
        return numbers;//返回这个投注号码
    }

    public static int[] LotteryNumber() {//返回一个数组,里面装载开奖的每一个号码
        int[] numbers = new int[7];//固定数组长度为7
        Random r = new Random();
        for (int i = 0; i < numbers.length - 1; i++) {//开始循环,随机一个不重复的数(红球)放到对应的数组元素里
            while (true) {
                int boll = r.nextInt(33) + 1;//1-33
                boolean NotRepeat = true;//定义一个变量记录是否重复;默认不重复
                for (int j = i - 1; j >= 0; j--) {
                    if (numbers[j] == boll) {
                        NotRepeat = false;//这里发现了重复,改为false
                        break;
                    }
                }
                if (NotRepeat) {//如果没有重复的,就将boll的值交给number【i】
                    numbers[i] = boll;
                    break;
                }
            }
        }
        //还需要一个蓝色的号码
        numbers[numbers.length - 1] = r.nextInt(16) + 1;
        return numbers;//完成返回这个数组的地址
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值