Функция табло появляется в неправильном месте - PullRequest
0 голосов
/ 30 апреля 2020

Вот игра в схватку слов, и я хочу отобразить 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...