python代码实现丢手绢游戏

代码解释:

  1. ThrowHandkerchiefGame

    • 初始化时设置玩家人数和玩家编号列表。
    • choose_thrower_and_target 方法随机选择丢手绢者和目标玩家。
    • simulate_game 方法模拟丢手绢的过程,包括丢手绢、检测、以及后续的处理。
    • play 方法开始游戏并显示结果。
  2. 游戏流程

    • 选择丢手绢者和被丢者。
    • 模拟丢手绢过程。
    • 根据是否被发现决定游戏结果。

运行说明:

  • 用户输入玩家人数,程序会随机选择丢手绢者和被丢者,模拟丢手绢的过程,并显示结果。

import random
import time

class ThrowHandkerchiefGame:
    def __init__(self, num_players):
        self.num_players = num_players
        self.players = list(range(1, num_players + 1))  # 玩家编号从 1 开始
        self.thrower = None
        self.target = None
    
    def choose_thrower_and_target(self):
        self.thrower = random.choice(self.players)
        remaining_players = [p for p in self.players if p != self.thrower]
        self.target = random.choice(remaining_players)
    
    def simulate_game(self):
        print(f"玩家们围成一个圈,共有 {self.num_players} 名玩家。")
        self.choose_thrower_and_target()
        print(f"丢手绢的玩家是: {self.thrower}")
        print(f"被丢手绢的玩家是: {self.target}")
        
        print("丢手绢者正在尝试把手绢丢到被丢者的背后……")
        time.sleep(2)  # 模拟等待时间
        
        # 假设被丢者在 70% 的时间内会发现手绢
        detected = random.random() < 0.7
        
        if detected:
            print("被丢者发现了手绢!")
            if self.thrower != self.target:
                print(f"丢手绢者被赶上了,丢手绢者 {self.thrower} 失败。")
                print(f"被丢者 {self.target} 成为新的丢手绢者。")
                self.thrower, self.target = self.target, self.thrower
            else:
                print("被丢者发现了手绢,但丢手绢者与被丢者是同一人,不用更换。")
        else:
            print("被丢者没有发现手绢!")
            print(f"丢手绢者 {self.thrower} 成功回到自己的位置。")
            print(f"被丢者 {self.target} 被淘汰。丢手绢者继续游戏。")
            self.players.remove(self.target)
    
    def play(self):
        print("欢迎来到丢手绢游戏!")
        self.simulate_game()
        print("游戏结束。")

if __name__ == "__main__":
    num_players = int(input("请输入玩家人数:"))
    game = ThrowHandkerchiefGame(num_players)
    game.play()
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值