Highscore anders rum Sortieren?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

bruce85

Betreff: Highscore anders rum Sortieren?

BeitragDi, Jan 10, 2006 15:06
Antworten mit Zitat
Benutzer-Profile anzeigen
hi,
ich habe folgendes problem, und zwar probier ich schon die ganze zeit meine Highscore liste anders rum zu sortieren, wenn ich den Highscore so sortiere:

Code: [AUSKLAPPEN]
Function HighscoreSort()

 For I=1 To 11
  For J=I To 11
   If Zug(I) < Zug(J) Then
    MerkerA = Zug(I) : Zug(I) = Zug(J) : Zug(J) = MerkerA
    MerkerB$ = Name$(I) : Name$(I) = Name$(J) : Name$(J) = MerkerB$
   EndIf
  Next
 Next

End Function



dann ist bei mir die liste so sortiert:

1000
900
800
700
600
500
400
300
200
100

und wenn ich die liste anders rum sortieren möchte:

Code: [AUSKLAPPEN]
Function HighscoreSort()

 For I=1 To 11
  For J=I To 11
   If Zug(I) > Zug(J) Then
    MerkerA = Zug(I) : Zug(I) = Zug(J) : Zug(J) = MerkerA
    MerkerB$ = Name$(I) : Name$(I) = Name$(J) : Name$(J) = MerkerB$
   EndIf
  Next
 Next

End Function


dann ist die liste so sortiert:

0
100
200
300
400
500
600
700
800
900

die null darf überhaupt garnicht da stehen, wenn ich meine Highscore liste im Spiel anzeigen lasse, dann ist bei dem ersten Eintrag eine 0 und steht kein Name, die liste wird warscheinlich falsch Sortiert, wisst ihr vieleicht ob ich die liste so richtig Sortiert habe?, ich danke euch schonmal Laughing

MFG Andreas
  • Zuletzt bearbeitet von bruce85 am Mi, Jan 11, 2006 0:35, insgesamt 2-mal bearbeitet

BlitzChecker

BeitragDi, Jan 10, 2006 16:23
Antworten mit Zitat
Benutzer-Profile anzeigen
ich staune immer wieder wie viele leute codes aus dem buch von rene übernehmen... Laughing
Die Methode heisst glaubig bubblesort.
genaues hab ich jetzt nicht finden können.
der fehler liegt aber irgendwo in der schleife.
probier mal vielleicht name$(I+1) oder so,.
www.xairro.com

Hip Teen

BeitragDi, Jan 10, 2006 16:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Fehler liegt hier:
Code: [AUSKLAPPEN]

 For I=1 To 11
  For J=I To 11

Du darfst bei 10 Leuten auch nur 10 Leute sortieren und dir nicht einfach einen dazuholen Wink Wenn du jeweils nur bis 10 rechnest, ist alles richtig und gut Wink
Spruch der Woche: "Ahh, ein neues Gesicht?!" - "Nein, das hab ich schon länger"

BlitzChecker

BeitragDi, Jan 10, 2006 16:37
Antworten mit Zitat
Benutzer-Profile anzeigen
ich glaub im buch stand, das da 11 stehen muss, wegen irgendeinem technischem grund. aber wenns geht ists ja auch gut.
www.xairro.com
 

bruce85

BeitragDi, Jan 10, 2006 18:14
Antworten mit Zitat
Benutzer-Profile anzeigen
@BLITZchecker Eine Highscore liste ist im Buch von Rene Mayer überhaupt nicht vorhanden, ich habe nähmlich das Buch, aber trotzdem danke Laughing

ich danke dir @Hip Teen,
aber wenn ich die liste mit 10 Einträgen Sortiere, dann wird überhaupt nicht eingetragen, also wenn ich bei mir Das Spiel Starte, und eine höhere Highscore habe, dann wird nichts eingetragen, wenn ich die liste wieder mit 11 Sortiere, dann geht es, aber der erste Eintrag ist dann halt leer, könnte man die liste auch anders Sortieren?, ich danke dir schonmal Laughing

MFG Andreas

BlitzChecker

BeitragDi, Jan 10, 2006 18:23
Antworten mit Zitat
Benutzer-Profile anzeigen
highscore direkt nicht, aber bubblesort. ich meine gelesen zu haben, dass das der gleiche code ist.
aber: irren ist menschlich Laughing
www.xairro.com
 

bruce85

BeitragDi, Jan 10, 2006 18:28
Antworten mit Zitat
Benutzer-Profile anzeigen
achso, ich habe das noch nicht gesehen bubblesort im Buch von Rene, vieleicht habe ich das Übersehen, ich kuck nochmal nach, aber trotzdem danke Laughing

Andreas

Hip Teen

BeitragDi, Jan 10, 2006 18:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Also, ich versteh nur halb was du willst. Wie sieht denn der Code fürs eintragen aus?
Spruch der Woche: "Ahh, ein neues Gesicht?!" - "Nein, das hab ich schon länger"

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragDi, Jan 10, 2006 18:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Da gibt es keinen Fehler im Code!

Es darf nur sortiert werden wenn ein neuer Wert hinzu kommt!
Der neue Wert kommt in 11 rein!
Sortiert man die Highscore ohne dem ein Wert zuzweisen ist dieser = 0
Und da gibt es dann Probleme, wenn die kleinen Werte oben stehen sollen

So etwa müßte es gehen!
Code: [AUSKLAPPEN]
If Spielende then
Zug(11) = Punkte
Name$(11) = NameDesSpieler$
HighscoreSort()
end if
[BB2D | BB3D | BB+]
 

bruce85

BeitragDi, Jan 10, 2006 21:49
Antworten mit Zitat
Benutzer-Profile anzeigen
ich danke dir,
genau so habe ich das bei mir stehen, aber es geht nicht, also ich habe ein Spiel geschrieben mit steinen und die steinen kann man mit der maus verschieben, je weniger Züge man hat desto besser ist man, nur wie kann ich jetzt die Highscore von die kleine Zahlen bis zum Grossen Zahlen sortieren, so z.B.

57
120
135
166
255
285
311
463
498
532

ich danke dir schonmal Crying or Very sad

Andreas
 

bruce85

BeitragDi, Jan 10, 2006 23:17
Antworten mit Zitat
Benutzer-Profile anzeigen
habs hinbekommen Laughing Laughing

aber trotzdem vielen dank 8)

andreas

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragDi, Jan 10, 2006 23:19
Antworten mit Zitat
Benutzer-Profile anzeigen
das muß gehen!
Wenn es nicht geht dann sortierst du vielleicht schon einmal bevor du der 11 den wert zuweist!

Das knnaste prüfen bevor du sortierst, bzw eine Sicherung einbauen das das nicht passiert!

Code: [AUSKLAPPEN]
Function HighscoreSort()
   ;1. sicherung mit Ausgabe ins Debugfenster
   If Zug(11)= 0 Then 
      DebugLog " Fehler beim Aufruf der HighscoreSort() "
      DebugLog " Zug(11)= 0  "
      Return
   End If
   ;---------------------------------------
 For I=1 To 10 ; geändert, da es so schon reicht
  For J=I+1 To 11 ; hier auch!
   If Zug(I) < Zug(J) Then
    MerkerA = Zug(I) : Zug(I) = Zug(J) : Zug(J) = MerkerA
    MerkerB$ = Name$(I) : Name$(I) = Name$(J) : Name$(J) = MerkerB$
   EndIf
  Next
 Next
Zug (11)= 0;2. Sicherung

End Function
[BB2D | BB3D | BB+]
 

bruce85

BeitragMi, Jan 11, 2006 0:38
Antworten mit Zitat
Benutzer-Profile anzeigen
ich danke dir,
aber noch eine frage hätte ich, und zwar wie kann ich 3 Highscore in mein Spiel verwenden?,

also ich habe 3 Schwierigkeitsgrad, Leicht, Mittel und Schwer, ich möchte eine Highscoreliste erstellen für Leicht, Mittel und Schwer, das macht man doch so Dim Zug(10,3) oder, wenn ja, wie greift man dann da zu?, ich danke schonmal Laughing

Andreas
 

bruce85

BeitragMi, Jan 11, 2006 0:41
Antworten mit Zitat
Benutzer-Profile anzeigen
hat sich schon erledigt Laughing

andreas

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group