zoukankan      html  css  js  c++  java
  • 简单的骰子游戏

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

    骰子数: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
    出处:http://www.cnblogs.com/Mauno/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。

  • 相关阅读:
    myssl.com SSL 检测
    tp中model加载机制
    号码归属地
    七牛云刷新缓存
    盒子模型
    eclipse中将项目发布到tomcat的root目录
    php二维数组搜索
    linux 编译 'aclocal-1.14' is missing on your system
    windows安装 centos
    svn ignore 的用法
  • 原文地址:https://www.cnblogs.com/Mauno/p/9772766.html
Copyright © 2011-2022 走看看