Java双色球彩票

买彩票判断是否中奖,中奖后判断是几等奖

双色球投注区分为红色球号码区和蓝色球号码区,

红色球号码区由1-33共33个号码组成,蓝色球号码区由1-16共16个号码组成。

投注时选择6个红球号码和1个蓝球号码组成一注进行单式投注,每注金额2元。

一等奖:投注号码与当期开奖号码全部相同(顺序不限,下同),即中奖;

二等奖:投注号码与当期开奖号码中的6个红色球号码相同,即中奖;

三等奖:投注号码与当期开奖号码中的任意5个红色球号码和1个蓝色球号码相同,即中奖;

四等奖:投注号码与当期开奖号码中的任意5个红色球号码相同,或与任意4个红色球号码和1个蓝色球号码相同,即中奖;

五等奖:投注号码与当期开奖号码中的任意4个红色球号码相同,或与任意3个红色球号码和1个蓝色球号码相同,即中奖;

六等奖:投注号码与当期开奖号码中的1个蓝色球号码相同,即中奖。

显示中奖结果的同时显示您一共下注人民币??元,累计中奖人民币??元

import java.util.Scanner;

public class Lottery {
    private static Scanner can = new Scanner(System.in);
    private static int money = 0;
    private static int arrs[] = new int[7];
    private static int count = 0;

    public static void main(String[] args){

            menu(false);
    }

    private static void menu(boolean isBuy) {
        //boolean isBuy = false;
        System.out.println("**************************欢迎进入双色球彩票系统**************************");
        System.out.println("\t1.购买彩票");
        System.out.println("\t2.查看开奖");
        System.out.println("\t3.退出");
        System.out.println("**************************************************************************");
        System.out.print("请选择菜单:");
        int choice = can.nextInt();
        //int arrs[] = new int[7];

        switch (choice){
            case 1:
                System.out.println("[双色球彩票系统 > 购买彩票]");
                System.out.println("您需要下多少注?:");
                count = can.nextInt();
                money = count * 2;

                for(int i = 0;i<arrs.length;){
                    if(i<arrs.length-1){
                        System.out.println("请输入6个不重复的红色球号<数字为1-33>,第【"+(i+1)+"】个红色球号为:");
                        int redNum = can.nextInt();
                        if(redNum > 33 || redNum < 1){
                            System.out.println("您所选的红色号码球不在<1-33>范围内,请重新操作。");
                            continue;
                        }

                        arrs[i] = redNum;
                    }else {
                        System.out.println("请输入1个蓝色球号<数字为1-16>,第【"+(i+1)+"】个蓝色球号为:");
                        int blueNum = can.nextInt();
                        if(blueNum > 16 || blueNum < 1){
                            System.out.println("您所选的红色号码球不在<1-33>范围内,请重新操作。");
                            continue;
                        }
                        arrs[i] = blueNum;
                    }
                    i++;
                }
                isBuy = true;
                //输出已经买好的彩票
                System.out.print("您一共买了【"+count+"】注,共需支付【"+money+"】元,所选号为");

                for (int value : arrs){
                    System.out.print(value+"\t");
                }
                System.out.println();
                menu(isBuy);
                break;
            case 2:
                if(isBuy){//判断是否购买了彩票
                   //isBuy = false;
                   //调用方法得到一个随机的中奖号
                   int luckNum[] = getluckNum();
                   System.out.print("已买的彩票号为:");
                   for (int value : arrs){
                       System.out.print(value+"\t");
                   }
                    System.out.println();
                   System.out.print("当期的中奖号为:");
                   //输出当期的中奖号
                   for (int value : luckNum){
                       System.out.print(value+"\t");
                   }
                   System.out.println();
                   //判断获奖等级
                   int result = getResult(arrs,luckNum);
                   //输出结果
                   if(result == 1){
                       System.out.println("【一等奖】,恭喜你!!共下了【"+count+"】注,投资【"+money+"】元,获奖【"+(500*count)+"】万元");
                       count = 0;
                   }else if(result == 2){
                       System.out.println("【二等奖】,恭喜你!!共下了【"+count+"】注,投资【"+money+"】元,获奖【"+(400*count)+"】万元");
                       count = 0;
                   }else if(result == 3){
                       System.out.println("【三等奖】,恭喜你!!共下了【"+count+"】注,投资【"+money+"】元,获奖【"+(300*count)+"】万元");
                       count = 0;
                   }else if(result == 4){
                       System.out.println("【四等奖】,恭喜你!!共下了【"+count+"】注,投资【"+money+"】元,获奖【"+(200*count)+"】万元");
                       count = 0;
                   }else if(result == 5){
                       System.out.println("【五等奖】,恭喜你!!共下了【"+count+"】注,投资【"+money+"】元,获奖【"+(100*count)+"】万元");
                       count = 0;
                   }else if(result == 6){
                       System.out.println("【六等奖】,恭喜你!!共下了【"+count+"】注,投资【"+money+"】元,获奖【"+(5*count)+"】万元");
                       count = 0;
                   }else {
                       System.out.println("【望再接再厉】,sorry!!共下了【"+count+"】注,投资【"+money+"】元,获奖【0】万元");
                       count = 0;
                   }
                   menu(false);
                   break;
               }else{
                   System.out.println("请先购买彩票,再查看开奖情况");
                   menu(false);
                   break;
               }
            case 3:
                System.out.println("已退出");
                return;
        }
       return;
    }
    private static int[] getluckNum(){//随机中奖号并去重
        int luckNum[] = new int[7];
        int startArrays[] = new int [8];//定义长度为34的数组用于判断随机去重//34
        for(int j = 1;j<startArrays.length;j++){
            startArrays[j] = j;
        }
        for(int i = 0;i<luckNum.length;i++){
            if(i<luckNum.length-1){
                int seed = randomNumber(1,startArrays.length-i);//随机1-33取数
                luckNum[i] = startArrays[seed];//将随机数赋值给luckNum
                startArrays[seed] = startArrays[startArrays.length-i-1];//随机数产生的位置替换成为被选中的值
            }else{
                luckNum[i] = randomNumber(1,17);
            }
        }
        return luckNum;
    }

    private static int randomNumber(int MIN,int MAX){
        return (int)(Math.random()*(MAX-MIN)+MIN);
    }


    private static int getResult(int arrs[],int luckNum[]){
        int redCount = 0;
        int blueCount = 0;
        int level = 0;
        for(int i = 0;i<arrs.length;i++){
            if(i<arrs.length-1){
                int temp = arrs[i];
                for(int j = 0;j<luckNum.length-1;j++){
                    if(temp == luckNum[j]){
                        redCount++;
                    }
                }
            }else {
                if(arrs[arrs.length-1] == luckNum[luckNum.length-1]){
                    blueCount++;
                }
            }
        }
        //返回结果
        if(redCount == 6 && blueCount == 1){
            level = 1;
        }else if (redCount == 6 ){
            level = 2;
        }else if (redCount == 5 && blueCount == 1){
            level = 3;
        }else if ((redCount == 4 && blueCount == 1)||(redCount == 5)){
            level = 4;
        }else if ((redCount == 3 && blueCount == 1)||(redCount == 4)){
            level = 5;
        }else if (blueCount == 1 ){
            level = 6;
        }
        return level;
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值