需求:抽双色球,红色球6个,蓝色球1个。
要求随机生成中奖号,用户键盘录入自己的号码,根据中奖号判断用户是否中奖。
以下是全部代码:
package com.lqm.basicTest;
import java.util.Random;
import java.util.Scanner;
public class test9 {
public static void main(String[] args) {
/*双色球:6个红色球:编号1-33。1个绿色球,编号1-16。求用户是否中奖*/
//1.调用中奖的球号的函数
int[] winNumber = createNumber();
for (int i = 0; i < winNumber.length; i++) {
System.out.print(winNumber[i]+" ");
}
//2.用户输入彩票号码(红球+蓝球)
int[] userInputArr = userInputNumber();
//3.判断用户的中奖情况
//红球 蓝球
int redCount = 0;
int blueCount = 0;
//中奖红球个数
for (int i = 0; i < winNumber.length - 1; i++) {
for (int j = 0; j < userInputArr.length; j++) {
if(winNumber[i] == userInputArr[j]) {
redCount++;
break;
}
}
}
//中奖蓝球个数
if(winNumber[winNumber.length-1] == userInputArr[userInputArr.length-1]) {
blueCount++;
}
//根据红球蓝球的个数判断中奖情况
if(redCount == 6 && blueCount == 1) {
System.out.println("恭喜你,中奖1000万");
} else if(redCount == 6 && blueCount == 0) {
System.out.println("恭喜你,中奖500万");
} else if (redCount == 5 && blueCount == 1) {
System.out.println("恭喜你,中奖3000元");
} else if ((redCount == 5 && blueCount == 0) || (redCount == 4 && blueCount == 1)) {
System.out.println("恭喜你,中奖200元");
} else if ((redCount == 4 && blueCount == 0) || (redCount == 3 && blueCount == 1)) {
System.out.println("恭喜你,中奖10元");
} else if ((redCount == 2 && blueCount == 1) || (redCount == 1 && blueCount == 1) || (redCount == 0 && blueCount == 1)) {
System.out.println("恭喜你,中奖5元");
} else {
System.out.println("很遗憾,您没有中奖");
}
}
//用户输入彩票号码
public static int[] userInputNumber() {
//用户输入彩票编号并存储在数组中
int[] arr = new int[7];
Scanner sc = new Scanner(System.in);
//用户输入6个红色球号码
for (int i = 0; i < 6; ) {
System.out.println("请输入第" + (i + 1) + "个编号:");
int redNumber = sc.nextInt();
//判断用户输入的红色球编号
if (redNumber >= 1 && redNumber <= 33) {
//编号存入数组中
//判断该编号是否已经存在数组中
boolean flag = cantains(arr, redNumber);
if (!flag) {
arr[i] = redNumber;
i++;
}
} else {
System.out.println("输入的编号已超出红色球范围");
}
}
//用户输入1个蓝球号码
System.out.println("请输入第7个编号");
while (true) {
int blueNumber = sc.nextInt();
if (blueNumber >= 1 && blueNumber <= 16) {
arr[arr.length - 1] = blueNumber;
break;
} else {
System.out.println("输入的编号已超出蓝色球范围");
}
}
return arr;
}
//求中奖的球号
public static int[] createNumber() {
//定义数组,长度为7
int[] priceArr = new int[7];
//生成红色球号码并添加到数组中
Random r = new Random();
for (int i = 0; i < 6; ) {
//获取红色球编号
int redNumber = r.nextInt(33) + 1;
//调用编号不能重复的函数
boolean flag = cantains(priceArr, redNumber);
if (!flag == true) {
priceArr[i] = redNumber;
i++;
}
}
//生成蓝球号码并添加到数组中
int blueNumber = r.nextInt(16) + 1;
priceArr[priceArr.length - 1] = blueNumber;
return priceArr;
}
//判断红球编号是否重复
public static boolean cantains(int[] priceArr, int number) {
for (int i = 0; i < priceArr.length; i++) {
if (priceArr[i] == number) {
return true;
}
}
return false;
}
}