用数组实现双色球的功能,可自选和机选,机选时自动生成用户双色球号码,手选时,自己录入双色球号码(红球1~32,蓝球1~16),并且自动生成中奖号码,并判定是否中奖
public static void main(String[] args) {
int[] userBalls=new int[7];
int[] awardBalls;
Scanner scanner=new Scanner(System.in);
System.out.println("请选择购买的方式: 1:机选 2:手选");
int choose=scanner.nextInt();
if (choose==1){
userBalls=creat();
awardBalls=creat();
System.out.println("机器帮你选择的号如下:");
printBall(userBalls);
System.out.println("中奖号码如下:");
printBall(awardBalls);
System.out.println("正在查询是否中奖,请稍后....");
retrieve(userBalls,awardBalls);
}else if(choose==2){
int temp;
//输入第一个红球
System.out.println("请输入第一个红球号码");
temp=scanner.nextInt();
userBalls[0]=temp;
//输入第2到第6个红球,防止重复和超出范围
for (int i = 1; i < 6; i++) {
System.out.println("请输入第"+(i+1)+"个红球号码");
temp=scanner.nextInt();
if (temp<1||temp>32){
System.out.println("号码输入错误");
i--;
}else if (judge(temp,userBalls,i)){
System.out.println("号码重复");
i--;
}
}
//手动输入蓝球
boolean svCode=true;
while (svCode){
System.out.println("请输入蓝球号码");
temp=scanner.nextInt();
if(temp>0&&temp<16){
svCode=false;
userBalls[6]=temp;
} else {
System.out.println("号码输入错误");
}
}
//展示自己选的号码和中奖号码,并判断是否中奖
System.out.println("自己选择的号如下:");
printBall(userBalls);
System.out.println("中奖号码如下:");
awardBalls=creat();
printBall(awardBalls);
System.out.println("正在查询是否中奖,请稍后....");
retrieve(userBalls,awardBalls);
}else {
System.out.println("输入错误");
}
}
//电脑自动生成球
public static int[] creat(){
int tempId;
int[] balls=new int[7];
boolean b1=true;
int bzf=0;
while (b1) {
balls[0] = (int) (Math.random() * 32) + 1;
for (int i = 1; i < 6; i++) {
tempId = (int) (Math.random() * 32) + 1;
for (int j = 0; j < i; j++) {
if (tempId == balls[j]) {
tempId=0;
}
}
balls[i] = tempId;
}
for (int a = 0; a < 6; a++) {
if (balls[a] == 0) {
bzf++;
}
}
if (bzf==0) {
b1 = false;
}
}
balls[6]=(int) (Math.random() * 16)+1;
return balls;
}
//输出球号码
public static void printBall(int[] ints){
System.out.print("红球号码有:");
for (int i = 0; i <6 ; i++) {
System.out.print(ints[i]+" ");
}
System.out.println("蓝球号码为:"+ ints[6]);
}
//查询是否中奖
public static void retrieve(int[] ints1,int[] ints2){
int blueBall=0;
int redBall=0;
if (ints1[6]==ints2[6])
blueBall=1;
for (int i = 0; i <6 ; i++) {
for (int j = i+1; j < 6; j++) {
if (ints1[i]==ints2[j])
redBall++;
}
}
if(redBall==6&&blueBall==1){
System.out.println("恭喜你中了一等奖");
} else if(redBall==6){
System.out.println("恭喜你中了二等奖");
}else if(redBall==5&&blueBall==1){
System.out.println("恭喜你中了三等奖");
}else if((redBall==4&&blueBall==1)||(redBall==5)){
System.out.println("恭喜你中了四等奖");
}else if((redBall==4)||(redBall==3&&blueBall==1)){
System.out.println("恭喜你中了五等奖");
}else if(redBall>=0&&blueBall==1){
System.out.println("恭喜你中了六等奖");
}else
System.out.println("不好意思,你没有中奖");
}
//向数组中添加元素并判断否重复
public static boolean judge(int temp,int[] ints,int i){
int svCode=0;
for (int j = 0; j