项目需求
双色球投注区分为红色球号码区和蓝色球号码区,
红色球号码区由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; } }