#python #file
Вопрос:
В настоящее время я работаю над проектом, в котором мне нужно закодировать простую игру в угадывание чисел с системой высоких баллов. Где, если ваш балл выше, чем один из 10 лучших баллов, он заменит указанный балл и сообщит вам, что вы получили новый высокий балл. На данный момент я немного зациклился на извлечении значения из файла и сравнении его со счетом, когда вы завершите игру. Я новичок в программировании, код будет ниже.
Игра в угадывание чисел с высокими баллами:
import pygame
from random import randint
a = True
n = randint(1,10)
guesses = 0
#If scores ever need to be reset just run function
def overwritefile():
f = open("Numbergame.txt", "w")
f.close()
#overwritefile()
#Guessing Game Code
while a == True:
guess = int(input("What is your guess? nEnter a number!"))
if guess > n:
print("Guess is too high! nTry Again!")
guesses = 1
elif guess < n:
print("Guess is too low! nTry Again!")
guesses = 1
else:
guesses = 1
a = False
print("You guessed the number! nIt was " str(n) "nIt took you: " str(guesses) " guesses")
#Adding Score to the file
f = open("Numbergame.txt", "a")
f.write(str(guesses) 'n')
f.close()
#Compare values and figure out if it is a new highscore
#Maybe I will use the TRY thing got taught recently might help iron out some errors
##
##last_high_score = 0
##
##try:
## f = open("Numbergame.txt", "r")
## user = str(guesses)
##
## for line in f.readline():
## line_parts = line.split(" has a score of ")
##
## if len(line_parts) > 1:
## line_parts = line_parts[-1].split("n")
## score = line_parts[0]
## if score.isdigit() and int(score) > last_high_score:
## last_hight_score = int(score)
##except Exception and e:
## pass
##
##if int(guesses) > last_high_score:
## f = open("Numbergame.txt", "a")
## f.write(str(guesses) "n")
##
##print("n")
##f = open("Numbergame.txt", "r")
##whole_thing = f.read()
##f.close()
##for i in len("Numbergame.txt"):
## file.readline(i)
## if guesses < file.readline(i):
## print("Not a highscore")
## elif guesses > readline(i):
## print("Is a highscore")
## else:
## print("Not a highscore")
Два бита, которые закомментированы, — это мои попытки, первый-это тот, который я скопировал из другого вопроса, а второй-моя попытка
Комментарии:
1. Сосредоточьтесь на одном вопросе за раз. Сначала считайте значения из файлов в список. Затем сравните новый высокий балл со значениями из списка и при необходимости измените значения в списке. Затем запишите значения из списка обратно в файл. (Почему? Трудно осуществлять произвольный доступ к файлам)
2. Как бы я прочитал значение из файла в список @Codebling?