package com.threeday.ssq;
import java.util.Scanner;
/*
* 1.显示主菜单和选择
* 2.实现主菜单循环显示和选择
* 3.完成购买彩票操作*/
public class TestSSQGame5 {
static Scanner input = new Scanner(System.in);
public static void main(String[] args) {
boolean isBuy = false;
int []selectArr = null;
int count = 0;
final int PIRCE = 2;//价格不可以修改
do{
//显示菜单
System.out.println("===============欢迎进入双色球系统=================");
System.out.println(" 1.购买彩票");
System.out.println(" 2.查看开奖");
System.out.println(" 3.退出系统");
System.out.println("=================================================");
//输入想选择的功能
System.out.println("请选择功能:");
int choice = input.nextInt();
//控制选择菜单
switch (choice){
case 1:
System.out.println("双色球彩票系统------>购买彩票");
//1.提示要买多少注
System.out.println("您要买多少注?");
count = input.nextInt();
selectArr = selectNum();//定义一个新的数组名,调用方法
//4.输出自己购买的彩票
System.out.print("您购买的彩票是:【");
for (int newNum:selectArr){
System.out.print(newNum+"\t");
}
System.out.print("】");
System.out.print("您共购买了【"+count+"】注。"+"共花费了【"+(count*PIRCE)+"】元");
//5.修改购买完彩票的状态
isBuy = true;
break;
case 2:
System.out.println("双色球彩票系统------>查看开奖");
//判断是否购买彩票
if(!isBuy){
System.out.println("您还没有购买彩票,请先购买彩票!!!!");
}else {
//1.获取幸运号码
int [] luckyArr = getluckArr();
//2.展示幸运号码
System.out.println("本期中将号码是:");
for (int luckNum:luckyArr){
System.out.print(luckNum+"\t");
}
System.out.println();
//3.展示我购买的号码
System.out.println("您的本期购买号码是:");
for (int yourArr:selectArr){
System.out.print(yourArr+"\t");
}
System.out.println();
//4.判断获奖等级
int leave = getLeave(selectArr,luckyArr);
switch (leave){
case 1:
System.out.println("【恭喜您获得一等奖!!】,您共买了【"+count+"】注。"+
"共投资了【"+count*PIRCE+"】元。"+"中了【"+count*500+"】万元");
break;
case 2:
System.out.println("【恭喜您获得二等奖!!】,您共买了【"+count+"】注。"+
"共投资了【"+count*PIRCE+"】元"+"中了【"+count*100+"】万元");
break;
case 3:
System.out.println("【恭喜您获得三等奖!!】,您共买了【"+count+"】注。"+
"共投资了【"+count*PIRCE+"】元"+"中了【"+count*10000+"】元");
break;
case 4:
System.out.println("【恭喜您获得四等奖!!】,您共买了【"+count+"】注。"+
"共投资了【"+count*PIRCE+"】元"+"中了【"+count*5000+"】元");
break;
case 5:
System.out.println("【恭喜您获得五等奖!!】,您共买了【"+count+"】注。"+
"共投资了【"+count*PIRCE+"】元"+"中了【"+count*100+"】元");
break;
case 6:
System.out.println("【恭喜您获得六等奖!!】,您共买了【"+count+"】注。"+
"共投资了【"+count*PIRCE+"】元"+"中了【"+count*5+"】元");
break;
default:
System.out.println("【再接再历!!】,您共买了【"+count+"】注。"+
"共投资了"+count*PIRCE+"元"+"没有中奖!!");
}
}
isBuy = false;
break;
case 3:
System.out.println("退出系统");
//break;
return;
default :
System.out.println("输入错误");
}
System.out.println("\n请输入任意键继续......");
//nextLine可以接受任何键盘上的输入
input.nextLine();//控制接收主菜单的键盘输入
input.nextLine();//控制接受任意键的键盘输入
}while (true);
//System.out.println(Arrays.toString(getluckArr()));
}
/*
* 判断获奖等级*/
private static int getLeave(int []myArr,int [] luckyArr) {
int leave = 7;
int redBall = 0;//红球的数量
int blueBall = 0;//蓝球的数量
//外层循环 让自己的号码与幸运号码来进行判断
for (int i=0;i<myArr.length;i++){
//让自己的号码前六个与幸运号码前六个判断
if (i<myArr.length-1){
int num = myArr[i];//每遍历一次让自己的红球号码与幸运红球号码相比较
for (int j=0;j<luckyArr.length;j++){
if (num==luckyArr[i]){
redBall++;
break;
}
}
}else {
if (myArr[myArr.length-1]==luckyArr[luckyArr.length-1]){
blueBall++;
}
}
}
if (redBall==6 && blueBall==1){//一等奖:投注号码与当期开奖号码全部相同(顺序不限,下同),即中奖;
leave=1;
}else if (redBall==6){//二等奖:投注号码与当期开奖号码中的6个红色球号码相同,即中奖;
leave=2;
}else if (redBall==5 && blueBall==1){//三等奖:投注号码与当期开奖号码中的任意5个红色球号码和1个蓝色球号码相同,即中奖;
leave=3;
}else if (redBall==5 ||(redBall==4 && blueBall==1)){//四等奖:投注号码与当期开奖号码中的任意5个红色球号码相同,或与任意4个红色球号码和1个蓝色球号码相同,即中奖;
leave=4;
}else if (redBall==4 || (redBall==3 && blueBall==1)){//五等奖:投注号码与当期开奖号码中的任意4个红色球号码相同,或与任意3个红色球号码和1个蓝色球号码相同,即中奖;
leave=5;
}else if (blueBall==1){//六等奖:投注号码与当期开奖号码中的1个蓝色球号码相同,即中奖。
leave=6;
}
return leave;
}
/*
* 产生幸运号码*/
private static int[] getluckArr() {
int [] luckyNum =new int[7];
for (int i=0;i<luckyNum.length;i++){
if (i<luckyNum.length-1){//生成红球
luckyNum[i] = (int)(Math.random()*33)+1;
}else {//生成蓝球
luckyNum[i] = (int)(Math.random()*16)+1;
}
}
//让生成的随机数排序
for (int i=0;i<luckyNum.length-1;i++){
int minIndex = i;//默认第一个最小
for (int j=i+1;j<luckyNum.length-1;j++){
if (luckyNum[minIndex]>luckyNum[j]){
minIndex = j;
}
}
if (minIndex!=i){
int temp;
temp = luckyNum[i];
luckyNum[i] = luckyNum[minIndex];
luckyNum[minIndex] = temp;
}
}
return luckyNum;
}
//创建选择号码的方法
public static int [] selectNum(){
//2.创建数组储存
int [] selectArr = new int[7];
//3.开始选择自己想要买的数字
for (int i = 0; i <selectArr.length ; i++) {
if (i<6){//红球
System.out.println("请输入第"+(i+1)+"个双色球号码(1-33):");
selectArr[i] = input.nextInt();
}else{//蓝球
System.out.println("请输入蓝色球号码(1-16):");
selectArr[i] = input.nextInt();
}
}
return selectArr;
}
}
双色球5:完成判断中奖等级判断。最终的成品
最新推荐文章于 2024-05-17 18:38:39 发布