-1

Keep track of high score for each round the player plays the game. If the high score is higher than one of the entries in the high score list, update the high score list. The high score list should track up to 20 high scores. Here is the coding

I am a beginner in Python and i don't know the some functions. you can check these code in thank() function

# 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()

    # choice() method randomly choose
    # 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)
    f.close()

    print(p2n, 'Your score is :', p2) #two
    f = open("high_scores.txt", 'r+')
    print(p2n, 'Your score is :', p2, file=f)

    # check_win() function calling
    check_win(p1n, p2n, p1, p2)
    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()
Mr Bee
  • 19
  • 4
  • What is the question? – Lydia van Dyke Apr 28 '20 at 11:29
  • Keep track of high score for each round the player plays the game. If the high score is higher than one of the entries in the high score list, update the high score list. The high score list should track up to 20 high scores. – Mr Bee Apr 28 '20 at 11:43
  • pls someone explain me i am so desperate to get ittt :")))) – Mr Bee Apr 29 '20 at 03:24
  • Dear Mr Bee, we don't clearly get what you're trying to achieve. Please rephrase your question clearly. – iMitwe May 09 '20 at 08:05

1 Answers1

0

I believe you are not far away from the answer since you have known how to read and write files. Here is an example:

def update_high_score_file(f_name, score_keep_maxn, new_score):
    """

    :param f_name:              read and write-out file name
    :param score_keep_maxn:     how many max scores you want to record
    :param new_score:           the new score
    :return:
    """
    # read current scores
    with open(f_name, 'r') as f:
        lines = f.readlines()
    scores = [int(line.strip()) for line in lines if line.strip() != '']

    # update
    scores = scores + [new_score]
    scores = sorted(scores, reverse=True)
    scores = scores[:score_keep_maxn]

    # write out new scores
    scores = [str(s)+'\n' for s in scores]
    with open(f_name, 'w') as f:
        f.writelines(scores)
lincr
  • 1,633
  • 1
  • 15
  • 36