双色球共6个红球,和1个蓝球,根据比较用户输入双色球与系统生成双色球的匹配度来反馈奖励。
一、需求:
1.储存用户输入双色球。
2.能够检查用户输入是否合法。红球号码1~33,蓝球号码1~16。
3.系统能够自动生成双色球。
4.比较反馈匹配度。
二、主要思路
1.双色球用二维数组保存。其中索引[0][i]的数组保存红球的数据(i<=5,6个红球);索引[1][0]的数组保存篮球的数据。
2.储存用户输入、储存系统输入的代码相似,不同之处在于用户使用scanner,系统使用random。
3.检查用户输入用无限循环,只有当满足要求时才跳出。
三、详细代码如下
注:定义变量名时最好打上注释,以免遗忘
package com.itheima.test5;
import java.util.Random;
import java.util.Scanner;
public class TwoColor {
public static void main(String[] args) {
// 1.用户输入双色球号码
Scanner sc = new Scanner(System.in);
// 生成6个红球
int[] arrRed = new int[6];
for (int i = 0; i < arrRed.length; i++) {
System.out.println("输入" + "第" + (i + 1) + "个红球的号码");
int numberRed=0;
while (true) {
numberRed = sc.nextInt();//用户输入红球号码 1-33
if(numberRed<1||numberRed>33){//检验输入是否合法
System.out.println("不合法,重新输入第"+(i + 1) + "个红球的号码(1~33)");
}
else{
break;
}
}
arrRed[i] = numberRed;
}
System.out.println("输入蓝球的号码");
int blue1 =0;
while (true) {
blue1 = sc.nextInt();//用户输入输入1-16蓝球
if(blue1<1||blue1>16){//检验输入是否合法
System.out.println("不合法,重新输入蓝球的号码(1~16)");
}
else{
break;
}
}
int[] blue = {blue1};
// 储存双色球号码
int[][] arrBal = {arrRed, blue};
// 遍历用户输入的双色球号
System.out.println("用户输入的双色球号为:");
for (int i = 0; i < arrBal.length; i++) {
for (int i1 = 0; i1 < arrBal[i].length; i1++) {
System.out.print(arrBal[i][i1] + " ");
}
}
System.out.println();//换行
// 3.系统生成的双色球号
// int[][] createBall ={ {1,1,1,1,1,1}, {1} };//验证
int[][] createBall = crateColorBall();//随机生成
System.out.println("系统生成的双色球号为:");
for (int i = 0; i < createBall.length; i++) {//遍历
for (int i1 = 0; i1 < createBall[i].length; i1++) {
System.out.print(createBall[i][i1] + " ");
}
}
// 4.比较用户输入双色球和系统生成的双色球匹配率
// 比较蓝色球
int blueNumber = 0;
if (createBall[1][0] == arrBal[1][0]) {
blueNumber = 1;
}
// 比较红色球
int redBall = 0;//创建一个变量记录红色相同次数
for (int i = 0; i < createBall[0].length; i++) {
if (createBall[0][i] == arrBal[0][i]) {
redBall++;
}
}
// 5. 输出颜色匹配结果
if (redBall == 6 && blueNumber == 1) {//6+1
System.out.println("恭喜你中了1000万");
} else if (redBall == 6 && blueNumber == 0) {//6+0
System.out.println("恭喜你中了500万");
} else if (redBall == 5 && blueNumber == 1) {//5+1
System.out.println("恭喜你中了3000元");
} else if ((redBall == 5 && blueNumber == 0) || (redBall == 4 && blueNumber == 1)) {//5+0 || 4+1
System.out.println("恭喜你中了200元");
} else if ((redBall == 4 && blueNumber == 0) || (redBall == 3 && blueNumber == 1)) {//4+0 || 3+1
System.out.println("恭喜你中了10元");
} else if ((redBall == 2 || redBall == 1 || redBall == 0) && blueNumber == 1) {//1蓝
System.out.println("恭喜你中了5元");
} else {
System.out.println();
System.out.println("很遗憾,您没有中奖");
}
}
// 2.创建一个生成随机双色球号码的方法
public static int[][] crateColorBall() {
Random r = new Random();
int[] arrRed = new int[6];//创建红球数组
for (int i = 0; i < arrRed.length; i++) {
int numberRed = r.nextInt(33) + 1;//随机一个红球号码 1-33
arrRed[i] = numberRed;
}
int[] blue = {r.nextInt(16) + 1};//随机一个1-16号码的蓝球数组
// 储存随机双色球号码
int[][] arrBal = {arrRed, blue};
return arrBal;//返回
}
}