Вот игра в схватку слов, и я хочу отобразить 5 лучших результатов после ее окончания, но проблема в том, что программа показывает 5 лучших результатов до начала игры. где я могу поставить их для правильной работы. Я новичок ie, и у меня не было опыта работы с python
# Python program for jumbled words game.
# import random module
import random
# function for choosing random word.
def choose():
# list of word
words = open('words.txt').read().splitlines()
# any word from the list.
pick = random.choice(words)
return pick
# Function for shuffling the
# characters of the chosen word.
def jumble(word):
# sample() method shuffling the characters of the word
random_word = random.sample(word, len(word))
# join() method join the elements
# of the iterator(e.g. list) with particular character .
jumbled = ''.join(random_word)
return jumbled
# Function for showing final score.
def thank(p1n, p2n, p1, p2):
print(p1n, 'Your score is :', p1) #one
f = open("high_scores.txt", 'a')
# print(p1n, 'Your score is :', p1, file=f)
print(p1n, ':', p1, file=f)
f.close()
print(p2n, 'Your score is :', p2) #two
f = open("high_scores.txt", 'a')
# print(p1n, 'Your score is :', p1, file=f)
print(p2n, ':', p2, file=f)
f.close()
# check_win() function calling
check_win(p1n, p2n, p1, p2)
. Я хочу отобразить 5 лучших результатов после функции check_win, но эти результаты отображаются, когда я начинаю игру. я просто хочу показать их после окончания игры. Вот код функции 5 лучших баллов
scores = []
with open("high_scores.txt") as f:
for line in f:
name, score = line.split(':')
scores.append((int(score), name.strip()))
scores.sort(reverse=True)
print("Top 5 scores:")
for (score, name), _ in zip(scores, range(5)):
print(f'{name} - {score}')
print('Thanks for playing...')
# Function for declaring winner
def check_win(player1, player2, p1score, p2score):
if p1score > p2score:
print("winner is :", player1)
elif p2score > p1score:
print("winner is :", player2)
else:
print("Draw..Well Played guys..")
# Function for playing the game.
def play():
# enter player1 and player2 name
p1name = input("player 1, Please enter your name :")
p2name = input("Player 2 , Please enter your name: ")
# variable for counting score.
pp1 = 0
pp2 = 0
# variable for counting turn
turn = 0
# keep looping
while True:
# choose() function calling
picked_word = choose()
# jumble() fucntion calling
qn = jumble(picked_word)
print("jumbled word is :", qn)
# checking turn is odd or even
if turn % 2 == 0:
# if turn no. is even
# player1 turn
print(p1name, 'Your Turn.')
ans = input("what is in your mind? ")
# checking ans is equal to picked_word or not
if ans == picked_word:
# incremented by 1
pp1 += 1
print('Your score is :', pp1)
turn += 1
else:
print("Better luck next time ..")
# player 2 turn
print(p2name, 'Your turn.')
ans = input('what is in your mind? ')
if ans == picked_word:
pp2 += 1
print("Your Score is :", pp2)
else:
print("Better luck next time...correct word is :", picked_word)
c = int(input("press 1 to continue and 0 to quit :"))
# checking the c is equal to 0 or not
# if c is equal to 0 then break out
# of the while loop o/w keep looping.
if c == 0:
# thank() function calling
thank(p1name, p2name, pp1, pp2)
break
else:
# if turn no. is odd
# player2 turn
print(p2name, 'Your turn.')
ans = input('what is in your mind? ')
if ans == picked_word:
pp2 += 1
print("Your Score is :", pp2)
turn += 1
else:
print("Better luck next time.. :")
print(p1name, 'Your turn.')
ans = input('what is in your mind? ')
if ans == picked_word:
pp1 += 1
print("Your Score is :", pp1)
else:
print("Better luck next time...correct word is :", picked_word)
c = int(input("press 1 to continue and 0 to quit :"))
if c == 0:
# thank() function calling
thank(p1name, p2name, pp1, pp2)
break
c = int(input("press 1 to continue and 0 to quit :"))
if c == 0:
# thank() function calling
thank(p1name, p2name, pp1, pp2)
break
# Driver code
if __name__ == '__main__':
# play() function calling
play()