Java基础语法-双色球彩票
2020-08-31 13:39
281 查看
Java基础语法-双色球彩票
任务概述
今天的任务,是完成双色球彩票程序。
玩法规则:“双色球”每注投注号码由6个红色球号码和1个蓝色球号码
组成。红色球号码从1—33中选择,蓝色球号码从1—16中选择。
球的数字匹配数量和颜色决定了是否中奖,具体中奖规则:
双色球中将规则
代码执行
package day04; import java.util.Random; import java.util.Scanner; /** * 双色球 */ public class HomeWork1 { public static void main(String[] args) { Random random = new Random(); Scanner input = new Scanner(System.in); //定义一个数组接受输入的红球 int[] redNums = new int[6]; //定义一个数组redBall接收系统产生随机数 int[] redBall = new int[6]; int blueNum = 0; int blueBall; int count = 0; int redBallCount = 0; int blueBallCount = 0; System.out.println("欢迎光临中国福利彩票"); System.out.println("请输入6个红球数(1-33),不可重复!"); //接收红球 for (int i = 0; i < redNums.length; i++) { System.out.println("请输入第" + (i+1) + "个红球:"); if (input.hasNextInt()) { redNums[i] = input.nextInt(); }else { System.out.println("您输入的数据有误!"); } } //对红球进行排序 for(int i=0;i<redNums.length-1;i++) { for(int j=0;j<redNums.length-i-1;j++) { if(redNums[j]>redNums[j+1]) { int temp = redNums[j]; redNums[j] = redNums[j+1]; redNums[j+1] = temp; } } } //接受蓝球 System.out.println("请输入一个蓝球数(1-16):"); if (input.hasNextInt()) { blueNum = input.nextInt(); }else { System.out.println("您输入的数据有误!"); } System.out.println("您输入的号码是:"); System.out.print("红球:"); for(int i=0;i<redNums.length;i++) { System.out.print(redNums[i]+" "); } System.out.println(); System.out.print("蓝球:"); System.out.println(blueNum); //---------------------------------- //把系统产生的随机数存储进去redBall数组 while(count<redBall.length) { boolean flag = true; int r1 = (random.nextInt(33))+1; //每生成一个随机数判断是否与数组的数据相等; for(int i=0;i<redBall.length;i++) { if(r1==redBall[i]) { flag = false; break; } } if(flag) { redBall[count] = r1; count++; } //当最后一个随机数产生,对它进行排序 if(count==6) { for(int i=0;i<redBall.length-1;i++) { for(int j=0;j<redBall.length-i-1;j++) { if(redBall[j]>redBall[j+1]) { int temp1 = redBall[j]; redBall[j] = redBall[j+1]; redBall[j+1] = temp1; } } } } } System.out.println("本期双色球开奖结果:"); System.out.print("红球:"); for(int i=0;i<redBall.length;i++) { System.out.print(redBall[i]+" "); } //生成随机蓝球数 blueBall = (random.nextInt(16)+1); System.out.println(); System.out.println("蓝球:"+blueBall); //遍历出奖号数 for(int i=0;i<redNums.length;i++) { for(int j=0;j<redBall.length;j++) { if(redNums[i]==redBall[j]) { redBallCount++; break; } } } if(blueNum==blueBall) { blueBallCount = 1; } if(redBallCount==6&&blueBallCount==1) { System.out.println("恭喜你中了我们的一等奖"); }else if(redBallCount==6) { System.out.println("恭喜你中了我们的二等奖"); }else if(redBallCount==5&&blueBallCount==1) { System.out.println("恭喜你中了我们的三等奖"); }else if((redBallCount==5)||(redBallCount==4&&blueBallCount==1)) { System.out.println("恭喜你中了我们的四等奖"); }else if((redBallCount==4)||(redBallCount==3&&blueBallCount==1)) { System.out.println("恭喜你中了我们的五等奖"); }else if((blueBallCount==1)||(redBallCount==2&&blueBallCount==1)||(redBallCount==1&&blueBallCount==1)) { System.out.println("恭喜你中了我们的五等奖"); }else { System.out.println("很遗憾,您没有中奖!"); } } }
双色球思想: 1,创建一个数组来存储系统随机产生且不重复1-33红球号数的整数,声明一个变量存储随机产生的蓝球号数。 Random random = new Random(); int[] redBall = new int[6]; int blueBall; 2,创建一个数组来接收用户想要买的红球的号数(1-33),声明一个变量接收用户想要买的蓝球的号数(1-16) int[] redNums = new int[6]; int blueNum = 0; 3,然后我们就可以给用户输入的红球的号数去遍历系统产生随机数的数组,如果用户输入第一个数与系统产生的 随机数相等,那么可以redBallCount++,接着break跳出本次循环; 蓝球比较好计数,相等就为1,不等就为0; for(int i=0;i<redNums.length;i++) { for(int j=0;j<redBall.length;j++) { if(redNums[i]==redBall[j]) { redBallCount++; break; } } } 4,接着就可以用if-else-if进行判断了 if(redBallCount==6&&blueBallCount==1) { System.out.println("恭喜你中了我们的一等奖"); }else if(redBallCount==6) { System.out.println("恭喜你中了我们的二等奖"); }else if(redBallCount==5&&blueBallCount==1) { System.out.println("恭喜你中了我们的三等奖"); }else if((redBallCount==5)||(redBallCount==4&&blueBallCount==1)) { System.out.println("恭喜你中了我们的四等奖"); }else if((redBallCount==4)||(redBallCount==3&&blueBallCount==1)) { System.out.println("恭喜你中了我们的五等奖"); }else if((blueBallCount==1)||(redBallCount==2&&blueBallCount==1)||(redBallCount==1&&blueBallCount==1)) { System.out.println("恭喜你中了我们的五等奖"); }else { System.out.println("很遗憾,您没有中奖!"); }
以上代码是我对这道任务题的理解做出来的,希望对正在学习java基础的你们能够有所帮助。如果有更好的解法或者代码有错误,一定要联系我,我会加以改正。
相关文章推荐
- JAVA学习之基础语法练习--彩票(二)
- 第二章 Java基础语法(3)
- 第二章 Java基础语法(2)
- java 基础语法
- 第二章 Java基础语法(4)
- 1.java基础语法易忘点
- Java私塾跟我学系列――JAVA篇 第二章 基础语法 作业
- java基础语法学习笔记(五)
- JAVA基础:Hibernate外键关联与HQL语法
- Java基础语法和工具拾遗
- java语法基础
- 黑马程序员——第三天(Java基础语法2)
- Java 基础语法 条件语句,关系,逻辑表达式
- java基础语法学习笔记(二)
- Java基础语法进阶
- 第二章 java基础语法
- JAVA基础:Hibernate外键关联与HQL语法
- 用Java写的福彩双色球彩票生成器
- Java培训笔记十一(自己总结的Java语法基础)
- Java-Web开发基础之html语法基础