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;
}
}
双色球系统
于 2024-07-03 10:09:04 首次发布