1.利用Random随机产生中奖号码
2.用户输入自己选择的号码
3.根据中奖条件判断中奖情况
package practice;//包名
//导入的包:
import java.util.Random;
import java.util.Scanner;
public class DoubleColorBallSystem {
public static void main(String[] args) {
int[] luckyNumber = creatNumber();
int[] userNumber = userInput();
System.out.println("您选择的号码是: ");
printNumber(userNumber);
System.out.println("中奖号码是:");
printNumber(luckyNumber);
System.out.println("您的中奖情况是:");
judge(userNumber,luckyNumber);
}
//判断中奖情况:
public static void judge(int[] userNumber,int[] luckyNumber ) {
//红色球中奖个数、蓝色球中奖个数
int red = 0;
for (int i = 0; i < userNumber.length-1; i++) {
for (int j = 0; j < luckyNumber.length-1; j++) {
if (userNumber[i]==luckyNumber[j]) {
red++;
break;
}
}
}
int blue = userNumber[userNumber.length-1] == luckyNumber[luckyNumber.length-1]?1:0;
System.out.println("红色球中奖个数: "+red);
System.out.println("蓝色球中奖个数: "+blue);
//根据中奖条件判断奖金:
if(blue==1&&red<=2)
System.out.println("恭喜中奖5元!再接再厉~");
else if (red==3&&blue==1||red==4&&blue==0) {
System.out.println("恭喜中奖10元,再接再厉");
}
else if (red==4&&blue==1||red==5&&blue==0) {
System.out.println("恭喜中了四等奖:200元!");
}
else if (red==5&&blue==1) {
System.out.println("恭喜中了三等奖:300元!");
}
else if (red==6 &&blue==0) {
System.out.println("恭喜中了二等奖:最高500万元!");
}
else if (red==6&&blue==1) {
System.out.println("恭喜中了一等奖:最高1000万元!");
}
else System.out.println("很遗憾,您没有中奖!");
}
//生成一组中奖号码:(6个不重复的红色球号码(1-33)和1个蓝色球号码(1-16))
public static int[] creatNumber() {
Random r = new Random();
//创建一个整型数组存放随机生成的中奖号码
int[] luckyNumber = new int[7];
//因为红色球号码和蓝色球号码范围不同,先生成前6个红色球号码
for (int i = 0; i < luckyNumber.length-1; i++) {
while (true) {
int n = r.nextInt(33)+1;
//判断随机生成的数据是否有重复
boolean flag = true;//标记位,默认数据没有重复
for (int j = 0; j < i; j++) {
if(n == luckyNumber[j])
{
flag = false;
break;
}
}
if(flag)
{
luckyNumber[i] = n;
break;
}
}
}
//生成蓝色球号码
luckyNumber[luckyNumber.length-1] = r.nextInt(16)+1;
return luckyNumber;
}
//用户输入选择号码:
public static int[] userInput() {
Scanner sr = new Scanner(System.in);
int[] userNumber = new int[7];
System.out.println("请输入6个红色球号码(1-33)和1个蓝色球号码(1-16)");
for (int i = 0; i < userNumber.length-1; i++) {
System.out.println("请输入第"+(i+1)+"个号码:");
while (true) {
int un = sr.nextInt();
if (un<34&&un>0) {
boolean flag = true;
for (int j = 0; j < i; j++) {
if(un == userNumber[j])
{
flag = false;
System.out.println("输入的红色球号码不能重复!请重新输入数据: ");
break;
}
}
if(flag)
{
userNumber[i] = un;
break;
}
}
else {
System.out.println("您输入的数据不在要求范围内,请重新输入数据");
}
}
}
System.out.println("请输入第"+userNumber.length+"个号码:");
while (true) {
int un1=sr.nextInt();
if(un1>0&&un1<17) {
userNumber[userNumber.length-1]= un1;
break;
}
else System.out.println("您输入的数据不在要求范围内,请重新输入数据!");
}
return userNumber;
}
//打印中奖号码:
public static void printNumber(int[] number) {
System.out.print("[");
for (int i = 0; i < number.length; i++) {
System.out.print(i==number.length-1?number[i]:number[i]+",");
}
System.out.print("]");
System.out.println();
}
}