双色球随机生成中奖序列,并判断是否中奖且为几等奖
package catcher;
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;public class DoubleColorBall {
public static void main(String[] args) {
//随机数生成红球并存入数组
Random number = new Random();
int num = 0;
int n = 0;
//红球数组
int[] red = new int[6];
//蓝球数组
int bluenum = 0;
//设置电脑自动生成或者用户自己选择
Scanner scanner = new Scanner(System.in);
System.out.println("请选择您所需的服务!");
System.out.println("1.自己选号");
System.out.println("2.自动选号");
int choice = scanner.nextInt();
//手动输入数值
if(choice==1) {
for(int i=0;i<red.length;i++) {
//循环键盘输入红球数值
System.out.println("红色号码范围为1~33");
System.out.println("请输入用户所选的红色号码第"+(i+1)+"个");
red[i] = scanner.nextInt();
//判断红球数值是否符合范围要求
while(red[i]<1 || red[i]>33) {
System.out.println("请输入正确的数值!(1~33)");
red[i] = scanner.nextInt();
}
//判断输入值是否有重复
for(int j=i-1;j>=0;j--) {
while(red[j]==red[i]) {
System.out.println("请不要输入重复值");
System.out.println("请输入用户所选的红色号码第"+(i+1)+"个");
red[i] = scanner.nextInt();
//判断重新输入值后是否符合要求
while(red[i]<1 || red[i]>33) {
System.out.println("请输入正确的数值!(1~33)");
red[i] = scanner.nextInt();
}
}
}
}
//对数组进行排列
Arrays.sort(red);
//输入蓝球数值
System.out.println("请输入用户所选的蓝色号码1~16");
bluenum = scanner.nextInt();
//判断蓝球是否符合范围
while(bluenum<1 || bluenum>16) {
System.out.println("请输入正确的数值!(1~16)");
bluenum = scanner.nextInt();
}
}
//自动输入数值
if(choice==2) {
while(num<red.length) {
//设置红球随机数的范围1~33
int rednum = number.nextInt(33)+1;
//判断随机数组中是否存在重复数字
if(!(Arrays.binarySearch(red, rednum) >= 0)) {
red[0] = rednum;
num++;
}
Arrays.sort(red);
}
//设置蓝球的随机数范围为1~16
bluenum = number.nextInt(16)+1;
}
//输出双色球号
System.out.print("红球号码为:");
for(int i=0;i<red.length;i++) {
System.out.print(red[i]+" ");
}
System.out.println("蓝球号码为:"+bluenum);
System.out.println("--------以下是此次中奖的号码----------");
//生成本次获奖的双色球号
//中奖的红色号码
int[] redwinning = new int[6];
//中奖的蓝色号码
int bluewinning = 0;
while(n<redwinning.length) {
//设置红球随机数的范围1~33
int rednum = number.nextInt(33)+1;
//判断随机数组中是否存在重复数字
if(!(Arrays.binarySearch(redwinning, rednum) >= 0)) {
redwinning[0] = rednum;
n++;
}
Arrays.sort(redwinning);
}
//显示中奖的号码
bluewinning = number.nextInt(16)+1;
System.out.print("红球号码为:");
for(int i=0;i<redwinning.length;i++) {
System.out.print(redwinning[i]+" ");
}
System.out.println("蓝球号码为:"+bluewinning);
//判断此次中奖为几等奖
//设置红球中奖基数
int redwin = 0;
//设置蓝球中奖基数
int bluewin = 0;
//红球的对比
for(int i=0;i<6;i++) {
if(redwinning[i]==red[i]) {
redwin+=1;
}
}
//蓝球的对比
if(bluenum==bluewinning) {
bluewin=1;
}
//中奖标准
int count = 0;
//一等奖的中奖条件
if(redwin==6&&bluewin==1) {
count = 1;
}
//二等奖的中奖条件
if(redwin==6) {
count = 2;
}
//三等奖的中奖条件
if(redwin==5&&bluewin==1) {
count = 3;
}
//四等奖的中奖条件
if((redwin==5)||(redwin==4&&bluewin==1)) {
count = 4;
}
//五等奖的中奖条件
if((redwin==4)||(redwin==3&&bluewin==1)) {
count = 5;
}
if((redwin==2&&bluewin==1)||(redwin==1&&bluewin==1)||(bluewin==1)) {
count = 6;
}else {
//没有中奖的情况
count = 0;
}
switch(count) {
case 0:System.out.println("不好意思朋友!你并没有中奖!要不,再来一发?");break;
case 1:System.out.println("恭喜你中了一等奖!奖金:500万!");break;
case 2:System.out.println("恭喜你中了二等奖!奖金:150万!");break;
case 3:System.out.println("恭喜你中了三等奖!奖金:3000元!");break;
case 4:System.out.println("恭喜你中了四等奖!奖金:200元!");break;
case 5:System.out.println("恭喜你中了五等奖!奖金:10元!");break;
case 6:System.out.println("恭喜你中了六等奖!奖金:5元!");break;
}
}
}
中奖标准如图所示: