Python核心编程(第二版) 6-14随机数 题目:设计一个“石头 剪刀 布”游戏,有时又叫“Rochambeau”,你小时候可能玩过,下面是规则。你和你的对手………… 这个就是判断石头剪刀布的游戏,题目要求尽量少的使用if语句,这里有一个没有使用if的解法。 解法的基本思想是通过给每一种选择赋值,通过他们的值得计算得到比较结果 我们用“<”表示赢,“>”表示输,则这三个选择之间的关系是 石头<布<剪刀<石头 给他们分别赋值 石头=0 布 = 1 剪刀 = 2 通过两个数相减,就可以知道他们之间的输赢关系 -1 输 0平 1赢 额外的情况 :-2 赢 2 输 用 -1 输 0平 1赢 来表示所有结果,那么结果集就是 result = (1, -1,0, 1,-1) 对应的计算结果 -2,-1,0, 1, 2 所以用两个相比较的数相减,再加2就是比较的输赢的索引,就可以得到比较的结果。(+2是为了在result中偏移) 比如石头和剪刀,分别是0和2。 0 - 2 = -2 -2 + 2 =0(在result中的索引) result[0] = 1 表示石头赢剪刀 结果就计算出来了 在输出的时候, result_str = ("you lose", "equal", "you win") 根据输赢的值就可以得到想要输出的字符串 代码: |