必威体育Betway必威体育官网
当前位置:首页 > IT技术

基于Java语言双色球摇奖过程的模拟实现

时间:2019-08-10 10:40:00来源:IT技术作者:seo实验室小编阅读:72次「手机版」
 

双色球模拟摇奖器

作者 | 顾北

对这个世界充满向往的理想主义者

基于java语言编写,模拟实现双色球摇奖器摇奖过程,产生的有效号码与用户输入的有效号码对比,输出用户的中奖情况。

用户首先输入自己购买的双色球号码(其中6个红色球号码,1个蓝色球号码。红色球号码范围在1-33,蓝色球号码1-16)。

接下来程序模拟双色球摇奖器,随机产生一组有效号码,逐个打印出来。

摇奖器产生的号码与用户购买的号码进行对比,判断用户中奖情况。

  • 一等奖:7个号码相符(6个红色球号码和1个蓝色球号码)(红色球号码顺序不限,下同)
  • 二等奖:6个红色球号码相符;
  • 三等奖:5个红色球号码和1个蓝色球号码相符;
  • 四等奖:5个红色球号码,或4个红色球号码和1个蓝色球号码相符;
  • 五等奖:4个红色球号码,或3个红色球号码和1个蓝色球号码相符;
  • 六等奖:1个蓝色球号码相符(有无红色球号码相符均可)。
public class DoubleChromosphere {
    //定义红色球的集合
    static ArrayList<integer> redbox = new ArrayList<Integer>();
    //定义蓝色球
    static int bluebox;
    //定义箱子
    static ArrayList<Integer> box = new ArrayList<Integer>();
    //把红球都放到箱子里
    static ArrayList<Integer> useredbox = new ArrayList<Integer>();
    static int usebluebox;
    //定义 红球匹配的个数
    static int reddui = 0;
    static int bluedui = 0;
    public static void kai() {
        System.out.println("开奖了");
        for (int i = 1; i <= 33; i++) {
            box.add(i);
        }
        Random r = new Random();
        //红球
        System.out.print("红球");
        for (int i = 1; i <= 6; i++) {
            //根据索引找到球
            int x = r.nextint(box.size());
            int redbox1 = box.get(x);
            //删除已经拿出来的球
            box.remove(x);
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printstacktrace();
            }
            System.out.print(redbox1 + " ");
            redbox.add(redbox1);
        }
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.print("蓝球");
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        bluebox = r.nextInt(16) + 1;
        System.out.println(bluebox);
    }
    public static void main(String[] args) {
        System.out.println("欢迎来来到中国福利彩票双色球,请量力而行,理性购彩");
        scanner sc = new Scanner(System.in);
        List<Integer> list = new ArrayList<>();
        for (int i = 1; i <= 6; i++) {
            System.out.println("请输入您要购买第" + i + "红色球的号码,范围是1到33,且不可重复购买一个号码");
                int useredbox1 = sc.nextInt();
                if (useredbox1 < 1 || useredbox1 > 33) {
                    System.out.println("您输入的数字有误,请重新输入");
                    i=0;
                } else {
                    boolean result = list.contains(useredbox1);
                    useredbox.add(useredbox1);
                    if(result){
                        System.out.println("您输入有误,请重新输入.请别输入重复的数字.");
                        i -- ;
                    }else{
                        list.add(useredbox1);
                    }
                }
        }
        System.out.println("请输入您要购买的蓝球的号码,范围在1到16");
        usebluebox = sc.nextInt();
        //判断是否有相同元素

        System.out.println("您现在选好的红球是" + useredbox + "蓝球是" + usebluebox);
        System.out.println("请耐心等待10秒,十秒之后将揭晓结果");
        try {
            Thread.sleep(10000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        kai();
        //遍历用户  红色相同的个数 调用retainAll方法
        useredbox.retainAll(redbox);
        reddui = useredbox.size();
        if (usebluebox == bluebox) {
            bluedui++;
        }
        if (reddui == 6 && bluedui == 1) {
            System.out.println("恭喜你获得一等奖,奖金1000万元");
        } else if (reddui == 6 && bluedui == 0) {
            System.out.println("恭喜你获得二等奖,奖金500万元");
        } else if (reddui == 5 && bluedui == 1) {
            System.out.println("恭喜你获得三等奖,奖金1万元");
        } else if (reddui == 5 && bluedui == 0 || reddui == 4 && bluedui == 1) {
            System.out.println("恭喜你获得四等奖,奖金3000元");
        } else if (reddui == 4 && bluedui == 0 || reddui == 3 && bluedui == 1) {
            System.out.println("恭喜你获得五等奖,奖金100元");
        } else if (reddui == 2 && bluedui == 1 || reddui == 1 && bluedui == 1 || reddui == 0 && bluedui == 1) {
            System.out.println("恭喜你获得六等奖,奖金5元");
        } else {
            System.out.println("希望您下次中奖,欢迎下次购买");
        }
    }
}

相关阅读

css淘宝导航栏模拟实例

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>导航栏</title> <link rel="stylesheet" href="tes

使用百度地图api模拟实时定位页面 完整示例

使用百度地图api模拟实时定位页面 完整示例 效果:使用百度地图api在页面上显示车辆的实时位置,并有自动刷新和手动刷新两种方

Linux云计算底层技术之一文读懂 Qemu 模拟器

本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复 「1024」 即可领取,欢迎大

约瑟夫问题(数学解法及数组模拟)

约瑟夫问题(有时也称为约瑟夫斯置换,是一个出现在计算机科学和数学中的问题。在计算机编程的算法中,类似问题又称为约瑟夫环。又称“

模拟退火(Simulated Annealing, SA)算法简介与MATLAB

目录 模拟退火算法概述 算法步骤 算法特点 模拟退火算法MATLAB实现 【例1】一元/多元函数优化 【例2】TSP问题 模拟退火算法概述

分享到:

栏目导航

推荐阅读

热门阅读