保持玩家玩游戏每一轮的高分。如果分数高高于高分列表中的一项,请更新高分列表。高分榜应该跟踪多达20个高分。这是编码
我是Python的初学者,我不了解某些功能。您可以在thank()函数中检查这些代码
# 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()
我相信您距离答案并不遥远,因为您知道如何读写文件。这是一个例子:
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)