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

如何为Python开发的石头剪刀布游戏添加循环运行功能?

实现石头剪刀布游戏的循环运行功能

要让游戏每局结束后自动进入循环,直到用户主动终止,核心是用while循环包裹游戏核心逻辑,并在每局结束后询问用户是否继续。具体修改步骤如下:

1. 添加循环控制变量与外层循环

设置一个布尔变量(比如play_again)作为循环开关,用while play_again:把整个游戏的核心逻辑包裹起来,这样只要变量为True,游戏就会重复运行。

2. 每局结束后询问用户是否继续

在每局游戏的胜负判断完成后,添加输入交互,让用户选择是否继续游戏。同时可以处理无效输入,避免程序因为用户输入错误而异常。

完整修改示例

假设你的原有游戏逻辑包含用户选择、电脑随机选择、胜负判断,修改后的代码结构如下:

import random

# 初始化循环开关
play_again = True

while play_again:
    # --- 原有游戏逻辑开始 ---
    user_choice = input("请选择:石头(r)/剪刀(s)/布(p): ").lower()
    # 处理用户无效输入
    while user_choice not in ['r', 's', 'p']:
        user_choice = input("输入无效,请重新选择:石头(r)/剪刀(s)/布(p): ").lower()
    
    computer_choice = random.choice(['r', 's', 'p'])
    
    # 胜负判断
    if user_choice == computer_choice:
        print(f"平局!你和电脑都选了{user_choice}")
    elif (user_choice == 'r' and computer_choice == 's') or \
         (user_choice == 's' and computer_choice == 'p') or \
         (user_choice == 'p' and computer_choice == 'r'):
        print(f"你赢了!电脑选的是{computer_choice}")
    else:
        print(f"你输了!电脑选的是{computer_choice}")
    # --- 原有游戏逻辑结束 ---

    # 询问是否继续游戏
    while True:
        continue_choice = input("要不要再来一局?(输入y继续,n退出): ").lower()
        if continue_choice in ['y', 'n']:
            break
        print("请输入有效的选项:y 或 n")
    
    # 更新循环开关状态
    play_again = (continue_choice == 'y')
    if not play_again:
        print("游戏结束,下次再来!")

原理说明

  • 外层while play_again循环会持续执行游戏逻辑,直到用户选择n,此时play_again被设为False,循环终止。
  • 内层的小循环用于处理用户的无效输入,确保只有y或n被接受,提升交互体验。

内容的提问来源于stack exchange,提问作者Skur WithMe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 13:45:32