Linked List sortieren...
Übersicht BlitzMax, BlitzMax NG Beginners-Corner
FirstdeathmakerBetreff: Linked List sortieren... |
Do, Aug 18, 2005 16:03 Antworten mit Zitat |
|
---|---|---|
Hi, tschuldigung das ich so oft frage, ich versuchs auch immer erst etwas länger selber, aber hier komm ich mal wieder nicht weiter:
Ich möchte eine Highscoreliste nach Punkten sortieren. Auf der suche nach einem Befehl dafür bin ich auf "Sortlist" gestoßen, aber das verstehe ich noch nicht so wirklich. In der bmaxwiki stehen immer nur Beispiele für ein Alphabetisches direktes Sortieren der Werte. Wie kann ich jetzt dafür sorgen, dass er die Einträge nach den Punkten sortiert? Code: [AUSKLAPPEN] Global Highscorelist:TList = New TList Type Highscoreeintrag Field name$ Field punkte Method New() Highscorelist.addlast(Self) End Method Function Draw_Highscore(x,y) Local i For H:Highscoreeintrag = EachIn Highscorelist DrawText (i+1)+". "+H.name+" Points: "+H.punkte,x,y+(i*15) i:+1 Next End Function Method Sort() Return punkte End Method End Type stream:TStream = OpenStream("highscore.txt") While Eof(stream)=0 Local H:Highscoreeintrag = New Highscoreeintrag H.name$ = ReadLine(stream) H.punkte = Int(ReadLine(stream)) DebugLog H.name+" "+H.punkte Wend CloseStream stream SortList(Highscorelist,1) |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
Dreamora |
Do, Aug 18, 2005 16:13 Antworten mit Zitat |
|
---|---|---|
Dafür musst du in deinen Type eine Methode Compare packen, welche zwei Instanzen des gleichen Types vergleicht.
1 sagt other grösser is, 0 is gleich und bei -1 is das objekt, dass other kleiner ist (glaub das es so rum war, wenn nicht einfach -1 und 1 austauschen ) zb Code: [AUSKLAPPEN] type Highscore field score:int method compare (other:object) if not Highscore (other) then .. return 0 local o:Highscore = Highscore (other) if o.score > self.score return 1 elseif o.score < self.score return -1 endif return 0 end method end type EDIT: Code wurde editiert |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
- Zuletzt bearbeitet von Dreamora am Do, Aug 18, 2005 16:49, insgesamt einmal bearbeitet
Firstdeathmaker |
Do, Aug 18, 2005 16:40 Antworten mit Zitat |
|
---|---|---|
Funktioniert leider nicht, Fehlermeldung:
Overriding method differs by type |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
Dreamora |
Do, Aug 18, 2005 16:50 Antworten mit Zitat |
|
---|---|---|
Ok muss vom type object sein und danach halt anpassen.
habs oben geändert. Alternativ hättest du es natürlich auch versuchen können. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Firstdeathmaker |
Do, Aug 18, 2005 17:53 Antworten mit Zitat |
|
---|---|---|
Danke, jetzt funktionierts.
Ich bin leider noch nicht so gut mit den ganzen Neuerungen in BMax vertraut, deshalb bin ich warscheinlich auch nicht darauf gekommen das es ein normales "object" hätte sein müssen. Fürs nächste mal probier ich das aber noch aus. |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
Übersicht BlitzMax, BlitzMax NG Beginners-Corner
Powered by phpBB © 2001 - 2006, phpBB Group