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

一、双色球玩法规则:

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("很遗憾,您本次未能中奖!!!");}}
}

用Java代码实现双色球彩票相关推荐

  1. Java基础语法-双色球彩票

    Java基础语法-双色球彩票 任务概述 今天的任务,是完成双色球彩票程序. 玩法规则:"双色球"每注投注号码由6个红色球号码和1个蓝色球号码 组成.红色球号码从1-33中选择,蓝色 ...

  2. java代码:双色球号随机生成(极其简洁!)

    https://blog.csdn.net/qq_40677004/article/details/79699270 原 java代码:双色球号随机生成(极其简洁!) 2018年03月26日 15:5 ...

  3. Java基础之双色球彩票玩法

    一.双色球彩票玩法 玩法说明: 双色球投注区分为红球号码区和蓝球号码区,红球号码范围为01-33,蓝球号码范围为01-16.双色球每期从33个红球中开出6个号码,从16个蓝球中开出1个号码作为中奖号码 ...

  4. Java如何模拟双色球彩票系统?

    Java模拟双色球彩票系统 1. 功能介绍 2. 代码展示 总结 1. 功能介绍 投注号码由6个红球号码和1个蓝球号码组成,红球号码从1-33中选择,蓝球号码从1-16中选择 2. 代码展示 代码如下 ...

  5. Java代码实现双色球小游戏2.0:完整代码(待完善)

    package game;import java.util.Arrays; import java.util.Random; import java.util.Scanner;public class ...

  6. Java作业-双色球彩票

    目标效果: 要求: 奖金那里不是很懂题目描述的意思,所以一等奖默认最大值500万. 代码: /*** 模拟双色球彩票开奖结果:随机生成一注双色球彩票,判断其是否中奖,奖金为多少.一注双色球彩票由6个不 ...

  7. 双色球彩票java版

    package zonghe_test;import java.util.Random; import java.util.Scanner;public class 双色球彩票 {public sta ...

  8. Java版的双色球买彩票程序

    Java版的双色球买彩票程序 package HelloWord;import java.util.Scanner;import java.util.Random;//双色球游戏public clas ...

  9. 深度置信网络预测算法matlab代码_深度学习双色球彩票中的应用研究资料

    点击蓝字关注我们 AI研习图书馆,发现不一样的世界 深度学习在双色球彩票中的应用研究 前言 人工神经网络在双色球彩票中的应用研究网上已经有比较多的研究论文和资料,之前比较火的AlphaGo中用到的深度 ...

最新文章

  1. 考研计算机专业英语题型,考研英语一题型及分值
  2. ​阿里达摩院金榕:从技术到科学,中国 AI 将何去何从?
  3. B07_NumPy 高级索引(整数数组索引,布尔索引,花式索引)
  4. PHP的引用传值值传递
  5. Drupal 自定义主题实体 Theming Custom Entities
  6. 《MySQL——数据表设计三大范式》
  7. mysql error 1201_ERROR 1201 (HY000): Could not initialize master info structure; .....
  8. python如何监听cmd_如何从Python脚本捕获Python解释器和/或CMD.EXE的输出?
  9. html传值 location.search取
  10. 解决每次git pull、git push都需要输入账号和密码的问题
  11. jdk,jre,tommcat配置问题
  12. python2中urllib.unquote乱码的原因与解决方法
  13. linux遇到hint:num lock on
  14. Neo4j 构建简单农业知识图谱(Agriculture KnowledgeGraph)
  15. mvc2 mvc_MVC之外的世界
  16. HTML5的最简单模板
  17. ABAP CDS View
  18. [python] 分治法查找数组元素的最大值和最小值
  19. 华为VPLS配置案例S6720
  20. 神经性脚臭案例整理(三)

热门文章

  1. 百度富文本编辑器 UM
  2. (轉貼) 如何重新定義Thinkvantage(AccessIBM)按鍵的功能? (NB) (ThinkPad) (OS) (Windows)
  3. 入职新公司,如何快速凸显个人价值
  4. 用python计算身体BMI指数
  5. 网络关键设备选型及介绍
  6. YYGH-2-排班管理
  7. python清空语句_python有趣语句
  8. MM将成中国移动业务发展的战略平台
  9. js 实现超出字符添加省略号功能
  10. Color2Gray: Salience-Preserving Color Removal实现