成轩

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Python核心编程(第二版)

6-14随机数

题目:设计一个石头 剪刀 布游戏,有时又叫Rochambeau,你小时候可能玩过,下面是规则。你和你的对手…………

这个就是判断石头剪刀布的游戏,题目要求尽量少的使用if语句,这里有一个没有使用if的解法。

解法的基本思想是通过给每一种选择赋值,通过他们的值得计算得到比较结果

我们用<表示赢,>表示输,则这三个选择之间的关系是 

                     石头<<剪刀<石头

给他们分别赋值 

石头=0  布 = 1 剪刀 = 2

通过两个数相减,就可以知道他们之间的输赢关系

-1 输 0平 1赢 

额外的情况 :-2 赢         

用      -1 输 0平 1赢   来表示所有结果,那么结果集就是

                                         result = 1, -10, 1-1

对应的计算结果                                -2-10, 1, 2

所以用两个相比较的数相减,再加2就是比较的输赢的索引,就可以得到比较的结果。(+2是为了在result中偏移)

比如石头和剪刀,分别是02

0 - 2 = -2  

-2 + 2 =0(在result中的索引)  

result[0] = 1      表示石头赢剪刀

结果就计算出来了

在输出的时候,

result_str = ("you lose", "equal", "you win")

根据输赢的值就可以得到想要输出的字符串

代码:




posted on 2011-10-09 09:54  成轩  阅读(178)  评论(0编辑  收藏  举报