投注号码由6个红球号码和一个蓝球号码组成,
红球号码从1-33中选(红球号码不能重复),
篮球从1-16号中选择。
package com.itheima.test;
import java.util.Random;
import java.util.Scanner;
public class Test7 {
//模拟双色球
/*
投注号码由6个红球号码和一个蓝球号码组成,
红球号码从1-33中选(红球号码不能重复),
篮球从1-16号中选择。
*/
public static void main(String[] args) {
//1.随机生成号码
int[] luckNumbers=createluckNumbers();
//2.输入号码
int[] userNumbers=userInputNumbers();
//3.判断中奖情况
judge(luckNumbers,userNumbers);
}
//1.随机一组中奖号码返回
public static int[] createluckNumbers(){
Random r=new Random();
//a.定义一个动态数组,存储7个数字
int[] arr=new int[7];
//b.遍历数组,为每个位置生成对应的号码。
for (int i = 0; i < 6; i++) {
//c.判断是否重复,如果重复,则重新随机一个,直到不重复。
while(true) {
int data=r.nextInt(33)+1;
int flag=1;
for (int j = 0; j < i; j++) {
if (data == arr[i]) {
//当重复时
flag=0;
break;
}
}
if(flag==1) {
//没有重复
arr[i]=data;
break;
}
}
}
//d.为第七个位置生成1-16的号码
arr[6]=r.nextInt(16)+1;
return arr;
}
//2.用户输入一组双色球号码返回
public static int[] userInputNumbers(){
Scanner sc=new Scanner(System.in);
//a.定义一个动态数组,存储7个数字
int arr[]=new int[7];
//b.让用户录入六个红色小球
for (int i = 0; i < 6; i++) {
System.out.println("请您输入第" + (i + 1) + "个红球号码(1-33,要求不重复)");
int data= sc.nextInt();
//c.将数据存入数组
arr[i]=data;
}
//d.让用户录入一个蓝色小球
System.out.println("请您输入篮球号码(1-16)");
arr[6]=sc.nextInt();
return arr;
}
//3.传入2组号码,判断用户是否中奖
public static void judge(int[] luckNumbers,int[] userNumbers){
//1,定义两个变量存储命中的球的个数
int readHitNumbers=0;
int blueHitNumbers=0;
//2.判断红球命中了几个
for (int i = 0; i < userNumbers.length-1; i++) {
for (int i1 = 0; i1 < luckNumbers.length-1; i1++) {
if(userNumbers[i]==luckNumbers[i1]) {
readHitNumbers++;
break;
}
}
}
//3.判断蓝球号码是否命中
blueHitNumbers=luckNumbers[6]==userNumbers[6]?1:0;
System.out.print("中奖号码是:");
printArray(luckNumbers);
System.out.print("您投注的号码是:");
printArray(luckNumbers);
System.out.println("您命中了几个红球:" + readHitNumbers);
System.out.println("您是否命中了篮球:" + (blueHitNumbers == 1 ? "是" : "否"));
//4.判断中奖情况
if(blueHitNumbers==1&&readHitNumbers<3)
System.out.println("恭喜你,中了5元小奖!");
else if (readHitNumbers==3&&blueHitNumbers==1||blueHitNumbers==0&&readHitNumbers==4)
System.out.println("恭喜你,中了10元小奖!");
else if (readHitNumbers==4&&blueHitNumbers==1||readHitNumbers==5&&blueHitNumbers==0)
System.out.println("恭喜你,中了200元!");
else if (blueHitNumbers==1&&readHitNumbers==5)
System.out.println("恭喜你,中了3000元大奖!");
else if (readHitNumbers==6&&blueHitNumbers==0)
System.out.println("恭喜你,中了500万元超级大奖!");
else if (readHitNumbers==6&&blueHitNumbers==1)
System.out.println("恭喜你,中了1000万元巨奖!可以开始享受人生");
else
System.out.println("感谢您对福利事业做出的突出贡献!!");
}
//输出数组
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("]");
}
}