import java.util.Random;
import java.util.Scanner;
public class Slyj {
public static void main(String[] args) {
Random ss = new Random();
int[] a = randomCommon(1, 33, 7); //调用randomCommon方法随机获得7个1-33不重复的中奖球号码
if (a == null) throw new AssertionError(); //断言数组a的地址不为空,否则可能产生空指针异常
a[a.length - 1] = ss.nextInt(16) + 1; //给最后一个蓝球随机产生1个1-16的号码
System.out.print("(调试用的)中奖号码为:");
winning_number(a);
int[] yh = client(); //调用client方法让客户输入6个1-33的红球,1个1-16号码的蓝球
int blue = 0; //变量blue用来判断用户蓝球号码是否中奖
System.out.println("中奖号码为:");
winning_number(a);
System.out.println("您的号码为:");
winning_number(yh);
if (a[a.length - 1] == yh[yh.length - 1]) {
blue = 1;
}
bonus(a, yh, blue);
}
public static void bonus(int[] a, int[] b, int h) {
int red = 0;
for (int i = 0; i < b.length - 1; i++) { //客户号码数组遍历中奖号码数组
for (int j = 0; j < a.length - 1; j++) {
if (a[i] == b[j]) red++; //red存的值为:有几个红球中奖
}
}
if (h == 0) { // 根据双色球规则判断中奖情况
switch (red) {
case 4:
System.out.println("恭喜您获得五等奖:奖金10元");
break;
case 5:
System.out.println("恭喜您获得四等奖:奖金200元");
break;
case 6:
System.out.println("恭喜您获得二等奖:奖金最高500万元");
break;
default:
System.out.println("很遗憾!您没有中奖!");
}
}
if (h != 0) {
switch (red) {
case 0:
case 1:
case 2:
System.out.println("恭喜您获得六等奖:奖金5元");
break;
case 3:
System.out.println("恭喜您获得五等奖:奖金100元");
break;
case 4:
System.out.println("恭喜您获得四等奖:奖金200元");
break;
case 5:
System.out.println("恭喜您获得三等奖:奖金3000元");
break;
case 6:
System.out.println("恭喜您获得一等奖:奖金最高1000万元");
break;
default:
System.out.println("很遗憾!您没有中奖!");
}
}
}
public static int[] client() {
Scanner s = new Scanner(System.in);
System.out.println("请输入您的双色球号码:"); //这个方法咱们这种刚入门的小白不友好,太费脑子
int[] b = new int[7]; //想要了解的可以跟我控屏连麦交流
int c = 1, d; //想要了解的可以跟我控屏连麦交流
boolean e = true; //想要了解的可以跟我控屏连麦交流
boolean f = true; //想要了解的可以跟我控屏连麦交流
while (f) { //想要了解的可以跟我控屏连麦交流
d = s.nextInt();
if (d >= 1 && d <= 33) {
b[0] = d;
f = false;
} else System.out.println("您输入的号码超出红球范围!请重新输入:");
}
while (e) {
boolean k = true;
d = s.nextInt();
for (int i = 0; i < 7; i++) {
if (c == 6) {
break;
}
if (d == b[i]) {
System.out.println("号码重复!请重新输入:");
k = false;
break;
}
}
while (k) {
if (c == 6 && d >= 1 && d <= 16) {
b[c] = d;
e = false;
k = false;
}
if (k && d >= 1 && d <= 33 && c != 6) {
b[c] = d;
++c;
k = false;
} else {
if (c < 6){
System.out.println("您输入的号码超出红球范围!请重新输入:");
break;
}
if (c == 6 && d < 1 || d > 16) System.out.println("您输入的号码超出蓝球范围!请重新输入:");
break;
}
}
}
return b;
}
public static void winning_number(int[] a) {
System.out.print("[");
for (int i = 0; i < a.length; i++)
System.out.print(i == a.length - 1 ? a[i] : (a[i] + ","));
System.out.println("]");
}
public static int[] randomCommon(int min, int max, int n) { //CV过来的 想了解咱们可以一起探讨
if (n > (max - min + 1) || max < min) {
return null; //(int min, int max, int n)
} //此方法功能是:例如(min=1,max=15,n=6)
int[] result = new int[n]; // 是产生6个1-15之间不重复的数
int count = 0;
while (count < n) {
int num = (int) (Math.random() * (max - min)) + min;
boolean flag = true;
for (int j = 0; j < n; j++) {
if (num == result[j]) {
flag = false;
break;
}
}
if (flag) {
result[count] = num;
count++;
}
}
return result;
}
}