Создать файл рекордов для простой текстовой игры - PullRequest
0 голосов
/ 06 ноября 2019

Я пытаюсь создать файл рекордов в Python 3.1, в котором хранится (уже объявленное) имя пользователя с оценками. Затем я хочу, чтобы программа напечатала 5 лучших результатов и пользователей, которые их достигли.

В настоящее время я использую два файла - highscores.txt и highuser.txt. Я хочу, чтобы код нашел наибольшее целочисленное значение в файле highscores.txt, взял его массив и сопоставил его с той же позицией в файле highuser.txt.

Вот мой текущий код:

def highscores():
global score

highscores = open("highscores.txt", "a")
highscores.write(str(score))
highscores.write("\n")
print("done")

highscoreuser = open("highuser.txt", "a")
global username
highscoreuser.write(username)
highscoreuser.write("\n")
print("done")

Этот код работает, но я не знаю, как сортировать файлы.

Ответы [ 2 ]

0 голосов
/ 06 ноября 2019

это должно сделать

with open('highscores.txt','r') as infile:
    maxval = 0
    maxline = None
    i = 0
    for line in infile:
        if maxval<int(line):
            maxline = i
            maxval = int(line)
        i+=1
i = 0
with open('highuser.txt','r') as infile:
    for line in infile:
        if i == maxline:
            highuser = line.strip()
            break
        i+=1
0 голосов
/ 06 ноября 2019

Попробуйте это: https://www.geeksforgeeks.org/python-program-to-find-n-largest-elements-from-a-list/ Просто используйте его для 5. Также не забудьте закрыть ваши файлы. highscores.close() И снова откройте их, чтобы прочитать. highscores = highscores.open("highscores.txt", "r")

Создайте массив всех рекордов с помощью .split("\n")

Затем аналогичным образом создайте массив всех пользователей с помощью .split("\n")

Для каждого из 5 лучших результатов. поиск в массиве для этой оценки и получение индексов.

Затем вставьте эти индексы в массив пользователей и получите итоговых пользователей.

Вы также можете создать словарь для каждого пользователя и его оценки. и просто найдите 5 самых высоких результатов среди всех пользователей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...