用Java代码实现双色球彩票

模拟整个双色球彩票的购买、开奖和中奖流程

在这里插入图片描述

一、双色球玩法规则:

1、投注:
  • (1)双色球投注区分为红色球号码区和蓝色球号码区,
  • (2)红色球号码区由1-33共三十三个号码组成,蓝色球号码区由1-16共十六个号码组成。
  • (3)投注时选择6个红色号码和1个蓝色球号码组成。
2、中奖
  • (1)一等奖:投注号码与当期开奖号码全部相同(顺序不限,下同),即中奖;
  • (2)二等奖:投注号码与当期开奖号码中的6个红色球号码相同,即中奖;
  • (3)三等奖:投注号码与当期开奖号码中的任意5个红色球号码和1个蓝色球号码相同,即中奖;
  • (4)四等奖:投注号码与当期开奖号码中的任意5个红色球号码相同,或与任意4个红色球号码和1个蓝色球号码相同,即中奖;
  • (5)五等奖:投注号码与当期开奖号码中的任意4个红色球号码相同,或与任意3个红色球号码和1个蓝色球号码相同,即中奖;
  • (6)六等奖:投注号码与当期开奖号码中的1个蓝色球号码相同,即中奖。

二、业务流程:

1、用户购买彩票,分为自选和机选两种
2、现场开奖
3、根据用户购买的号码和现场开奖的号码进行中奖对比

三、代码展示

import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;public class MyDoubleBallTest {public static void main(String[] args) {//main()方法为主流程//初始化Scanner类型的变量inputScanner input = new Scanner (System.in);//1、生成菜单显示System.out.println("===================================");System.out.println("欢迎光临彩票中心");System.out.println("咨询电话:13988886666");System.out.println("===========================================");//2、进入循环,判断用户输入的信息while(true) {//因为双色球的值类似于01,15之类的,所以初始化一个String类型的数组来存储选出来的结果String[] userNums;System.out.println("菜单功能");System.out.println("1——用户自选");System.out.println("2——机器帮选");System.out.println("0——退出程序");System.out.println("请用户进行选择操作:");//初始化一个int类型的变量userChooseNum用来存储用户的输入int userChooseNum = input.nextInt();//对用户输入的数字进行判断switch (userChooseNum) {case 1://用户进行自选userNums = chooseNumsBySelf(input);break;case 2://机器进行帮选userNums = chooseNumsByMachine();break;case 0://退出整个程序System.out.println("您已退出程序,欢迎您的下次光临!");System.exit(0);default://用户输入有误,提醒用户重新输入System.out.println("您输入的数字有误,请您重新选择!");//输入错误,退出本次循环,进入下次循环continue;}//3、输出用户最终选择的结果System.out.println("您选择的双色球号码是:"+Arrays.toString(userNums));//4、通过随机数生成中奖号码(中奖号码的生成方式就是机器生成的方式)String[] luckyNums =  chooseNumsByMachine();System.out.println("本次中奖的双色球号码是: "+Arrays.toString(luckyNums));//5、进行用户双色球号码与中奖双色球号码的对比,判断用户是否中奖isWinningNums(userNums,luckyNums);}}/*** 用户进行自选功能方法* @return*/public static String[] chooseNumsBySelf(Scanner input) {//红色球号码区由1-33共三十三个号码组成,蓝色球号码区由1-16共十六个号码组成。//因为双色球的号码都是类似于01,12之类的字符串,因此我们创建一个numsPool数组用来存储01~33的值String[] numsPool = {"01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33"};//初始化boolean类型的数组numsPoolFlag,默认数值为falseboolean[] numsPoolFlag = new boolean[33] ;//1、进行红球的号码获取//初始化长度为6的String类型的userNums数组用来存储用户选择的红色号码String[] userNums = new String[6];//循环数组进行值的输入for(int i = 0; i<userNums.length;i++) {int redNum = 0;while(true) {//提醒用户输入号码System.out.println("请您从1~33的数字中输入红球第【"+(i+1)+"】位号码:");redNum = input.nextInt();//对用户输入的号码进行判断if(redNum < 1||redNum > 33 ) {//用户输入错误System.out.println("您的输入有误,请您输入1~33中的有效数字!");continue;}//此时的redNum表示用户输入的数字正确//为了使用户输入的数字不重复,进行标志位操作//用户所输的数字-1即为numsPoolFlag中所对应的值,默认数值为false即用户输入的数字没有重复if(numsPoolFlag[redNum-1]) {//表示用户输入的数字重复,提醒用户重新输入System.out.println("您输入的第【"+(i+1)+"】位号码重复了,请您重新输入!");continue;}break;}//将选中的红色号码赋值给用户数组userNums[i] = numsPool[redNum-1];//将标志位更改为truenumsPoolFlag[redNum-1] = true;}// 使用 Arrays.sort() 对现有的六个红球号码进行排序Arrays.sort(userNums);//2、蓝色球号码区由1-16共十六个号码组成//初始化int类型的blueNum作为蓝色球的号码int blueNum = 0;while(true) {//提醒用户输入号码System.out.println("请您从1~16的数字中输入1个蓝球的号码:");blueNum = input.nextInt();//对用户输入的号码进行判断if(blueNum < 1|| blueNum > 16 ) {//用户输入错误System.out.println("您的输入有误,请您输入1~16中的有效数字!");continue;}break;}//3、获得蓝球号码后进行红球号码和蓝球号码的拼合//复制userNums数组并将数组的长度设置为7userNums = Arrays.copyOf(userNums, userNums.length+1);//将userNums数组的最后一位设置为蓝球号码userNums[userNums.length-1] = numsPool[blueNum-1];	return userNums;}/*** 机器为用户进行帮选的功能* @return*/public static String[] chooseNumsByMachine() {//红色球号码区由1-33共三十三个号码组成,蓝色球号码区由1-16共十六个号码组成。//因为双色球的号码都是类似于01,12之类的字符串,因此我们创建一个numsPool数组用来存储01~33的值String[] numsPool = {"01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33"};//初始化boolean类型的数组numsPoolFlag,默认数值为falseboolean[] numsPoolFlag = new boolean[33] ;//1、进行红球的号码获取//初始化长度为6的String类型的userNums数组用来存储用户选择的红色号码String[] userNums = new String[6];Random random = new Random();//循环数组进行值的输入for(int i = 0; i<userNums.length;i++) {int redNum = 0;while(true) {redNum = random.nextInt(33);//为了使用户输入的数字不重复,进行标志位操作//用户所输的数字-1即为numsPoolFlag中所对应的值,默认数值为false即用户输入的数字没有重复if(numsPoolFlag[redNum-1]) {//表示数字重复,重新生成随机数continue;}break;}//将选中的红色号码赋值给用户数组userNums[i] = numsPool[redNum];//将标志位更改为truenumsPoolFlag[redNum] = true;}// 使用 Arrays.sort() 对现有的六个红球号码进行排序Arrays.sort(userNums);//2、蓝色球号码区由1-16共十六个号码组成//初始化int类型的blueNum作为蓝色球的号码int blueNum = random.nextInt(16);//3、获得蓝球号码后进行红球号码和蓝球号码的拼合//复制userNums数组并将数组的长度设置为7userNums = Arrays.copyOf(userNums, 7);//将userNums数组的最后一位设置为蓝球号码userNums[userNums.length-1] = numsPool[blueNum];	return userNums;}/*** 用户的双色球号码和幸运号码进行对比判断用户是否中奖* @param userNums* @param luckyNums*/public static void isWinningNums(String[] userNums, String[] luckyNums) {/* (1)一等奖:投注号码与当期开奖号码全部相同(顺序不限,下同),即中奖;* (2)二等奖:投注号码与当期开奖号码中的6个红色球号码相同,即中奖;* (3)三等奖:投注号码与当期开奖号码中的任意5个红色球号码和1个蓝色球号码相同,即中奖;* (4)四等奖:投注号码与当期开奖号码中的任意5个红色球号码相同,或与任意4个红色球号码和1个蓝色球号码相同,即中奖;* (5)五等奖:投注号码与当期开奖号码中的任意4个红色球号码相同,或与任意3个红色球号码和1个蓝色球号码相同,即中奖;* (6)六等奖:投注号码与当期开奖号码中的1个蓝色球号码相同,即中奖。*///初始化int类型的redSameCount用来存储红色球相同的数量int redSameCount = 0;//初始化int类型的blueSameCount用来存储蓝色球相同的数量int blueSameCount = 0;//1、判断红球相等数量for(int i = 0; i<userNums.length-1;i++) {for(int j =0; j<luckyNums.length-1;j++) {if(userNums[i].equals(luckyNums[j])) {redSameCount++;}}}//2、判断蓝球相等数量if(userNums[userNums.length-1].equals(luckyNums[luckyNums.length-1])) {blueSameCount++;}//3、根据红色球和蓝色球的数量匹配奖项if(redSameCount == 6 && blueSameCount==1) {//一等奖System.out.println("恭喜您获得一等奖,奖项是5000万元!");}else if(redSameCount == 6) {//二等奖System.out.println("恭喜您获得二等奖,奖项是1000万元!");}else if(redSameCount == 5 && blueSameCount==1) {//三等奖System.out.println("恭喜您获得三等奖,奖项是500元!");}else if(redSameCount == 5 ||redSameCount == 4 && blueSameCount==1) {//四等奖System.out.println("恭喜您获得四等奖,奖项是200元!");}else if(redSameCount == 4 ||redSameCount == 3 && blueSameCount==1) {//五等奖System.out.println("恭喜您获得五等奖,奖项是10元!");}else if(blueSameCount==1) {//六等奖System.out.println("恭喜您获得六等奖,奖项是5元!");}else {//未中奖System.out.println("很遗憾,您本次未能中奖!!!");}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/37919.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c#文案语音配图片一键生成视频

高手略过吧&#xff0c;功能太简单&#xff0c;我自己都不好意思。。 这个是我自己的需要&#xff0c;做产品类的短视频&#xff0c;东搞西搞剪辑啊啥的&#xff0c;特别麻烦&#xff0c;所以先搞这个最简版&#xff0c;以后再一步步丰富功能。 需求&#xff1a;几张图片生成…

周鸿祎的AI野望

图片&#xff5c;Photo by BoliviaInteligente on Unsplash ©自象限原创 作者&#xff5c;罗辑 编辑&#xff5c;黑豆 排版&#xff5c;李帛锦 可能是大模型&#xff0c;把周鸿祎激活了。 6月27日&#xff0c;周鸿祎&#xff0c;突然晒出了清华大学的博士录取通知书…

张朝阳王石夏伯渝《雪山上的对话》:攀越生死极限,征服永不停步

雷递网 乐天 4月15日 搜狐创始人、董事局主席兼首席执行官张朝阳&#xff0c;与深石集团创始人王石、中国首位用义肢登顶珠峰的登山家夏伯渝相约丽江玉龙雪山&#xff0c;开始了一场来自“雪山上的对话”。 雪山不仅是旅游景点&#xff0c;更是自然生态系统的重要组成部分&…

国产激光雷达第一股诞生/ 周鸿祎称企业不做ChatGPT将被淘汰/雷军要让小米汽车进世界前五…今日更多新鲜事在此...

日报君 发自 凹非寺量子位 | 公众号 QbitAI 好消息&#xff1a;今天星期五。 “坏”消息&#xff1a;听说下周开学&#xff0c;各家小朋友寒假作业写完了嘛&#xff1f; &#xff08;像我这样&#xff09;不用赶作业的友友&#xff0c;来一起看看今日份科技要闻放松放松吧~ 雷军…

Meta与微软联手推出开源大型语言模型Llama 2;程序员如何优雅地做副业

&#x1f989; AI新闻 &#x1f680; Meta与微软联手推出开源大型语言模型Llama 2 摘要&#xff1a;Meta和微软近期合作发布了名为Llama 2的开源大型语言模型。该模型旨在帮助开发者和组织构建生成式人工智能工具和体验。Azure客户可以更轻松、安全地在Azure平台上微调和部署…

Python兼职私活接单方法大曝光,这4种方法你知道吗?教你月入三万!

挣钱方法1:接外包爬虫项目 这是网络爬虫最通常的的挣钱方式&#xff0c;通过外包网站&#xff0c;熟人关系接一个个中小规模的爬虫项目&#xff0c;一般向甲方提供数据抓取&#xff0c;数据结构化&#xff0c;数据清洗等服务。 各位新入行的猿人看官大多都会先尝试这个方向&a…

福利,剪映PC版来了~ 支持windos系统和苹果系统

做自媒体的小伙伴应该都知道剪映app&#xff0c;像抖音许多视频剪辑教学都是说&#xff0c;一部手机就能完成剪辑&#xff0c;基本上手机剪辑都是剪映&#xff0c;剪映是抖音家的产品&#xff0c;非常强大的一款视频处理app&#xff0c;即便你之前没有剪辑基础&#xff0c;也能…

办公效率提升,八款功能强大的效率工具不容错过

IconFont http://www.iconfont.cn/ ​IconFont 是阿里推出的免费矢量图标网站。 它上面已经累计72 万个图标。如果你是设计师&#xff0c;你可以把自己制作的图标分享在上面&#xff0c;如果你是用户&#xff0c;它提供了不同的颜色&#xff0c;不同的文件格式的图片可以下载&…

除了ChatGPT,还能用什么计划管理软件提高效率?

最近一段时间&#xff0c;人工智能工具ChatGPT成为互联网科技圈的热门话题。正如当年的阿尔法狗给世界带来的震动一样&#xff0c;人们讨论的最多的就是&#xff1a;ai智能会不会取代人工&#xff0c;因为ai的效率太高了&#xff0c;但再智能&#xff0c;也有ai永远也取代不了的…

提升办公效率——工具篇

前言&#xff1a; 人类和动物的本质区别之一是&#xff1a;人类可以创造工具&#xff0c;而正是有了这些工具使得人类站到了食物链的最顶端。而我们作为职场人&#xff0c;掌握一些高效的办公软件是有必要的&#xff0c;今天给大家介绍一些通用的办公软件&#xff0c;有了以下…

chatGpt AI智能文本创作软件开发

近年来&#xff0c;人工智能技术取得了巨大的突破&#xff0c;其中自然语言处理领域的发展尤为迅猛。chatGpt AI智能文本创作软件是一种基于Gpt模型的自然语言生成系统&#xff0c;能够模拟人类对话&#xff0c;具备一定的创作能力。 一、chatGpt AI智能文本创作软件的工作原理…

文案批量创作助手

超越平凡&#xff0c;挖掘无限潜能&#xff01;唯米系统&#xff0c;创意的引擎&#xff0c;为您解放无限创意&#xff0c;让品牌散发独特魅力。与传统文案不同&#xff0c;我们深植智能算法和大数据分析&#xff0c;为您量身定制创意方案&#xff0c;让每一句话都独一无二。无…

浙大网新:子公司华通云数据与阿里巴巴达成合作

【TechWeb】8月12日消息&#xff0c;浙大网新科技股份有限公司今天对外发布公告称&#xff0c;公司全资子公司浙江华通云数据科技有限公司&#xff08;以下简称“华通云数据”&#xff09; 与阿里巴巴&#xff08;中国&#xff09;有限公司&#xff08;以下简称“阿里巴巴”&am…

网新中英繁CMS v12.0

介绍 网新中英繁CMS程序简介 网新中英繁CMS&#xff08;内置红、蓝、绿3套模版&#xff09;是专业为个人和企业网站建设而开发的一款智能化程序。该程序基于ASPACCESS环境开发&#xff0c; 拥有完善的网站前台和后台全智能化管理功能&#xff0c;完全由后台操作&#xff08;如…

搜款网新接口的展示过程

vvic.readme接入文档item_get根据ID取商品详情item_search根据关键词取商品列表item_search_img按图搜索商品keyword_cat_list分类目录home_recommend首页商品market_list市场导航seller_list市场列表seller_info商家信息item_search_shop商家商品列表seller_search排行榜搜索n…

【浙大网新图灵通讯】无废话简单高效C#编码规范20100611

无废话简单高效C#编码规范20100611 自己看自己的代码啥问题也没有&#xff0c;但是一个团队、N多个人、N多年的代码&#xff0c;就比较难维护、难阅读了&#xff0c;什么样的不好的习惯、错误漏洞能出来的就全出来了。 第1章 头部文件源码参考 ※ 错误参考 using System; u…

网新恒天php,网新恒天,为德邦快递插上数字化翅膀

近日&#xff0c;恒天软件携手德邦快递共建的发件系统以及德邦开放平台正式上线&#xff01;在与10家国际国内知名供应商的激烈竞争中脱颖而出&#xff0c;恒天咨询团队凭借专业的体验设计服务与高效高质的落地开发&#xff0c;与客户一同经历确立产品定位、构建产品用户体验框…

【浙大网新图灵通讯】无废话简单高效C#编码规范20100612

为什么80%的码农都做不了架构师&#xff1f;>>> 无废话简单高效C#编码规范20100612 自己看自己的代码啥问题也没有&#xff0c;但是一个团队、N多个人、N多年的代码&#xff0c;就比较难维护、难阅读了&#xff0c;什么样的不好的习惯、错误漏洞能出来的就全出来了…

[浙大网新易盛] 程序员你12点前睡觉了吗?

为什么80%的码农都做不了架构师&#xff1f;>>> 最近发现很多同事&#xff0c;在上班时有些打瞌睡&#xff0c;中午也在眯一会儿&#xff0c;当然我不是周扒皮&#xff0c;但是总的感觉来说&#xff0c;想提醒他们一下&#xff0c;平时还是需要注意一些的&#xff…

【浙大网新图灵通讯】无废话简单高效C#编码规范20100621

为什么80%的码农都做不了架构师&#xff1f;>>> 无废话简单高效C#编码规范2010060621 自己看自己的代码啥问题也没有&#xff0c;但是一个团队、N多个人、N多年的代码&#xff0c;就比较难维护、难阅读了&#xff0c;什么样的不好的习惯、错误漏洞能出来的就全出来…