import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
public class Lottery {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("=========================");
System.out.println("======欢迎使用双色球======");
System.out.println("=========================");
boolean loop = true; //定义循环的初始变量
boolean sing = false; //定义开奖初始变量
boolean count = true; //定义查看购买号码的初始化变量
boolean pool =true; //定义查看中奖的结果初始变量
//int myblue =0; //定义一个初始化变量蓝球
int blu = 0; //定义一个用户输入蓝色球号码的初始化变量,不需要赋值给myblue,简写上面的一步
int sysBule = 0; //定义一个系统产生随机数的蓝色球号码的初始化变量
int bei = 0; //定义一个买彩票倍数的初始化变量
int[] sys = new int[6]; //定一个系统产生随机数的数组长度为6
int[] my = new int[6]; //定义一个用户输入的数组长度为6
while (loop){
System.out.println("1.购买号码");
System.out.println("2.查看购买号码");
System.out.println("3.开奖");
System.out.println("4.查看开奖结果");
System.out.println("5.退出系统");
int num = scanner.nextInt(); //用户选择输入的编号
switch (num){
case 1:
//每一次购买之前清空数组内容
Arrays.fill(my,0); //使用Arrays填充方法进行赋值
blu=0;
//输入红球
for (int i = 0; i <6 ; i++) { //定义红球的数量为6个
boolean flag =true; //定义红色球号码的初始变量
System.out.println("请输入第"+(i+1)+"个红球的球(范围1~33)");
int red = scanner.nextInt(); //用户输入的红色球
if (red>=1 && red<=33){ //判断用户输入的红色球的范围
for (int j = 0; j < 6; j++) {
if (my[j] == red) { //判断输入号码和数组中的号码是否相同
System.out.println("输入的号码重复");
flag = false; //判断是否重复数字,false表示有重复的数字
i--; //用户输入的数字重复,就重新返回上一个号码重新输入
break; //停止跳出内部的for循环
}
}
if (flag==true){ //true表示没有重复的号码
my[i] =red; //将用户输入红色的球赋值给给用户输入的数组
}
}else{
System.out.println("输入号码超出范围");
i--; //用户如果输入的球不在这个范围,就重新返回上一个号重新输入
}
}
//输入蓝球
while (true){ //定义一个蓝色球的死循环
System.out.println("请输入蓝球的号码(范围为0~16)");
blu = scanner.nextInt(); //用户输入的蓝色球
if (blu>=0 && blu<=16){ //判断蓝球号码输入的范围在1~16
//myblue = blue; //用户输入蓝球的数赋值给myblue
break; //跳出while这个循环
}else {
System.out.println("你输入的号码错误");
}
}
System.out.println("请输入购买的倍数:");
bei = scanner.nextInt(); //用户输入购买的倍数赋值给变量bei
System.out.println("购买成功,请支付"+(bei*2)+"元"); //用户输出倍数乘以2
System.out.println("红色球为:"+Arrays.toString(my)+"蓝色球为"+blu); //快速遍历数组
sing = true; //开奖的次数为空,不能进行开奖
count = true; //购买的号码,是可以查询的
pool = true; //购买了号码,是可以查询的
break; //跳出while循环
case 2:
if (count==false){ //判断是否购买号码了,没有是不可以直接查询
Arrays.sort(my); //把购买的号码进行排序
System.out.println("购买的红球为:"+Arrays.toString(my)+"购买的蓝球为:"+blu); //快速遍历红球数组进行排序
}else {
System.out.println("请先购买彩票");
}
break; //跳出最层while循环
case 3:
if (sing==true){
//开奖功能实现
Random random = new Random(); //创建一个随机数对象
for (int i = 0; i <6 ; i++) {
boolean flag = true; //定义一个随机数变量的初始值
int red = random.nextInt(33)+1; //产生随机数范围为1~33
for (int j:sys) { //遍历产生随机数数组
if (j==red){ //判断遍历出来的红色球号码是否和输入红色球号码数字相等
flag = false; //判断是否重复,false表示重复的数字号码
i--; //如果重复,就继续输入上一次的号码进行输出
break; //跳出产生随机数的循环数组
}
}
if (flag==true){ //判断随机数变量为true,没有重复的号码
sys[i] = red; //将用户输入红色的球赋值给随机产生的数组
}
}
sysBule = random.nextInt(16)+1; //输出产生蓝色球随机数的范围为1~16
Arrays.sort(sys); //快速排序
System.out.println("系统红色球开奖为:"+Arrays.toString(sys)+"蓝色球开奖为:"+sysBule); //快速遍历数组
}else {
System.out.println("请先购买彩票");
}
sing = false; //开奖次数不为空,可以开奖
break; //跳出最外面的while循环
case 4:
if (pool=false){
//查看购买的红球和系统开出的红球做对比
int redCount=0; //定义一个红色球号码的计数变量
for (int s1:my){ //用户输入遍历后红色球的号码
for (int s2:sys){ //系统遍历后随机产生的红色号码
if (s1==s2){ //用户输入和系统随机产生的号码做比较
redCount++; //红球的次数+1
}
}
}
//查看购买的蓝球和系统开出的蓝色球做对比
int blueCount=0; //定义一个蓝色球号码的计数变量
if(blu==sysBule){ //判断用户输入的蓝球和系统随机产生蓝色球号码做比较
blueCount=1; //蓝色球次数为1
}
System.out.println("中奖的红色球为:"+redCount+"中奖的蓝色球为:"+blueCount);
if (redCount==6 && blueCount==1){
System.out.println("奖金为"+(500*bei)+"万");
}else if(redCount==6){
System.out.println("奖金为"+(5*bei)+"万");
}else if (redCount==4 && blueCount==1){
System.out.println("奖金为"+(3000*2)+"元");
}else if (redCount==5 || (redCount==4 && blueCount==1)){
System.out.println("奖金为"+(200*bei)+"元");
}else if (redCount==4 || (redCount==3 && blueCount==1)){
System.out.println("奖金为"+(10*bei)+"元");
}else if (blueCount==1){
System.out.println("奖金为"+(5*bei)+"元");
}else {
System.out.println("很遗憾没有中奖!");
}
}else {
System.out.println("请先购买彩票");
}
break;
case 5:
loop=false; //
System.out.println("退出成功~");
break;
default:
System.out.println("请输入正确的编号");
}
}
}
}
综合案例:双色球
于 2022-03-13 14:35:20 首次发布