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

如何在Python三局两胜RPS游戏中实现玩家积分累加

石头剪刀布游戏积分累加问题解决方法

核心问题原因

你写的pc_points = +1和player_points = +1是直接将变量赋值为1,而非在现有积分基础上累加。+1在这里只是表示正数1,不是加法操作,所以每次获胜后积分都会被重置为1,无法累加。

正确的累加方式

有两种等价写法可以实现积分累加:

  • 使用增量赋值运算符(推荐):
    pc_points += 1  # 等同于 pc_points = pc_points + 1
    player_points += 1  # 等同于 player_points = player_points + 1
    
  • 显式基于当前值计算:
    pc_points = pc_points + 1
    player_points = player_points + 1
    

额外修复:游戏结束条件错误

原代码中两个结束判断都是player_points == 3,第二个应该改为pc_points == 3,否则电脑赢满3局后无法触发“你输了”的退出逻辑。

修改后的完整代码

import random
import sys

pc_points = 0
player_points = 0

acceptance_of_death = input('welcome to the possibly winable RPS game. Do you dare to attempt this quite possible feat?\nAnswer yes or no\n')

while True:
    if acceptance_of_death == 'yes':
        you_will_lose = input('Ok then. Rock, paper, or scissors?\n')
    else:
        print('Ok, your loss.\n')
        sys.exit()

    rps_list = ('rock', 'paper', 'scissors')
    result = random.choice(rps_list)

    if result == you_will_lose.lower():
        print("that's a tie, try again.")
        print(f"Player points: {player_points}, PC points: {pc_points}")
    elif result == 'rock' and you_will_lose.lower() == 'scissors':
        print('PC chooses rock. You lose.')
        pc_points += 1
        print(f"Player points: {player_points}, PC points: {pc_points}")
    elif result == 'scissors' and you_will_lose.lower() == 'paper':
        print('PC chooses scissors. You lose.')
        pc_points += 1
        print(f"Player points: {player_points}, PC points: {pc_points}")
    elif result == 'paper' and you_will_lose.lower() == 'rock':
        print('PC chooses paper. You lose.')
        pc_points += 1
        print(f"Player points: {player_points}, PC points: {pc_points}")
    else:
        print("you win! don't get too excited I made this in a very miniscule amount of time.")
        player_points += 1
        print(f"Player points: {player_points}, PC points: {pc_points}")

    if player_points == 3:
        print('You win. Feel accomplished!')
        sys.exit()
    if pc_points == 3:
        print('You lose. Pathetic!')
        print(f"Player points: {player_points}, PC points: {pc_points}")
        sys.exit()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 00:40:26