📜  石头剪刀布算法 (1)

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

石头剪刀布算法

石头剪刀布算法是一种常见的手势博弈算法,在游戏设计、人机交互等方面得到广泛应用。该算法将出拳的三种可能(石头、剪刀、布)用数字 0、1、2 表示,实现起来非常简单,但有很大概率能够达到均衡竞争的效果。

实现思路
  1. 生成随机数字作为计算机的出拳;
  2. 接受玩家的输入;
  3. 根据玩家和计算机的出拳规则,在三种可能的组合中做对比;
  4. 根据对比结果判断胜负或是平局,并输出结果。
核心代码
import random

class RPS:
    def __init__(self):
        self.options = ["石头", "剪刀", "布"]

    def generate_computer(self):
        return random.randint(0, 2)

    def get_result(self, player):
        computer = self.generate_computer()
        if player == computer:
            return "平局"
        elif player == computer - 1 or (player == 2 and computer == 0):
            return "恭喜你,赢了!"
        else:
            return "输了呢!"

if __name__ == "__main__":
    rps = RPS()
    print("欢迎来玩石头剪刀布!")
    while True:
        print("请输入你的选择:")
        for i, option in enumerate(rps.options):
            print(f"{i}:{option}")
        player = int(input())
        if player not in [0, 1, 2]:
            print("输入有误!")
            continue
        result = rps.get_result(player)
        print("结果是:", result)
        if result != "平局":
            break
结果示例

欢迎来玩石头剪刀布!

请输入你的选择: 0:石头 1:剪刀 2:布 1 结果是: 输了呢!