public static void main(String[] args) {
int[] userNumber = userNumber();
System.out.println("您的号码为:");
System.out.println(Arrays.toString(userNumber));
int[] creatNumber = creatNumber();
System.out.println("中将号码为");
System.out.println(Arrays.toString(creatNumber));
judge(userNumber, creatNumber);
}
//生成用户投注号码
public static int[] userNumber() {
int[] userNumber = new int[7];//声明一个数组,长度为7
Scanner sc = new Scanner(System.in);
for (int i = 0; i < userNumber.length - 1; i++) {//前六位是红球,先遍历数组前六位
System.out.println("请输入第" + (i + 1) + "个球号码范围是1-33:");
int red = sc.nextInt();
if (red >= 1 && red <= 33) {//进行对范围判断
//定义一个方法,用于判断数据是否存在数组中
//如果重复,继续多生成一次
boolean result = findNumber(userNumber, red);
if (result==true) {
//代表已经存在
i--;//继续多生成一次
System.out.println("您输入的球已经重复");
} else {
userNumber[i] = red;//如果不重复将值赋给数组元素
}
} else {
System.out.println("输入错误,");//如果数字范围不在【1,33】中,重新生成一次
i--;
}
}
while (true){
System.out.println("请输入篮球号码:");
int blue=sc.nextInt();
if (blue>=1&&blue<=16) {//判断输入的蓝色球号码范围
userNumber[6]=blue;
break;
}else {
System.out.println("输入有错误");
}
}
return userNumber;//将盛有投注号码的数组返回
}
//生成中奖号码
public static int[] creatNumber() {
int[] creatNumber = new int[7];//定义一个数组,长度为七
Random r = new Random();
for (int i = 0; i < creatNumber.length; i++) {
if (i <= creatNumber.length - 2) {
//生成范围【1-33】之间的数字
int num = r.nextInt(1, 34);
boolean result=findNumber(creatNumber,num);
if (result ==true) {
System.out.println("这个数已经存在,系统将重新生成");
i--;
}else {
creatNumber[i] = num;}
} else {
int num = r.nextInt(1, 17);//给蓝色球赋值
creatNumber[i] = num;
}
}
return creatNumber;
}
//判断自己的号码和中奖号码,
public static void judge(int[] userNumber, int[] creatNumber) {
int sum = 0;
for (int i = 0; i < 6; i++) {
if (userNumber[i] == creatNumber[i]) {
sum++;//判断投注号码和中奖号码之间有几个红球相同,并用sum表示出来
}
}
//判断中奖情况
if (sum == 6 && userNumber[6] == creatNumber[6]) {//六个红球相同,一个蓝色球相同
System.out.println("恭喜中一等奖1000万");
} else if (sum == 6) {//六个红球相同
System.out.println("恭喜中二等奖500万");
} else if (sum == 5 && userNumber[6] == creatNumber[6]) {//五个红球,六个蓝球相同
System.out.println("恭喜中三等奖3000元");
} else if (sum == 5) {//五个红球相同
System.out.println("恭喜中四等奖200元");
} else if (sum == 4 && userNumber[6] == creatNumber[6]) {//四个红球,一个蓝球相同
System.out.println("恭喜中四等奖200元");
} else if (sum == 4) {//四个红球相同
System.out.println("恭喜中五等奖10元");
} else if (sum == 3 && userNumber[6] == creatNumber[6]) {//三个红球一个蓝球相同
System.out.println("恭喜中五等奖10元");
} else if (sum == 2 && userNumber[6] == creatNumber[6]) {//两个红球一个蓝球相同
System.out.println("恭喜中六等奖5元");
} else if (sum == 1 && userNumber[6] == creatNumber[6]) {//一个红球,一个蓝球相同
System.out.println("恭喜中六等奖5元");
} else if (userNumber[6] == creatNumber[6]) {//一个蓝球相同
System.out.println("恭喜中六等奖5元");
} else {
System.out.println("很遗憾,未中奖");
}
}
/**
* @param arr 数组
* @param num 元素
* @return 有返回true无返回false
* findNumber判断一个数是否在数组中
*
*/
public static boolean findNumber(int[] arr, int num) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] == num) {
return true;
}
}
return false;
}
模拟双色球的程序编写
于 2023-07-22 21:39:09 首次发布