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

如何为石头剪刀布游戏的玩家与电脑实现分数记录功能?

石头剪刀布游戏:修正分数记录逻辑

直接把单个score变量拆成两个独立的分数变量就行,分别记录玩家和电脑的得分,再调整胜负判断里的分数更新逻辑,就能实现需求。

核心修改点

  • 替换单个分数变量为player_score和computer_score,初始值都设为0
  • 玩家获胜时给player_score加1,电脑获胜时给computer_score加1,平局不修改分数
  • 每局结束后展示当前双方比分,游戏结束时显示最终结果

修改后的完整代码

import random

def play_rps():
    # 初始化双方分数,替代原来的单个score变量
    player_score = 0
    computer_score = 0
    
    while True:
        # 获取玩家输入
        player_choice = input("请选择:石头(r)/剪刀(s)/布(p),输入q退出游戏:").lower()
        if player_choice == 'q':
            break
        if player_choice not in ['r', 's', 'p']:
            print("无效输入,请重新选!")
            continue
        
        # 电脑随机选
        computer_choice = random.choice(['r', 's', 'p'])
        choices = {'r': '石头', 's': '剪刀', 'p': '布'}
        print(f"你选了{choices[player_choice]},电脑选了{choices[computer_choice]}")
        
        # 判断胜负并更新分数
        win_conditions = [
            ('r', 's'), ('s', 'p'), ('p', 'r')
        ]
        if (player_choice, computer_choice) in win_conditions:
            print("这局你赢了!")
            player_score += 1
        elif player_choice == computer_choice:
            print("平局!")
        else:
            print("这局电脑赢了!")
            computer_score += 1
        
        # 显示当前比分
        print(f"当前比分:你 {player_score} - {computer_score} 电脑\n")
    
    # 游戏结束展示最终比分
    print(f"游戏结束!最终比分:你 {player_score} - {computer_score} 电脑")

if __name__ == "__main__":
    play_rps()

代码说明

  • 用两个变量分别存分,彻底解决单个变量无法区分双方得分的问题
  • 把获胜条件整理成元组列表,逻辑更清晰,后续维护也方便
  • 每局结束后实时显示比分,玩家能直观看到当前进度

内容的提问来源于stack exchange,提问作者Hamza Khatib

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 17:01:15