zoukankan      html  css  js  c++  java
  • 关于类似“石头、剪刀、布”游戏,需要循环判断的,判断条件设计技巧

    问题描述:

    编写的游戏程序:猜拳游戏 - 人机大战

    人出的手势包括:石头、剪刀、不

    电脑出的手势包括:石头、剪刀、不

    这样,一共会出现3x3=9中情况,除去人和电脑出相同手势的情况,还剩下7种

    在一般的做法中,可以固定人出的三种情况:如:人出石头时,电脑出剪刀,人赢,此种会产生三个类似的情况,然后if-else判断结束,这种方法会导致if条件语句非常的长,如果以后出现4个、5个、10个...这样的话,也不利于if条件的编写

    【优化的方法】:在此我们可以设:在循环中有N种手势:1 -> 2 -> 3 -> 4 -> ...N -> 1 -> 2...

    那么,条件语句就可以写成:((name1 - name2 +N) % N) == (N-1),这样不仅避免了条件语句的冗长,也会加快系统的执行方法

    示例代码如下:

    在eclipse中ctrl + / 清除前面的注释符号

     1 //    第二种比较输赢的方法:1石头,2剪刀,3布
     2 //    /**
     3 //     * 比较人出的手势和电脑出的手势,进行累加,然后调用showOnceResult()方法输出比较的结果,
     4 //     * 
     5 //     * peopleFinger:人的手势
     6 //     * computerFinger:电脑的手势
     7 //     * same:平局的局数
     8 //     * people.count:人赢的局数
     9 //     * computer.count:电脑赢的局数
    10 //     * showOnceResult(string,string,string)方法:显示本盘游戏的输赢结果
    11 //     */
    12 //    public void compareFinger(int peopleFinger,int computerFinger)
    13 //    {
    14 //        if (exitControl(peopleFinger) || exitControl(computerFinger))
    15 //        {
    16 //                                //peopleFinger或computerFinger为空,即游戏需要重新开盘或者退出
    17 //            
    18 //        }else if (peopleFinger == computerFinger) {
    19 //            same++;
    20 //            showOnceResult("same", peopleFinger, computerFinger);
    21 //        }else if ( (peopleFinger - computerFinger + 3) % 3 == 2 ) {            //这里就是关键所在,简化判断条件、加快执行方法
    22 //            people.count++;
    23 //            showOnceResult(people.name, peopleFinger, computerFinger);
    24 //        }else {
    25 //            computer.count++;
    26 //            showOnceResult(computer.name, peopleFinger, computerFinger);
    27 //        }
    28 //    }

     -------方法,来自同桌的老师!

  • 相关阅读:
    python获取豆瓣电影TOP250的所有电影的相关信息
    使用python批量获取excel的sheet名称
    第1章 初见网络爬虫
    时间序列--日期的范围、频率及移动
    时间序列--时间序列基础
    时间序列--日期和时间数据类型及工具
    绘图与可视化--pandas中的绘图函数
    绘图与可视化--matplotlib API入门
    pandas基础--层次化索引
    pandas基础--缺失数据处理
  • 原文地址:https://www.cnblogs.com/Wfei/p/3245189.html
Copyright © 2011-2022 走看看