Я сейчас работаю над этой игрой, очень похожей на Road Fighter, дело в том, что мне нужно сохранить результаты игроков, я делаю это с помощью файла .txt, а затем мне нужно отобразить Лучшие результаты. Я пытаюсь сделать это с помощью приведенного ниже кода, моя проблема в том, что мне нужно сопоставить эти баллы с именем игрока, и я не понимаю, что я делаю неправильно. Кстати, я должен это сделать. рекурсивно
Например, функция GetSortedScores возвращает следующий список:
[10000, 3424, 788, 225, 177, 125, 95, 90, 80, 50, 3]
, поэтому я пытаюсь спросить исходный список, соответствуют ли элементы приведенного выше списка оценки, если оценки совпадают, он должен создать список с именем игрока и соответствующими оценками, результат, который я ищу, будет следующим:
[maicolvn 10000, playerone 3424, mike 788, jake 225, francis05 177, julia 125, playerTwo 95, player3 90, jerome 80, frank 50, luke 3]
когда я пытаюсь запустить код для тестирования он python показывает мне эту ошибку
if sortedList == []:
RecursionError: максимальная глубина рекурсии превышена при сравнении
также так выглядит мой текстовый файл:
maicolvn,10000
mike,788
playerTwo,95
jake,225
francis05,177
luke,3
jerome,80
frank,50
player3,90
julia,125
playerone,3424
заранее спасибо за помощь, я только вхожу в это, поэтому спасибо за отзыв
def TopScores():
list = GetSortedScores()
return TopAux(ReadFile(),list,[])
def TopAux(originalList,sortedList,newList):
if sortedList == []:
return newList
elif sortedList[0] == int(originalList[0].split(",")[1]):
return TopAux(originalList,sortedList[1:],[originalList[0].split(",")[0]+originalList[0].split(",")[1]]+newList) """This is supposed to get the the name and score of the player"""
else:
return TopAux(originalList,sortedList,newList)
def GetSortedScores():
return(SortScores(GetBestScores(ReadFile(),[])))
def GetBestScores(list,newList):
"""Get scores from file"""
if list == []:
return newList
elif isinstance(int(list[0].split(",")[1]),int):
return GetBestScores(list[1:],newList+[int((list[0].split(",")[1]))])
else:
return GetBestScores(list[1:],newList)
def SortScores(list):
"""Returns a list of scores in descending order"""
list.sort(reverse=True)
return list
def ReadFile():
"""This function reads the file of the scores
and return the content in a list"""
path = "TopScores.txt"
file = open(path)
content = file.readlines()
file.close()
return content