Kafka dtcms文档 centos Python 莱斯分布 https parsing sharepoint jquery去空格 matlab停止运行命令 python输出函数 安装python教程 python环境配置 python中的range函数 windows搭建python开发环境 java基础教学 java重载和重写 java学习平台 javafloat java获取ip地址 linux目录系统 windows7loader 删除数组中的某个元素 文明6万神殿 灰色按钮激活精灵 正当防卫4存档 jq循环 backtrack4 思源黑体 主播音效 chrome访问助手 ps虚化背景 网红男头像 sd卡格式化 shell排序 cf活动一键领取 sysctl SQL基础教程 虚拟机连不上网 cad波浪线
当前位置: 首页 > 学习教程  > 编程语言

Java基础语法-双色球彩票

2020/8/31 13:42:03 文章标签:

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-16int[] redNums = new int[6];
	int blueNum = 0;
3,然后我们就可以给用户输入的红球的号数去遍历系统产生随机数的数组,如果用户输入第一个数与系统产生的
随机数相等,那么可以redBallCount++,接着break跳出本次循环;
蓝球比较好计数,相等就为1,不等就为0for(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基础的你们能够有所帮助。如果有更好的解法或者代码有错误,一定要联系我,我会加以改正。


本文链接: http://www.dtmao.cc/news_show_150114.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?