项目需求
双色球投注区分为红色球号码区和蓝色球号码区,
红色球号码区由1-33共三十三个号码组成,蓝色球号码区由1-16共十六个号码组成。
投注时选择6个红色球号码和1个蓝色球号码组成一注进行单式投注,每注金额人民币2元。
一等奖:投注号码与当期开奖号码全部相同(顺序不限,下同),即中奖;
二等奖:投注号码与当期开奖号码中的6个红色球号码相同,即中奖;
三等奖:投注号码与当期开奖号码中的任意5个红色球号码和1个蓝色球号码相同,即中奖;
四等奖:投注号码与当期开奖号码中的任意5个红色球号码相同,或与任意4个红色球号码和1个蓝色球号码相同,即中奖;
五等奖:投注号码与当期开奖号码中的任意4个红色球号码相同,或与任意3个红色球号码和1个蓝色球号码相同,即中奖;
六等奖:投注号码与当期开奖号码中的1个蓝色球号码相同,即中奖。
显示中奖结果的同时显示您一共下注人民币??元,累计中奖人民币??元
代码实现:
import java.util.Scanner;
class SsqGame
{
public static void main(String[] args)
{
int totalMoney = 0;
int price = 2;
int count = 0;//购买了彩票的注数
boolean isBuy = false;//标识是否购买了彩票
int[] num = null;//存储双色球号
Scanner input = new Scanner(System.in);
do {
System.out.println("*****欢迎进入双色球彩票系统*****");
System.out.println("\t1.购买彩票");
System.out.println("\t2.查看开奖");
System.out.println("\t3.退出");
System.out.println("***********************");
System.out.println("请选择菜单:");
System.out.println("");
int choice = input.nextInt();
switch (choice){
case 1:
System.out.println("[双色球彩票系统>购买彩票]");
System.out.println("您需要下多少注?:");
count = input.nextInt();
totalMoney = count * price;
num = new int[7];
for (int i=0;i<num.length ;i++ ){
int red;
int blue;
if (i<num.length-1){
System.out.println("请输入6个红色球号(数字为1-33)");
red = input.nextInt();
num[i] = red;
}else{
System.out.println("请输入一个蓝色球号(数字为1-16)");
blue = input.nextInt();
num[i] = blue;
}
}
System.out.println("您一共买了【"+count+"】注,共需支付【"+totalMoney+"】元,所选号为:");
for (int i=0;i<num.length ;i++ ){
System.out.print(num[i]+"\t");
}
System.out.println();
isBuy = true;
break;
case 2:
System.out.println("[双色球彩票系统>查看开奖]");
if (isBuy){
//开奖后必须重新卖票
isBuy = false;
//调用getLuckNum()得到一个随机中奖号
int luckNum[] = getLuckNum();
//输出自己买的彩票号
System.out.print("已买的彩票号为:");
for (int n:num){
System.out.print(n+"\t");
}
System.out.println();
//输出当期的中奖号
System.out.print("当期的中奖号为:");
for (int n:luckNum){
System.out.print(n+"\t");
}
System.out.println();
//判断获奖等级
int result = getCompareResult(num,luckNum);
if (result==1){
System.out.println("【一等奖】,恭喜你!!共下了【"+count+
"】注,投资【"+totalMoney+"】元,获奖【"+(500*count)+"】万元");
}else if (result==1){
System.out.println("【一等奖】,恭喜你!!共下了【"+count+
"】注,投资【"+totalMoney+"】元,获奖【"+(400*count)+"】万元");
}else if (result==1){
System.out.println("【一等奖】,恭喜你!!共下了【"+count+
"】注,投资【"+totalMoney+"】元,获奖【"+(300*count)+"】万元");
}else if (result==1){
System.out.println("【一等奖】,恭喜你!!共下了【"+count+
"】注,投资【"+totalMoney+"】元,获奖【"+(200*count)+"】万元");
}else if (result==1){
System.out.println("【一等奖】,恭喜你!!共下了【"+count+
"】注,投资【"+totalMoney+"】元,获奖【"+(100*count)+"】万元");
}else if (result==1){
System.out.println("【一等奖】,恭喜你!!共下了【"+count+
"】注,投资【"+totalMoney+"】元,获奖【"+(5*count)+"】万元");
}else{
System.out.println("【望再接再厉】,sorry!!共下了【"+count+
"】注,投资【"+totalMoney+"】元,获奖【"+(0*count)+"】万元");
}
}else {
System.out.println("请先购买彩票,再查看开奖情况!");
}
break;
case 3:
System.out.println("谢谢使用!!");
return;
default:
System.out.println("输入错误!!");
}
}
while (true);
}
//随机生成一个中奖号
public static int[] getLuckNum(){
int luckNum[] = new int[7];
for (int i=0;i<luckNum.length ;i++ ){
if (i<luckNum.length-1){//红球
luckNum[i]=(int)(Math.random()*33)+1;
}else{
luckNum[i]=(int)(Math.random()*16)+1;
}
}
return luckNum;
}
public static int getCompareResult(int num[],int luckNum[]){
//查看自己中奖情况
int luckLevel=0;//中奖等级
int redEqualCount=0;//红球相等数量
int blueEqualCount=0;//篮球相等数量
//将自己的彩票号与开奖号进行比较
for (int i=0;i<num.length ;i++ ){
if (i<num.length-1){
//比较红球==自己买的彩票的红球号与中奖的红球号进行比较
int r=num[i];//每遍历一次将自己的一个红球号与中奖的所有红球号进行比较
for (int j=0;j<luckNum.length-1 ;j++ ){
if (r==luckNum[j]){
redEqualCount++;
}
}
}else{
//比较篮球
if (num[num.length-1]==luckNum[luckNum.length-1]){
blueEqualCount++;
}
}
}
//得出结果
if (redEqualCount==6&&blueEqualCount==1){
luckLevel=1;
}else if (redEqualCount==6){
luckLevel=2;
}else if (redEqualCount==5&&blueEqualCount==1){
luckLevel=3;
}else if ((redEqualCount==5)||(redEqualCount==4&&blueEqualCount==1)){
luckLevel=4;
}else if ((redEqualCount==4)||(redEqualCount==3&&blueEqualCount==1)){
luckLevel=5;
}else if (blueEqualCount==1){
luckLevel=6;
}
return luckLevel;
}
}