📜  使用位操作的“剪刀石头布”游戏中的获胜者(1)

📅  最后修改于: 2023-12-03 15:06:54.996000             🧑  作者: Mango

使用位操作的“剪刀石头布”游戏中的获胜者
程序介绍

该程序使用位操作来实现“剪刀石头布”游戏,并返回获胜者。

在游戏中,剪刀、石头、布分别对应数字 0、1、2。利用位操作,可以将其转换为二进制表示,从而比较两方的胜负情况。

具体规则如下:

  • 剪刀:二进制表示为 00,对应十进制为 0
  • 石头:二进制表示为 01,对应十进制为 1
  • 布:二进制表示为 10,对应十进制为 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