package xunlian;
import java.util.Random;
import java.util.Scanner;
public class AnliDemo7 {
public static void main(String[] args) {
//双色球系统开发,系统生成范围1~33的红球号码6个(不可重复)范围1~16蓝球号码1个
//用户输入7个号码,要求与系统生成的号码范围一致
//定义一个数组,用于存储方法1生成的中奖号码
int luckarr[]=luck();
//定义一个数组,用于存储方法2产生的用户输入的号码
int userarr[]=user();
//对用户输入的投注号码进行输出
System.out.println("您投注的号码为:");
print(userarr);
//调用方法4对本次生成的中奖号码进行输出
System.out.println("本次中奖号码为:");
print(luckarr);
//调用方法3,对两个数组进行比较,判断是否中奖,并输出中奖情况。
compare(luckarr,userarr);
}
//方法1:生成6个红球和1个蓝球号码
public static int [] luck(){
Random r=new Random();
//定义一个数组,存储7个数字
int[] arr=new int [7];
//遍历数组,为每个位置生成一个随机号码,范围1~33,不能重复。
for (int i = 0; i < arr.length-1 ; i++) {
int data= r.nextInt(33)+1;
//注意:当前判断生成的号码是否与之前的重复,出现重复则重新生成,直到不重复再存进数组
//定义一个flag,默认data是没有重复的
while (true) {
boolean flag=true;
for (int j = 0; j < i; j++) {
if(data==arr[j]){
flag=false;
//重复,不能用,退出循环重新生成新的数。
break;
}
}
if (flag){
//data在之前没有出现,可以存入数组。
arr[i]=data;
break;
}
}
}
arr[arr.length-1]= r.nextInt(16)+1;
return arr;
}
// 方法2:用户可以输入7个号码啊(6个红球,1个蓝球)。
public static int[] user(){
Scanner sc=new Scanner(System.in);
//定义一个动态数组,用于存储用户输入的号码。
int[] user=new int[7];
for (int i = 0; i < user.length-1; i++) {
System.out.println("请输入第"+(i+1)+"个红球号码,范围1~33,不可重复");
user[i]= sc.nextInt();
}
System.out.println("输入1个蓝球号码");
user[user.length-1]= sc.nextInt();
return user;
}
public static void compare(int[] a,int[] b){
int red=0;
int blue=0;
//对两数组中的红球进行比较,记录相同个数。
for (int i = 0; i < a.length-1; i++) {
//用户号码数组遍历一次,判断有无与中奖数组相同的号码。
for (int j = 0; j < b.length-1; j++) {
if(a[i]==b[j]){
red++;
break;
}
}
}
//三目比较符,判断蓝球号码是否相同,对blue赋值
blue = a[a.length-1]==b[b.length-1]?1:0;
System.out.println("您中了"+red+"个红球,"+blue+"个蓝球。");
//判断中奖情况
if(blue==1 && red<3){
System.out.println("恭喜您,六等奖,5元!");
}
else if(blue==1 && red==3 || blue==0 && red==4){
System.out.println("恭喜您,五等奖,10元!");
}
else if (blue==1 && red==4 || blue==0 && red==5) {
System.out.println("恭喜您,四等奖,200元!");
}
else if(blue==1 && red==5){
System.out.println("恭喜您,三等奖,3000元大奖!");
}
else if(blue==0 && red==6){
System.out.println("恭喜您,二等奖,最高五百万元特大奖!");
}
else if(blue==1 && red==6){
System.out.println("恭喜您,一等奖,1000万元超级大奖!");
}
else{
System.out.println("很遗憾没中奖,感谢您为福利事业做出贡献!");
}
}
//方法4:输出数组
public static void print(int[] Array){
for (int i = 0; i < Array.length; i++) {
System.out.print(Array[i]+" ");
}
System.out.println("\n");
}
}