【用java写的】双色球中奖模拟器

双色球,6个红球,1个蓝球,而且红球中的数据不能重复,红球的数字范围为1-33,蓝球的数字范围为1-16。

然后我们作为彩民,自己买号,在模拟器中则自己依次输入每个球对应的号码,最后开奖的时候判断我们中了多少。

双色球中奖规则:

我当时看到这个案例,感觉很麻烦,首先我认为最难搞的方面是,生成红球的随机数,这个数我网上查了一下,双色球的数字是不能重复的,那么我就得要生成不同的6个随机数,然后存到数组里。怎么实现,当时我还在想。

后来我就先把程序的功能先分块:

1.随机生成中奖号码,定义一个数组长度为6的int 类型的数组存红球的号码,且红球的数组中数据不能有相同的,定义数组长度为1的数组来存蓝球号码。

2.用户也是我,依次输入我的红球号码和蓝球号码。

3.统计结果,双色球要顺序和数字都相同才算有效,也就是说,数组的索引和索引对应的数据都要相同才可以。

4.判断结果。

然后我就开始写

第一部分

  //随机生成中奖号码Scanner sc = new Scanner(System.in);Random r = new Random();int[] red = new int[6];int [] blue=new int[1];blue [0]= r.nextInt(16) + 1;//随机生成蓝球的号码System.out.println(blue[0]);for (int i = 0; i < red.length; ) {    //随机生成红球号码,且随机数不能重复int a = r.nextInt(33) + 1;boolean b = Shuijishupanduan(red, a);if (!b) {red[i] = a;i++;}}

在其中我调用了一个有返回值的方法,用来判断随机数是否重复的,这是我认为最难的地方,但是我也想出来了哈哈哈。方法是这样的:

 //判断随机数是否相同的方法public static boolean Shuijishupanduan(int[] arr, int a) {for (int i = 0; i < arr.length; i++) {if (arr[i] == a) {return true;}}return false;

 返回一个boolean类型,然后i++放在,if语句中,就表示随机数一直生成,到这个随机数在数组中没有相同的时候就存入数组中,然后才能 i 自增到数组中下一位循环。在这里我设了随机数的范围是1-33.

第二部分

//用户输入自己的号码int []arr=new int[6];int []arr1=new int[1];System.out.println("覃泺宇牌双色球,赢到手麻");int n=1;for (int i = 0; i < arr.length; i++) {System.out.println("请输入你的第"+n+"个红球的号码:");int shuru=sc.nextInt();arr[i]=shuru;n++;}System.out.println("请输入蓝球的号码:");int B=sc.nextInt();arr1[0]=B;

简单的遍历数组,然后给数组塞数据,逐个塞进去,定义了2个数组来存我自己输入的数据,然后后面就可以和之前随机生成的中奖号码的两个数组(一个红球的,一个蓝球的)进行比较。(索引相同的数据也相同才算有效)

第三部分 

//判断红、蓝球有几个和中奖号码相同的,红球和蓝球分开统计。int RED=xiangtong(red,arr);int BULE=xiangtong(blue,arr1);

判断两个数组有几个数据相同,再定义一个计数器来统计相同的个数就完事了,那么我又要比红球的,又要比蓝球的,这两种是重复的工作,我当时就定义了一个方法,输入要比较的两个数组,就可以返回他们有几个相同索引数据也一样的元素。

 //判断两个数组有多少个相同的数据public static int xiangtong(int arr1[],int arr2[]) {int xiangtongshu=0;for (int i = 0; i < arr1.length; i++) {if (arr2[i]==arr1[i]){   //双色球的号码要相同,而且还要对应的位置也相同(也就是俩数组的相同索引的数据要一样)xiangtongshu++;}}return xiangtongshu;

第四部分

就是判断结果了,依照上图的规则,用if语句就可以了,然后我就也定义了一个方法,只要输入红球中的数和蓝球中的数,便可返回几等奖。

 //判断奖项public static void jiang(int r,int b){if (r==6 && b==1){System.out.println("恭喜你!中了一等奖,奖金1000万元!");}else if (r==6 && b==0){System.out.println("恭喜你!中了二等奖,奖金500万元!");}else if (r==5 && b==1){System.out.println("恭喜你!中了三等奖,奖金3000元!");}else if ((r==5 && b==0)||(r==4 && b==1)){System.out.println("恭喜你!中了个四等奖,奖金200元!");}     else if ((r==4 && b==0)||(r==3&&b==1)){System.out.println("恭喜你!中了个五等奖,奖金10元");}else if ((r==2&&b==1)||(r==1&&b==1)||(r==0&&b==1)){System.out.println("恭喜你!大怨种,中了六等奖,奖金5元");}}

再调用一下方法

 jiang(RED,BULE);

总体的程序是这样的:

package Test;import java.util.Random;
import java.util.Scanner;public class Shangseqiu {public static void main(String[] args) {//随机生成中奖号码Scanner sc = new Scanner(System.in);Random r = new Random();int[] red = new int[6];int[] blue = new int[1];blue[0] = r.nextInt(16) + 1;//随机生成蓝球的号码for (int i = 0; i < red.length; ) {    //随机生成红球号码,且随机数不能重复int a = r.nextInt(33) + 1;boolean b = Shuijishupanduan(red, a);if (!b) {red[i] = a;i++;}}//用户输入自己的号码int[] arr = new int[6];int[] arr1 = new int[1];System.out.println("覃泺宇牌双色球,赢到手麻");int n = 1;for (int i = 0; i < arr.length; i++) {System.out.println("请输入你的第" + n + "个红球的号码:");int shuru = sc.nextInt();arr[i] = shuru;n++;}System.out.println("请输入蓝球的号码:");int B = sc.nextInt();arr1[0] = B;//判断红、蓝球有几个和中奖号码相同的,红球和蓝球分开统计。int RED = xiangtong(red, arr);int BULE = xiangtong(blue, arr1);//根据统计的红球和蓝球相同的结果,分析所中的奖项,有普适性可以写成方法,只要输入红球和蓝球相同的个数就得结果jiang(RED, BULE);}//判断随机数是否相同的方法public static boolean Shuijishupanduan(int[] arr, int a) {for (int i = 0; i < arr.length; i++) {if (arr[i] == a) {return true;}}return false;}//判断两个数组有多少个相同的数据public static int xiangtong(int arr1[], int arr2[]) {int xiangtongshu = 0;for (int i = 0; i < arr1.length; i++) {if (arr2[i] == arr1[i]) {   //双色球的号码要相同,而且还要对应的位置也相同(也就是俩数组的相同索引的数据要一样)xiangtongshu++;}}return xiangtongshu;}//判断奖项public static void jiang(int r, int b) {if (r == 6 && b == 1) {System.out.println("恭喜你!中了一等奖,奖金1000万元!");} else if (r == 6 && b == 0) {System.out.println("恭喜你!中了二等奖,奖金500万元!");} else if (r == 5 && b == 1) {System.out.println("恭喜你!中了三等奖,奖金3000元!");} else if ((r == 5 && b == 0) || (r == 4 && b == 1)) {System.out.println("恭喜你!中了个四等奖,奖金200元!");} else if ((r == 4 && b == 0) || (r == 3 && b == 1)) {System.out.println("恭喜你!中了个五等奖,奖金10元");} else if ((r == 2 && b == 1) || (r == 1 && b == 1) || (r == 0 && b == 1)) {System.out.println("恭喜你!大怨种,中了六等奖,奖金5元");}}
}

 花了我打gogo的时间,弄个双色球模拟,总体不算太难,最麻烦的部分我还是感觉是那个随机数不能重复的部分,我想了一些时间。i++放在if语句里很精髓我感觉。

我打的草稿。思路应该还是清晰的我认为。 

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

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

相关文章

java案例:模拟双色球中奖

1、双色球系统-业务分析、随机生成一组中奖号码 中奖号码由 6 个红球和 1 个篮球组成 ( 注意&#xff1a; 6 个红球要求不能重复 ) 。 可以定义方法用于返回一组中奖号码(7个数据)&#xff0c;返回的形式是一个整型数组 如何去保证随机的6个中奖的红球号码不重复&#xff1f; …

magento email:发送自定义邮件

邮件是几乎所有电商系统都要用到的功能&#xff0c;在magento中实现简单的邮件发送并不复杂&#xff0c;不过要想用特定邮件模板&#xff0c;就需要对magento邮件系统做一些深入了解&#xff0c;本文就分析一下如何发送自定义邮件。之前已经发了一篇介绍magento基本邮件设置的文…

magento email:快速实现发送自定义邮件

之前介绍了一下稍微复杂一点的 magento email:发送自定义邮件 但是呢&#xff0c;当我们对magento email机制有一定的了解之后&#xff0c;便可以在模块中使用自定义邮件模板快速实现发送邮件功能&#xff01; 登入后台system->Transactional Emails,单击右上角Add New T…

postfix自动搭建邮箱黑科技、邮件群发、批量自建邮局系统

大家好今天给大家分享一个 先进的自建邮箱黑科技&#xff0c;零基础3-5分钟快速搭建几百上千个自建邮箱系统。 软件特点&#xff1a;自动搭建&#xff0c;自动解析&#xff0c;多线程操作 自建邮件系统服务器要求 须开通25端口。另要求必须Centos系统&#xff0c;有固定公网I…

Excel VBA开发自动发送邮件

一、.设置Outlook邮箱帐(略不是本文章的重点) 二、.设置Outlook信任中心如下步骤 若没有做如下操作设置&#xff0c;则Excel VBA调用Outlook自动发送邮件时提示如下 2.1 Outlook->工具->信任中心 2.2 编程访问->选中”从不向我发出可疑活动警告(不推荐)“&#xff0c…

使用Excel和OutLook实现自动发送邮件

参考我的资源: https://download.csdn.net/download/paul50060049/11805973 问题的产生 我们在平时工作中可能会遇到要批量发送邮件的工作&#xff0c;例如财务部根据每个人的工资情况发放工资条到个人的邮箱&#xff0c;因为邮件因人而异&#xff0c;所以需要完成大量而细致…

模拟人生显示无法连接服务器,模拟人生总是显示无法连接网络

模拟人生中不少玩家反馈都会遇到模拟人生总是显示无法连接网络的问题&#xff0c;那么怎么解决这个问题呢&#xff0c;这边ourplay小编为大家分享几个解决方案。 模拟人生游戏简介 《模拟人生移动版》The Sims Mobile)是EA推出的系列作品。玩家可以操作自己的人物完成工作、与他…

编辑合成图片怎么做?手把手教你合成

小伙伴们平时喜欢拍完照片后&#xff0c;将这些照片分享在社交平台上吗&#xff1f;有时我们拍摄的照片会有一些瑕疵&#xff0c;我们可以通过对这些照片进行编辑、合成&#xff0c;以此来填补瑕疵&#xff0c;提高照片的观感。那你们知道如何编辑图片并合成吗&#xff1f;还不…

NFT批量图片合成制作

这是拼接教学&#xff0c;如有兴趣&#xff0c;请扫描底部二维码加群交流 1 按照目前最火的头像来说&#xff0c;一般分为算法生成和拼接图片两种。 2 算法生成相对于普通人来说比较难&#xff0c;拼接图像无疑是一种更好的选择 3 如何批量制作NFT图片呢。 ① 准备组合元素…

chatgpt赋能python:Python图片合成:快速合成图片的最佳选择

Python图片合成&#xff1a;快速合成图片的最佳选择 图片合成是数字图像处理领域的一项关键技术。在很多场景下&#xff0c;我们需要把多个图片合成成一个整体&#xff0c;以达到更好的效果。Python是一种强大而灵活的编程语言&#xff0c;因此也成为了许多开发者进行图片合成…

全民AI计划:通过langchain给LLM接上落地的大腿

langchain是一个开源项目 github.com/hwchase17/l… 。这个项目在GitHub上已经有45.5K个Star了。此项目由一位叫hwchase17的国外小哥在2022年底发布。 我有理由相信&#xff0c;这个项目是为了对接大语言模型才搞的。 一、企业困境: 如何应用大语言模型 大语言模型(Large La…

币圈“土狗”万倍狂欢:一面暴富 一面归零

在币圈&#xff0c;有一类奇葩的虚拟代币项目颇受追捧&#xff0c;人们通常叫它“土狗”。这些项目一般团队匿名&#xff0c;没啥技术含量&#xff0c;强调草根文化&#xff0c;甚至会明说“代币没有价值”。它们身上具有浓厚的meme基因&#xff0c;项目logo有时候就是个表情包…

巴比特 | 元宇宙每日必读:欧洲议会投票通过《人工智能法案》,基础模型供应商要声明训练AI的数据的版权,违规行为或将面临高额罚款...

摘要&#xff1a;据澎湃新闻报道&#xff0c;当地时间6月14日&#xff0c;欧洲议会投票通过了《人工智能法案&#xff08;AI Act&#xff09;》&#xff0c;禁止实时面部识别&#xff0c;并对ChatGPT等生成式人工智能工具提出了新的透明度要求。例如&#xff0c;基础模型的供应…

HTTP文件断点续传原理解析(源码)

生活中&#xff0c;有许多事物&#xff0c;在没有被揭开面纱之前&#xff0c;我们往往会觉得很神秘很高深&#xff0c;认为它一定很难&#xff0c;进而望而却步&#xff0c;失去了解它的机会。然而&#xff0c;很多事&#xff0c;只要我们自己能沉下心来&#xff0c;细细研究&a…

Android断点续传

最近看了一些大佬去面试的时候都提到了断点续传&#xff0c;所以自己也写一个记录下来&#xff0c;断点续传的原理就是通过数据库实时的去保存当前下载的长度&#xff0c;然后下次再次下载的时候通过setRequestProperty告诉服务端我需要这个文件从什么地方开始下载&#xff0c;…

Android笔记--断点续传

断点续传就是在下载资源过程中&#xff0c;网络出现中断后&#xff0c;下一次下载的时候能够接着上一次下载的地方继续下载&#xff0c;以达到节省流量及时间的效果。在Http1.1协议中默认支持获取文件的部分内容&#xff0c;这其中主要是通过头部的两个参数:Range和Content Ran…

Linux断点续传

Linux断点续传 之前使用cp命令拷数据很慢&#xff0c;中途有一次服务器突然关机导致数据拷盘中断&#xff0c;后台发现了rsync命令后速度&#xff0c;工作效率大大提升了。rsync支持断点续传 断点续传测试&#xff1a; rsync -avzP --progress --rshssh /nfs1/public1 root1…

Android 多线程下载以及断点续传

多线程下载 在日常开发中&#xff0c;我们不可避免的会接到类似这样的需求&#xff0c;下载一个比较大的素材文件或者安装包文件&#xff0c;以此实现APP的自动更新&#xff0c;APP内的素材替换等。由于一般此类文件都比较大&#xff0c;一般会在50M以上&#xff0c;如果我们不…

断点续传的实现

文章目录 从上次断开位置继续下载实现原理&#xff08;客户端&#xff09;&#xff1a;HTTP实现&#xff08;流程&#xff09;&#xff1a;图1&#xff1a; 客户端 Range头部信息图2&#xff1a;服务端Content-Range信息 客户端与服务端的请求与响应图解&#xff1a;获取文件 E…

断点续传的原理

断点续传是大型文件数据传输的核心。本文将以多线程技术和Socket技术为依托&#xff0c;介绍大型文件断点续传的实现方法。  基本实现思想  多线程断点续传实现的基本思想就是在发送端&#xff08;也称客户端&#xff09;将要传输的文件分割为大小相当的多块&#xff0c;用…