You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tkinter石头剪刀布游戏中模3运算胜负判断逻辑是如何工作的?

石头剪刀布胜负判断公式原理说明

前提约定

首先明确你的预设规则:

  • 石头(Rock)= 0
  • 布(Paper)= 1
  • 剪刀(Scissors)= 2
    游戏胜负规则为:布赢石头、石头赢剪刀、剪刀赢布,相同选择则为平局。

公式原理解析

你用到的代码 whoWon = (computer_choice - human_choice) % 3 是利用模运算的循环特性,把所有胜负场景压缩为一行判断的精简写法,计算结果只有3种可能,对应不同的胜负状态:

结果为0:平局

当 (computer_choice - human_choice) % 3 == 0 时,说明双方选择数值相同,也就是出了一样的选项,判定为平局。

结果为1:电脑获胜

所有电脑赢的场景,计算结果都为1:

  • 电脑出布(1)、人出石头(0):(1-0) %3 = 1,符合布赢石头
  • 电脑出剪刀(2)、人出布(1):(2-1) %3 =1,符合剪刀赢布
  • 电脑出石头(0)、人出剪刀(2):(0-2) = -2,-2模3的结果为1,符合石头赢剪刀

结果为2:人类玩家获胜

所有人类赢的场景,计算结果都为2:

  • 电脑出石头(0)、人出布(1):(0-1) = -1,-1模3的结果为2,符合布赢石头
  • 电脑出布(1)、人出剪刀(2):(1-2) = -1,-1模3的结果为2,符合剪刀赢布
  • 电脑出剪刀(2)、人出石头(0):(2-0) %3 = 2,符合石头赢剪刀

补充说明

这个写法本质是利用了石头剪刀布的胜负循环规律:数值+1(模3)的一方获胜,通过差值取模的方式直接把胜负关系转化为了可枚举的固定结果,不需要写多层if-else分支判断,代码精简且执行效率高。


内容的提问来源于stack exchange,提问作者Kevin Huang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 02:36:03