Проблема в том, что вы сохраняете счет в переменной, а затем увеличиваете его, поэтому вы всегда будете на 1 игру позади. Самый простой способ убедиться, что оценка всегда правильная, - это создать функцию для получения оценки, подобной этой ...
def get_score():
return str(usersc) + "-" + str(compsc)
Это гарантирует, что всегда будут использоваться самые последние значения оценки пользователя и оценки. С помощью этого код становится ...
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")