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

请求将Python石头剪刀布无限循环游戏代码及文本转中文并规范表述

求助:完善Python石头剪刀布无限循环游戏代码

我正在编写一个无限循环的石头剪刀布游戏,但代码还未完成,且输入验证逻辑存在问题。希望得到以下帮助:

  • 将游戏中的英文提示翻译成中文
  • 修复输入验证的错误逻辑
  • 补全代码,让游戏能正常判断胜负

现有未完成代码:

import random
options = ['Rock','Paper', 'Scissor']
npc = random.choice(options)
print('Hello')
print('We are about to play Rock,Paper,Scissors.')
while True:
    npc = random.choice(options)
    player = str(input('Please declare your weapon: ')).capitalize()
    if (player == npc):
        print('Your choice: ', player)
        print('npc choice: ', npc)
        print('Oopsie looks like we have a tie!')
        print('Lets Try again!')
        continue
    if (player != 'Rock') or (player != 'Paper') or (player != 'Scissor'):
        print('Poo Poo, that i...

嘿,我来帮你搞定这个石头剪刀布游戏的问题!咱们一步步来完善它:

1. 替换提示文本为中文

把所有英文提示改成中文,同时保留Rock/Paper/Scissor这些代码内的术语,避免因翻译差异导致输入混乱。

2. 修复输入验证的逻辑bug

你原来的输入判断条件(player != 'Rock') or (player != 'Paper') or (player != 'Scissor')存在逻辑错误——无论玩家输入什么,这个条件都会成立(比如输入Rock时,player != Paper为真,整个or条件就会生效)。换成not in判断会更简洁准确,能有效识别无效输入。

3. 补全胜负判断逻辑

原来的代码只处理了平局情况,我们需要补充玩家获胜和NPC获胜的判断分支,让游戏逻辑完整。

最终完整代码

import random

# 游戏选项(保留英文术语,避免大小写或翻译导致的输入错误)
options = ['Rock', 'Paper', 'Scissor']

print('你好!')
print('我们来玩石头剪刀布吧!')

while True:
    # 每局重新生成NPC的选择
    npc_choice = random.choice(options)
    # 获取玩家输入并统一格式(去除空格+首字母大写)
    player_choice = input('请出你的武器(Rock/Paper/Scissor):').strip().capitalize()
    
    # 处理平局情况
    if player_choice == npc_choice:
        print(f'你的选择:{player_choice}')
        print(f'NPC的选择:{npc_choice}')
        print('哎呀,平局了!再来一局吧!')
        continue
    
    # 验证输入是否合法
    if player_choice not in options:
        print('输入无效哦,请输入Rock、Paper或Scissor其中之一!')
        continue
    
    # 判断胜负:整理玩家获胜的所有情况
    player_wins = (
        (player_choice == 'Rock' and npc_choice == 'Scissor') or
        (player_choice == 'Paper' and npc_choice == 'Rock') or
        (player_choice == 'Scissor' and npc_choice == 'Paper')
    )
    
    if player_wins:
        print(f'你的选择:{player_choice}')
        print(f'NPC的选择:{npc_choice}')
        print('恭喜你赢啦!再来一局不?')
    else:
        print(f'你的选择:{player_choice}')
        print(f'NPC的选择:{npc_choice}')
        print('你输啦,再来一局试试手气!')

额外优化说明:

  • 用f-string替代了原来的字符串拼接,输出代码更简洁易读
  • 给输入加了strip()处理,能忽略玩家输入前后的空格,提升交互友好度
  • 胜负判断用括号包裹,逻辑更清晰,也方便后续维护

内容的提问来源于stack exchange,提问作者The Dodo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:49:25