1.项目需求
双色球投注区分为红色球号码区和蓝色球号码区,
红色球号码区由1-33共33个号码组成,蓝色球号码区由1-16共16个号码组成。
投注时选择6个红球号码和1个蓝球号码组成一注进行单式投注,每注金额2元。
一等奖:投注号码与当期开奖号码全部相同(顺序不限,下同),即中奖;
二等奖:投注号码与当期开奖号码中的6个红色球号码相同,即中奖;
三等奖:投注号码与当期开奖号码中的任意5个红色球号码和1个蓝色球号码相同,即中奖;
四等奖:投注号码与当期开奖号码中的任意5个红色球号码相同,或与任意4个红色球号码和1个蓝色球号码相同,即中奖;
五等奖:投注号码与当期开奖号码中的任意4个红色球号码相同,或与任意3个红色球号码和1个蓝色球号码相同,即中奖;
六等奖:投注号码与当期开奖号码中的1个蓝色球号码相同,即中奖。
显示中奖结果的同时显示您一共下注人民币??元,累计中奖人民币??元
2.编写代码步骤
- 实现主菜单显示和选择
- 实现主菜单循环显示和选择
- 完成购买彩票操作
- 完成查看开奖主要步骤
- 完成完整查看开奖操作
一.主窗口(代码)
static void mainWindow(int []red,int []bule,int []luck) {
int count=0;
while (true) {
System.out.println("***欢迎进入双色球彩票系统***");
System.out.println("\t1.购买彩票");
System.out.println("\t2.查看彩票");
System.out.println("\t3.退出");
System.out.println("***************************");
System.out.print("请选择菜单:");
int in = input.nextInt();
switch (in) {//判断输入的值与其对应的菜单相对应。
case 1:
count= buy(bule, red);
break;
case 2:
if(count==0)
System.out.println("请先购买彩票");
else
showprice(red,luck, bule,count);
break;
case 3:
return;
}
}}二.查看彩票
public static void showprice(int[] red,int[]luck, int[] bule,int count) {
for (int i = 0; i < red.length; i++) {//依次遍历随机生成的红球是否与已存在红球数组里面的数是否一致。
int rand = (int) (Math.random() * 33 + 1);
boolean isRepeat=checkBall(luck,rand,i);
if(isRepeat) {//如果一致则i--重新再生成。
i--;
}
else luck[i]=rand;
}
// cheat(red,bule,luck);//作弊,此函数是为了验证一等奖。
luck[6]= (int) (Math.random() * 16 + 1);
int level=0;
for(int i=0;i<red.length;i++) {
if(checkBall(luck,red[i],red.length)){
level++;
}
}
boolean buleBallReat=false;
if(bule[0]==luck[6])
buleBallReat=true;
if(level==6&&buleBallReat) {
System.out.println("恭喜你!中了1等奖您的奖金为:"+(count*1000000));
}else if(level==6) {
System.out.println("恭喜你!中了2等奖您的奖金为:"+(count*500000));
}else if(level==5||buleBallReat) {
System.out.println("恭喜你!中了3等奖您的奖金为:"+(count*3000));
}else if(level==5||(buleBallReat&&level==4)) {
System.out.println("恭喜你!中了4等奖您的奖金为:"+count*200);
}else if(level==4||buleBallReat&&level==3) {
System.out.println("恭喜你!中了5等奖,您的奖金为:"+count*5);
}else if(buleBallReat) {
System.out.println("恭喜你!中了6等奖"+count*1000000);
}else {
System.out.println("很遗憾您未中奖!");
}}三.买彩票
public static int buy(int[] bule, int[] red) {
for (int i = 0; i <red.length; i++)
{
System.out.println("请输入第" + (i+1) + "个红球的数字1~33:");
int num = input.nextInt();
if (num < 1 || num > 33) {
i--;
System.out.println("输入错误,请重新输入!");
continue;
}
if(checkBall(red,num,i)==false)//检查输入的红球与已存在的红球数组里面的元素是否一致。
red[i] = num;
else
{System.out.println("红球不可重复购买");
i--;}//确保输入的红球要为6个,以下为输入蓝球数量。
}
System.out.println("请输入篮球的数字:");
int num = input.nextInt();
while (num > 16 || num < 1) {
System.out.println("蓝球必须在1~16之间:");
num = input.nextInt();
}
bule[0] = num;//将输入的蓝球数字放入数组bule数组中。
display(red,bule);//显示购买蓝球与红球的数字。
System.out.println("输入注数:");
int count=input.nextInt();
System.out.println("购买注数:"+count+" "+"花费金额:"+count*2.0);
return count;
}四.显示购买球的号码
static void display(int [] red,int []bule) {
System.out.print("购买红球:");
for(int i=0;i<red.length;i++)
System.out.print(red[i]+" ");
System.out.println("购买蓝球的号码:"+bule[0]);
}五.检查购买的球是否重复
static boolean checkBall(int []red,int num,int count) {
for(int i=0;i<count;i++)
{
if(num==red[i])
return true;
}
return false;
}六.完整代码如下
package doubleTest;
import java.util.Scanner;
public class doubleTest {
static Scanner input = new Scanner(System.in);
public static void main(String[] args) {
int[] bule = new int[1];
int[] red = new int[6];
int[] luck = new int[7];
mainWindow(red,bule,luck);
}
static boolean checkBall(int []red,int num,int count) {
for(int i=0;i<count;i++)
{
if(num==red[i])
return true;
}
return false;
}
static void display(int [] red,int []bule) {
System.out.print("购买红球:");
for(int i=0;i<red.length;i++)
System.out.print(red[i]+" ");
System.out.println("购买蓝球的号码:"+bule[0]);
}
public static int buy(int[] bule, int[] red) {
for (int i = 0; i <red.length; i++)
{
System.out.println("请输入第" + (i+1) + "个红球的数字1~33:");
int num = input.nextInt();
if (num < 1 || num > 33) {
i--;
System.out.println("输入错误,请重新输入!");
continue;
}
if(checkBall(red,num,i)==false)
red[i] = num;
else
{System.out.println("红球不可重复购买");
i--;}
}
System.out.println("请输入篮球的数字:");
int num = input.nextInt();
while (num > 16 || num < 1) {
System.out.println("蓝球必须在1~16之间:");
num = input.nextInt();
}
bule[0] = num;
display(red,bule);
System.out.println("输入注数:");
int count=input.nextInt();
System.out.println("购买注数:"+count+" "+"花费金额:"+count*2.0);
return count;
}
static void mainWindow(int []red,int []bule,int []luck) {
int count=0;
while (true) {
System.out.println("***欢迎进入双色球彩票系统***");
System.out.println("\t1.购买彩票");
System.out.println("\t2.查看彩票");
System.out.println("\t3.退出");
System.out.println("***************************");
System.out.print("请选择菜单:");
int in = input.nextInt();
switch (in) {
case 1:
count= buy(bule, red);
break;
case 2:
if(count==0)
System.out.println("请先购买彩票");
else
showprice(red,luck, bule,count);
break;
case 3:
return;
}
}}
// static void cheat(int []red,int []bule,int []luck) {//作弊
// for(int i=0;i<6;i++)
// red[i]=luck[i];
// }
public static void showprice(int[] red,int[]luck, int[] bule,int count) {
for (int i = 0; i < red.length; i++) {
int rand = (int) (Math.random() * 33 + 1);
boolean isRepeat=checkBall(luck,rand,i);
if(isRepeat) {
i--;
}
else luck[i]=rand;
}
// cheat(red,bule,luck);//作弊
luck[6]= (int) (Math.random() * 16 + 1);
int level=0;
for(int i=0;i<red.length;i++) {
if(checkBall(luck,red[i],red.length)){
level++;
}
}
boolean buleBallReat=false;
if(bule[0]==luck[6])
buleBallReat=true;
if(level==6&&buleBallReat) {
System.out.println("恭喜你!中了1等奖您的奖金为:"+(count*1000000));
}else if(level==6) {
System.out.println("恭喜你!中了2等奖您的奖金为:"+(count*500000));
}else if(level==5||buleBallReat) {
System.out.println("恭喜你!中了3等奖您的奖金为:"+(count*3000));
}else if(level==5||(buleBallReat&&level==4)) {
System.out.println("恭喜你!中了4等奖您的奖金为:"+count*200);
}else if(level==4||buleBallReat&&level==3) {
System.out.println("恭喜你!中了5等奖,您的奖金为:"+count*5);
}else if(buleBallReat) {
System.out.println("恭喜你!中了6等奖"+count*1000000);
}else {
System.out.println("很遗憾您未中奖!");
}}}
版权声明:本文为qq_46374834原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。