简单的骰子游戏


偶尔看到的了一个需求,闲来无事就简单写了一下,仅供学习娱乐,欢迎指正交流。

骰子数:3个

奖励倍数:1-9倍

奖励结果 = 赌注 * 奖励倍数

游戏玩法选择:  猜和值,猜和值大小单双,猜点数,猜点数两同,猜点数三同且猜中点数,猜点数三同不猜点数

游戏玩法步骤: 

        1. 运行程序

        2. 控制台输入玩法标识  1--猜和值 2--猜和值大小 3--猜和值单双 4--猜点数 5--猜两同 6--猜点数三同且猜中点数 7--猜点数三同 不猜点数

        3. 控制台输入竞猜(和值3-18/大小00,01/单双10,11/点数 1-3个以逗号隔开的数字/三同点数 1-6).注 猜两同 猜三同不猜点数 可随意输入

        4. 控制台输入赌注(数字)

        5. 回车查看奖励

CODE:

//骰子游戏
    public static void diceGame() {
        //初始化奖励倍数
        int times1=1;//猜中和值的奖励倍数
        int times2=2;//猜中和值大小的奖励倍数
        int times3=3;//猜中和值单双的奖励倍数
        int times4=4;//猜中点数的个数为1个的奖励倍数
        int times5=5;//猜中点数的个数为2个的奖励倍数
        int times6=6;//猜中点数的个数为3个的奖励倍数
        int times7=7;//猜中点数两同的奖励倍数
        int times8=8;//猜中点数三同的奖励倍数
        int times9=9;//猜中点数三同通选的奖励倍数
        //生成三个 1-6 随机数 a,b,c
        int a=(int) (Math.random()*6+1);
        int b=(int) (Math.random()*6+1);
        int c=(int) (Math.random()*6+1);
        System.out.println(a+","+b+","+c);
        //最终奖励倍数 times 初始化为0
        int times = 0;
        //三个随机数的玩法组合结果 result: 和值,和值大小单双,猜中点数的个数,点数两同,点数三同,点数三同通选
        String resultFlag = null;//标识选择的玩法(输入1,2,3,4....)
        String result= null;//用户的竞猜结果
        String beans= null;//用户竞猜的金豆数
        Scanner s = new Scanner(System.in);
        do {
            resultFlag = s.nextLine();
        }while(resultFlag.length()==0);
        do {
            result = s.nextLine();
        }while(result.length()==0);
        do {
            beans = s.nextLine();
        }while(beans.length()==0);
        //猜和值
        if(resultFlag.equals("1")) {//猜和值
            if(a+b+c==Integer.parseInt(result)) {
                System.out.println("猜中和值");
                times = times1;
            }
        }
        //猜和值大小
        if(resultFlag.equals("2")) {
            if(a+b+c<=10&&result.equals("00")) {//字符串标识 "00" 大 "01"小
                    System.out.println("猜中和值小");
                    times = times2;
            }else if((a+b+c)%2==1&&result.equals("01")){
                System.out.println("猜中和值大");
                times = times2;
            }
        }
        //猜和值单双
        if(resultFlag.equals("3")) {
            if((a+b+c)%2==1&&result.equals("10")) {//字符串标识 "10" 单 "11"双
                System.out.println("猜中和值单数");
                times = times3;
            }else if((a+b+c)%2==0&&result.equals("11")){
                System.out.println("猜中和值双数");
                times = times3;
            }
        }
        //猜点数
        if(resultFlag.equals("4")) {
            String[] res = result.split(",");//猜点数玩法  用户输入一行1-3个数以逗号隔开
            if(res.length==1) {//猜一个数
                if(a==Integer.parseInt(res[0])||b==Integer.parseInt(res[0])||c==Integer.parseInt(res[0])) {
                    System.out.println("猜中三个随机数中含有某一个点数");
                    times = times4;
                }
            }
            if(res.length==2) {//猜两个数
                if(a==Integer.parseInt(res[0])&&b==Integer.parseInt(res[1])
                        ||a==Integer.parseInt(res[1])&&b==Integer.parseInt(res[0])) {
                    times = times5;
                }
                if(a==Integer.parseInt(res[0])&&c==Integer.parseInt(res[1])
                        ||a==Integer.parseInt(res[1])&&c==Integer.parseInt(res[0])) {
                    times = times5;
                }
                if(b==Integer.parseInt(res[0])&&a==Integer.parseInt(res[1])
                        ||b==Integer.parseInt(res[1])&&a==Integer.parseInt(res[0])) {
                    times = times5;
                }
                if(b==Integer.parseInt(res[0])&&c==Integer.parseInt(res[1])
                        ||b==Integer.parseInt(res[1])&&c==Integer.parseInt(res[0])) {
                    times = times5;
                }
                if(c==Integer.parseInt(res[0])&&a==Integer.parseInt(res[1])
                        ||c==Integer.parseInt(res[1])&&a==Integer.parseInt(res[0])) {
                    times = times5;
                }
                if(c==Integer.parseInt(res[0])&&b==Integer.parseInt(res[1])
                        ||c==Integer.parseInt(res[1])&&b==Integer.parseInt(res[0])) {
                    times = times5;
                }
            }
            if(res.length==3) {//猜三个数
                if(a==Integer.parseInt(res[0])&&b==Integer.parseInt(res[1])&&c==Integer.parseInt(res[2])) {
                    times = times6;
                }
                if(a==Integer.parseInt(res[0])&&b==Integer.parseInt(res[2])&&c==Integer.parseInt(res[1])) {
                    times = times6;
                }
                if(a==Integer.parseInt(res[1])&&b==Integer.parseInt(res[0])&&c==Integer.parseInt(res[2])) {
                    times = times6;
                }
                if(a==Integer.parseInt(res[1])&&b==Integer.parseInt(res[2])&&c==Integer.parseInt(res[0])) {
                    times = times6;
                }
                if(a==Integer.parseInt(res[2])&&b==Integer.parseInt(res[0])&&c==Integer.parseInt(res[1])) {
                    times = times6;
                }
                if(a==Integer.parseInt(res[2])&&b==Integer.parseInt(res[1])&&c==Integer.parseInt(res[0])) {
                    times = times6;
                }
            }
        }
        if(resultFlag.equals("5")) {//猜两同
            if(a==b||a==c||b==c) {
                System.out.println("猜中两同");
                times = times7;
            }
        }
        if(resultFlag.equals("6")) {//猜三同
            if(a==b&&b==c&&a==Integer.parseInt(result)) {
                System.out.println("猜三同且猜中数字");
                times = times8;
            }
        }
        if(resultFlag.equals("7")) {//猜三同通选
            if(a==b&&b==c) {
                System.out.println("猜中三同");
                times = times9;
            }
        }
        //打印输出  奖励数=金豆数*倍数
        System.out.println(Integer.parseInt(beans)*times);
    }

 运行截图:


作者:YancyMauno,发布于:2018/10/11
原文:https://www.cnblogs.com/Mauno/p/9772766.html