博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于类似“石头、剪刀、布”游戏,需要循环判断的,判断条件设计技巧
阅读量:4352 次
发布时间:2019-06-07

本文共 1578 字,大约阅读时间需要 5 分钟。

问题描述:

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

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

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

这样,一共会出现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 //    }

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

转载于:https://www.cnblogs.com/Wfei/p/3245189.html

你可能感兴趣的文章
计算机基础之硬件
查看>>
python操作mysql ------- SqlAchemy正传
查看>>
如何使用 JSP JSTL 显示/制作树(tree) 菜单
查看>>
12.5号
查看>>
lintcode-medium-Binary Tree Zigzag Level Order Traversal
查看>>
logrotate日志切割
查看>>
POJ-3253 Fence Repair 贪心
查看>>
Arraylist集合遍历输出
查看>>
java中的选择结构与循环结构
查看>>
无法将类型“ASP.login_aspx”转换为“System.Web.UI.WebControls.Login”
查看>>
[cocos2dx] lua注册回调到c++
查看>>
(treap)[bzoj3224][洛谷3369][cogs1829]Tyvj 1728 普通平衡树
查看>>
Linux下常用的shell命令记录
查看>>
HTTP 常用 Header 讲解
查看>>
linux分割字符串操作
查看>>
PHP学习2
查看>>
多实例Mysql配置
查看>>
linux下安装Mongodb
查看>>
Page.RegisterStartupScript和Response.Write的区别。
查看>>
hdu4348区间更新的主席树+标记永久化
查看>>