为什么分数显示不正确?

2024-09-29 23:17:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我仍然是python的初学者,所以我决定制作一个石头、纸制游戏。 出于某种原因,当用户或计算机获胜时,直到下一轮才给他们一分

import random
games = int(input("")) #how many games
usersc = 0
compsc = 0
for x in range(games):
    score = (str(usersc) + "-" + str(compsc))
    user = input("") #ROCK, PAPER, SCISSORS
    comp = random.randint(0,2)
    if user == 'ROCK':
        if comp == 0:
            print("tie " + score)
        elif comp == 1:
            compsc += 1
            print("loss " + score)
        else:
            usersc += 1
            print("win " + score)
    elif user == 'PAPER':
        if comp == 0:
            usersc += 1
            print("win " + score)
        elif comp == 1:
            print("tie " + score)
        else:
            compsc += 1
            print("loss " + score)
    elif user == 'SCISSORS':
        if comp == 0:
            compsc += 1
            print("loss " + score)
        elif comp == 1:
            usersc += 1
            print("win " + score)
        else:
            print("tie " + score)
    else:
        print("try again")

if compsc > usersc:
    print("loss")
elif usersc > compsc:
    print("win")
else:
    print("tie")

例如,当计算机获胜时,当它应该说0-1输时,它说0-0输,但下一轮它会说0-1。 任何帮助都将不胜感激


Tags: if计算机randomwinelsegamesscoreprint
2条回答

打印loss+scorewin+score

首先将分数更新为score = (str(usersc) + "-" + str(compsc)),然后打印它

问题是,在递增分数之前,您将分数存储在一个变量中,这样您将始终落后1局。确保分数始终正确的最简单方法是创建一个函数来获得这样的分数

def get_score():
    return str(usersc) + "-" + str(compsc)

这将确保始终使用最新的用户和comp分数值。 使用此代码将成为

import random

games = int(input("")) #how many games
usersc = 0
compsc = 0

def get_score():
    return str(usersc) + "-" + str(compsc)

for x in range(games):
    user = input("") #ROCK, PAPER, SCISSORS
    comp = random.randint(0,2)
    if user == 'ROCK':
        if comp == 0:
            print("tie " + get_score())
        elif comp == 1:
            compsc += 1
            print("loss " + get_score())
        else:
            usersc += 1
            print("win " + get_score())
    elif user == 'PAPER':
        if comp == 0:
            usersc += 1
            print("win " + get_score())
        elif comp == 1:
            print("tie " + get_score())
        else:
            compsc += 1
            print("loss " + get_score())
    elif user == 'SCISSORS':
        if comp == 0:
            compsc += 1
            print("loss " + get_score())
        elif comp == 1:
            usersc += 1
            print("win " + get_score())
        else:
            print("tie " + get_score())
    else:
        print("try again")

if compsc > usersc:
    print("loss")
elif usersc > compsc:
    print("win")
else:
    print("tie")

相关问题 更多 >

    热门问题