hier erstmal mein Code:
Code: Alles auswählen
class Highscore(list):
HighscoreEntry=[]
def __init__(self, HighscoreEntry):
self.HighscoreEntry+=[HighscoreEntry]
def PlayerAverageScore(self, p):
count_scores=0
total_score=0
for entry in self.HighscoreEntry:
if (p==entry.PlayerName):
count_scores+=1
total_score+=int(entry.Score)
if(count_scores>0):
return '%.2f'%(round(float(total_score)/float(count_scores), 2))
else:
return 0
def TotalAverageScore(self):
count_scores=0
total_score=0
for entry in self.HighscoreEntry:
count_scores+=1
total_score+=int(entry.Score)
if(count_scores>0):
return '%.2f'%(round(float(total_score)/float(count_scores), 2))
else:
return 0
def SortHighscore(self):
self.sort()
class HighscoreEntry(Highscore):
obj_counter=0
def __init__(self, n, s, d):
self.PlayerName=n
self.Score=s
self.Date=d
self.obj_counter+=1
def __del__(self):
self.obj_counter-=1
def __lt__(self, other):
return self.Score < other.Score
def __le__(self, other):
return self.Score <= other.Score
def __eq__(self, other):
return self.Score == other.Score
def __ne__(self, other):
return self.Score != other.Score
def __gt__(self, other):
return self.Score > other.Score
def __ge__(self, other):
return self.Score >= other.Score
def getPlayerName(self):
return self.PlayerName
def getScore(self):
return self.Score
def getDate(self):
return self.Date
file = open('../highscore.txt','r')
i=0;
Entry={}
for line in file:
data=string.split(line, ',')
Entry[i]=HighscoreEntry(data[0], data[1], data[2])
h=Highscore(Entry[i])
i+=1
file.close();
Ich habe eine Highscore-Klasse die aus einer Textdatei gefüllt wird und möchte nun die einzelnen Einträge nach den Punkten also nach "Score" sortieren. Ich habe dafür die MagicMethods überschrieben, aber wenn ich h.sort() aufrufe tut sich nichts an der Reihenfolge ändern. Wisst ihr woran das liegt, könnt ihr mir irgendwie weiterhelfen? Wäre echt super!