package com.domain;

import java.util.Random;
import java.util.Scanner;

public class RandBoll {
    public static void main(String[] args) {

        int[] userNumbers = userInputNumbers();
        System.out.println("您输入的号码是:");
        printArr(userNumbers);

        int[] luckNumbers = createLuckNumvers();
        System.out.println("中奖号码是:");
        printArr(luckNumbers);
        judge(luckNumbers, userNumbers);
    }

    // 1、随机一组双色球号码
    public static int[] createLuckNumvers(){
        // 随机6个红球号码(1-33,不能重复),随机一个蓝球号码(1-16)
        int[] numbers = new int[7];

        Random r = new Random();

        for (int i = 0; i < numbers.length - 1; i++) {
            // 单个红球循环,检测红球不能重复
            while (true) {
                boolean flag = true; // 默认没有重复
                int data = r.nextInt(33) + 1;

                for (int j = 0; j < i; j++) {
                    // 如果有重复跳出重新执行while直到符合
                    if(data == numbers[j]){
                        flag = false;
                        break;
                    }
                }

                if(flag){
                    numbers[i] = data;
                    break;
                }
            }

        }

        //生成蓝球
        numbers[numbers.length -1] = r.nextInt(16) + 1;

        return numbers;
    }

    // 输出数组
    public static void printArr(int[] arr){
        String str = "[";
        for (int i = 0; i < arr.length; i++) {
            if(i == arr.length - 1){
                str += arr[i];
            }else{
                str += arr[i] + ",";
            }

        }
        str += "]";
        System.out.println(str);
    }

    // 2、用户输入一组双色球号码返回
    public static int[] userInputNumbers(){
        Scanner sc = new Scanner(System.in);
        int[] numbers = new int[7];
        for (int i = 0; i < numbers.length - 1; i++) {
            System.out.println("请输入第"+ (i + 1) + "个红球号码");
            int data = sc.nextInt();
            numbers[i] = data;
        }

        System.out.println("请输入篮球号码");
        int data = sc.nextInt();
        numbers[numbers.length - 1] = data;

        return numbers;
    }

    // 3、传入2组号码,判断用户中奖情况
    public static void judge(int[] luckNumbers, int[] userNumbers){
        // [5,6,7,8,9,10,5]
        // [14,22,18,30,2,24,11]

        // 比对中奖情况
        int redHit = 0;
        int blueHit = 0;

        // 对比红球 先把用户的号码球和奖球进行比对
        for (int i = 0; i < userNumbers.length - 1; i++) {
            for (int j = 0; j < luckNumbers.length - 1; j++) {
                if(userNumbers[i] == luckNumbers[j]) {
                    redHit++;
                    break;
                }
            }
        }

        // 蓝色球比对
        if(userNumbers[userNumbers.length-1] == luckNumbers[luckNumbers.length-1]) {
            blueHit++;
        }

        System.out.println("红球号码:" + redHit + "\t 篮球号码" + blueHit);

        // 判断中奖情况
        if (redHit < 3 && blueHit == 1) {
            System.out.println("恭喜您,中六等奖!5元!");
        }else if ((redHit == 3 && blueHit == 1) || (redHit == 4 && blueHit == 0)) {
            System.out.println("恭喜您,中五等奖!10元!");
        }else if ((redHit == 4 && blueHit == 1) || (redHit == 5 && blueHit == 0)) {
            System.out.println("恭喜您,中四等奖!200元!");
        }else if (redHit == 5 && blueHit == 1) {
            System.out.println("恭喜您,中三等奖!3000元!");
        }else if (redHit == 6 && blueHit == 0) {
            System.out.println("恭喜您,中二等奖!大奖 500万!");
        }else if (redHit == 6 && blueHit == 1) {
            System.out.println("恭喜您,中一等奖!巨奖 1000万!");
        }else{
            System.out.println("您没有中奖");
        }

    }
}