import java.util.Random;
import java.util.Scanner;
public class method {
public static void main(String[] args) {
int[] userNumbers = userSelectNumbers();
System.out.println("您投注的号码:");
printArray(userNumbers);
int[] luckNumbers=createLuckNumbers();
System.out.println("中奖的号码:");
printArray(luckNumbers);
judge(userNumbers,luckNumbers);
}
//打印数组检查是否为用户输入
public static void printArray(int[] arr) {
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
System.out.print(i == arr.length - 1 ? arr[i] : arr[i] + ", ");
}
System.out.println("]");
}
//1.设计一个方法,用于让用户投注一组号码并返回(前6个是红球号码,最后一个是蓝球号码)
public static int[] userSelectNumbers() {
//2.创建一个整型数组,用于存储用户投注的7个号码
int[] numbers = new int[7];
Scanner sc = new Scanner(System.in);
//遍历前6个位置,让用户依次输入六个红球号码并存入
for (int i = 0; i < numbers.length - 1; i++) {
while (true) {
//开始让用户为当前位置投注一个红球号码(1-33之间,不能重复)
System.out.println("请输入第" + (i + 1) + "个红球号码(1-33),不能重复:");
int number = sc.nextInt();
if (number < 1 || number > 33) {
System.out.println("对不起,你输入的红球号码不在1-33之间,请确认!");
} else {
//判断是否重复
if (exist(numbers, number)) {
//number当前号码是重复了
System.out.println("对不起,你输入的红球号码前面选择过了,请确认!");
} else {
//number记住的这个号码没有重复,就可以使用了
numbers[i] = number;
break;//结束当前投注,结束当前死循环
}
}
}
}
while (true) {
System.out.println("请你输入最后一个蓝球号码(1-16):");
int number = sc.nextInt();
if (number < 1 || number > 16) {
System.out.println("对不起,您输入的篮球号码不在1-16之间,请确认:");
} else {
numbers[6] = number;
break;//篮球号码录入成功,结束死循环
}
}
return numbers;
}
public static boolean exist(int[] numbers, int number) {
//判断这个数字是否在numbers数组中存在
for (int i = 0; i < numbers.length; i++) {
if (numbers[i] == number) {
return true;
}
}
return false;
}
//设计一个方法,随机一个中奖号码出来
public static int[] createLuckNumbers() {
//1.创建一个随机数组,用于存储这七个数据
int[] numbers = new int[7];
Random r = new Random();
//2.遍历前六个位置处,依次随机一个红球号码存入(1-33)不重复
for (int i = 0; i < numbers.length - 1; i++) {
while (true) {
//3.为当前这个位置随机一个红球号码出来存入,
int number = r.nextInt(33) + 1;
//4.判断这个号码是否之前出现过(红球号码不能重复)
if (!exist(numbers, number)) {
//number不重复
numbers[i] = number;
break;//结束死循环,代表找到了当前这个位置的一个不重复的红球号码
}
}
}//录入一个蓝球号码,1-16
numbers[6] = r.nextInt(16) + 1;
return numbers;
}
//设计一个方法,用于判断用户的中奖情况
public static void judge(int[]userNumbers,int[]luckNumbers){
//2.分别定义两个变量用于记住了红球命中了几个以及篮球是否命中
int redcount=0;
int bluecount=0;
//判断红球命中的数量
//遍历用户投注的号码的前六个红球
for (int i = 0; i < userNumbers.length-1; i++) {
//userNumbers[i]
//开始遍历中奖号码的前六个红球号码,看用户当前选择的这个号码是否命中了
for (int j = 0; j < luckNumbers.length-1; j++) {
if (userNumbers[i]==luckNumbers[j]){
redcount++;
break;
}
}
}
//3.判断蓝球是否命中
bluecount=userNumbers[6]==luckNumbers[6]?1:0;
System.out.println("你命中红球的数量是:"+redcount);
System.out.println("你命中的蓝球数量是:"+bluecount);
//4.判断中奖详情,并输出结果
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 < 3 && bluecount == 1) {
System.out.println("中了5元~");
}else{System.out.println("感谢你为福利事业做出了巨大贡献!");
}
}
}
效果: