📅  最后修改于: 2023-12-03 15:06:54.996000             🧑  作者: Mango
该程序使用位操作来实现“剪刀石头布”游戏,并返回获胜者。
在游戏中,剪刀、石头、布分别对应数字 0、1、2。利用位操作,可以将其转换为二进制表示,从而比较两方的胜负情况。
具体规则如下:
注意:在比较两方胜负时,只需比较二进制表示的后一位即可。
def game(player1, player2):
"""
使用位操作的“剪刀石头布”游戏中的获胜者
:param player1: 玩家1的选择,取值为0、1、2,分别对应剪刀、石头、布
:param player2: 玩家2的选择,取值为0、1、2,分别对应剪刀、石头、布
:return: 若玩家1获胜,返回1;若玩家2获胜,返回2;若平局,返回0
"""
if ((player1 - player2) % 3) == 1:
# 玩家1胜
return 1
elif ((player2 - player1) % 3) == 1:
# 玩家2胜
return 2
else:
# 平局
return 0
# 玩家1选择剪刀,玩家2选择石头,玩家2获胜
print(game(0, 1))
# 玩家1选择石头,玩家2选择布,玩家2获胜
print(game(1, 2))
# 玩家1选择布,玩家2选择剪刀,玩家2获胜
print(game(2, 0))
# 玩家1选择布,玩家2选择布,平局
print(game(2, 2))
2
2
2
0