package Base_se.Base_701;import java.util.Random;
import java.util.Scanner;/*** @author gyf* @ClassName Solution* @Date 2024/7/1 19:57* @Version V1.0* @Description : 双色球系统* 投注号码由6个红色球号码和1个蓝色球号码组成。红色球号码从1-33中选择;蓝色球号码从1-16中选择。* 分别有1-6等奖 获奖情况根据号码的中将个数生成。*/
public class Solution {public static void main(String[] args) {int[] num = createNumber();System.out.println("生成的中将号码:");for (int i = 0; i < num.length; i++) {System.out.print(num[i] + " ");}System.out.println();System.out.println("length: " + num.length);System.out.println("输入你的号码:");int[] myNumber = userInputNumber(num.length);System.out.println("输出你的号码:");for (int i = 0; i < myNumber.length; i++) {System.out.print(myNumber[i] + " ");}// 获奖情况int[] score = getScore(num, myNumber);System.out.println("获奖情况:");for (int i = 0; i < score.length; i++) {System.out.print(score[i] + " ");}getMoney(score);}public static void getMoney(int[] arr) {int redScore = arr[0];int greenScore = arr[1];if (redScore == 6 && greenScore == 1) {System.out.println("1等奖");} else if (redScore == 6 && greenScore == 0) {System.out.println("2等奖");} else if ((redScore == 5 && greenScore == 1)) {System.out.println("3等奖");} else if ((redScore == 5 && greenScore == 0) || (redScore == 4 && greenScore == 1)) {System.out.println("4等奖");} else if ((redScore == 4 && greenScore == 0) || (redScore == 3 && greenScore == 1)) {System.out.println("5等奖");} else if ((redScore == 2 && greenScore == 1) || (redScore == 1 && greenScore == 1) || (redScore == 0 && greenScore == 1)) {System.out.println("6等奖");} else {System.out.println("没中奖");}}public static int[] getScore(int[] arr1, int[] arr2) {int[] scoreArr = new int[2];int redScore = 0;int greenScore = 0;for (int i = 0; i < arr1.length; i++) {if (i < 6) {if (arr1[i] == arr2[i]) {redScore++;} else {continue;}} else {if (arr1[i] == arr2[i]) {greenScore++;} else {continue;}}}scoreArr[0] = redScore;scoreArr[1] = greenScore;return scoreArr;}public static int[] userInputNumber(int length) {Scanner scanner = new Scanner(System.in);int[] inputNumber = new int[length];// 输入前6个数字for (int i = 0; i < length - 1; ) {int numberRed = scanner.nextInt();if (numberRed < 1 || numberRed > 33) {System.out.println("输入数字不正确(超出范围),重新输入:");} else if (!Inarr(inputNumber, numberRed)) {System.out.println("输入数字不正确(重复),重新输入:");} else {inputNumber[i] = numberRed;i++;}}while (true) {int numberGreen = scanner.nextInt();if (numberGreen >= 1 || numberGreen <= 17) {inputNumber[length - 1] = numberGreen;break;}}return inputNumber;}public static int[] createNumber() {int[] number = new int[7];Random random = new Random();for (int i = 0; i < number.length; ) {if (i < 6) {//1-33 红球号码不重复int randomNumber = random.nextInt(1, 34);if (Inarr(number, randomNumber)) {number[i] = randomNumber;i++;}} else {// 1-17 篮球可以和上面的重复number[i] = random.nextInt(1, 17);i++;}}return number;}public static boolean Inarr(int[] number, int randomNumber) {for (int i = 0; i < number.length; i++) {// 包含在内if (randomNumber == number[i]) {return false;}}// 不包含在内return true;}
}