栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

用Java开发一个双色球系统

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

用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;//完成返回这个数组的地址
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/777448.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号