/**
* 案例 模拟双色球
* 系统生成一个蓝球和六个红球 并存储起来
* 接受用户选号 1个蓝球 和 6个红球
* 验证比较用户是否中奖
* 公布本期中奖号码
*/
import java.util.Random; //引入生成随机字符的工具类
import java.util.Scanner; //接收数据流的类
public class demo {
static public void main(String[] arg) {
int sysblueballnum; //系统生成的篮球号
int[] sysredballnum = new int[6]; //系统生成的红球号
int userblueballnum; //用户选择的蓝球号
int[] userredballnum = new int[6]; //用户红球号码
int blueball = 0;//蓝球号码是否正确
int redballcount = 0; //红球号码是否正确
//初始化随机类
Random r = new Random();
//获取输入流
Scanner s = new Scanner(System.in);
//蓝球赋值
sysblueballnum = r.nextInt(16)+1;
//红球初始值
int[] rednum = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33};
//随机生成红球号码
for(int i=0;i<sysredballnum.length;i++) {
while(true) {
int index = r.nextInt(33);
if(rednum[index] != 0) {
sysredballnum[i] = rednum[index];
rednum[index] = 0;
break;
}
}
}
//接受用户选好
System.out.println("双色球彩票选好开始,祝你好运!");
System.out.println("请选择蓝球,16选1!");
userblueballnum = s.nextInt();
System.out.println("请选择红球,33选6!");
for(int i=0;i<userredballnum.length;i++) {
userredballnum[i] = s.nextInt();
}
//判断用户选择 跟系统号码 是否匹配
if(userblueballnum == sysblueballnum) {
blueball = 1;
}
//验证后求
for(int i=0;i<userredballnum.length;i++) {
for(int j=0;j<sysredballnum.length;j++) {
//如果用户红球和系统红球相等 那么就累加
if(userredballnum[i] == sysredballnum[j]) {
redballcount++;
break;
}
}
}
//判断是否中奖
if(blueball==1 && redballcount==6) {
System.out.println("恭喜你中了500W!");
}else if(redballcount == 6) {
System.out.println("恭喜你中了2等奖,100W");
}else if(blueball==1 && redballcount==5) {
System.out.println("恭喜你中了3等奖,3000快");
}else if(redballcount==5 || (blueball==1 && redballcount==4)) {
System.out.println("恭喜你中了4等奖,200快");
}else if(redballcount==4 || (blueball==1 && redballcount==3)) {
System.out.println("恭喜你中了5等奖,10快");
}else if((blueball==1 && redballcount==1) || blueball==1 || (blueball==1 && redballcount==2)) {
System.out.println("恭喜你中了6等奖,5快");
}else {
System.out.println("很遗憾,您没中奖!");
}
//输出本期中奖号码
//先排个序
for(int i=0;i<sysredballnum.length-1;i++) {
for(int j=0;j<sysredballnum.length-1-i;j++) {
if(sysredballnum[j] > sysredballnum[j+1]) {
int tmp = sysredballnum[j+1];
sysredballnum[j+1] = sysredballnum[j];
sysredballnum[j] = tmp;
}
}
}
//先输出红球
System.out.println("本期的中奖号码为:");
System.out.print("红球号码:");
for(int i=0;i<sysredballnum.length;i++) {
System.out.print(sysredballnum[i]+" ");
}
//输出蓝球
System.out.println("本期蓝球中奖号码:"+sysblueballnum);
}
}
执行截图