Zahlen / Wortdreher in If - Funktion für Highscoreliste Verfasst am: 14.11.2009, 14:55
Halli Hallo,
Ich programmier gerade für mein Spiel , welches ich im Informatik - Unterricht erstelle eine Highscoreliste.
Nur stecke ich gerade bei der IF-Funktion fest , wo die jeweilige Position der erzielten Punkte in ein textlabel eingetragen wird
Nur ist ein Dreher in meiner If Funktion drinne.
Hier ist mal die If - Funktion:
Zitat:
If erreichtp.Caption >= punkte1.Caption Then
name2.Caption = name1.Caption
punkte2.Caption = punkte1.Caption
name1.Caption = hgname.Text
punkte1.Caption = erreichtp.Caption
Else
If erreichtp.Caption >= punkte2.Caption Then
name3.Caption = name2.Caption
punkte3.Caption = punkte2.Caption
name2.Caption = hgname.Text
punkte2.Caption = erreichtp.Caption
Else
If punkte2.Caption = "" Then
name2.Caption = hgname.Text
punkte2.Caption = erreichtp.Caption
Else
If erreichtp.Caption >= punkte3.Caption Then
name4.Caption = name3.Caption
punkte4.Caption = punkte3.Caption
name3.Caption = hgname.Text
punkte3.Caption = erreichtp.Caption
Else
If punkte3.Caption = "" Then
punkte3.Caption = erreichtp.Caption
name3.Caption = hgname.Text
Else
If erreichtp.Caption >= punkte4.Caption Then
name5.Caption = name4.Caption
punkte5.Caption = punkte4.Caption
name4.Caption = hgname.Text
punkte4.Caption = erreichtp.Caption
Else
If punkte4.Caption = "" Then
punkte4.Caption = erreichtp.Caption
name4.Caption = hgname.Text
Else
If erreichtp.Caption >= punkte5.Caption Then
name5.Caption = hgname.Text
punkte5.Caption = erreichtp.Caption
Else
If punkte5.Caption = "" Then
punkte5.Caption = erreichtp.Caption
name5.Caption = hgname.Text
End If
End If
End If
End If
End If
End If
End If
End If
name2.Caption = hgname.Text
punkte2.Caption = erreichtp.Caption
End If
Nun kommt folgender Fehler.
Ist auf dem 1ten Platz der Spieler der die Punktezahl 80 erreicht hat , und ich erreiche nun z.b. 60 punkte ,
komme ich mit den 60 punkten auf den ersten platz und die mit 80 punkten kommt auf den 2ten platz.
außerdem glaube ich , dass ich da alles falsch gemacht habe, z.b. erreicht einer nur punkte für den 3platz , wird dieser nicht angezeigt und mit platz 4 und 5 ist dass auch.
Würdet ihr mir helfen? Ich bin leider noch Anfänger in VB6 , aber habe diese Hausaufgabe bekommen eine Highscoreliste zu erstellen.
Oder gibt es eine andere Möglichkeit dieses Abzufragen? _________________
besser wäre die Punkte in ein (zweidimensionales) Array zu schreiben und dann sortieren (bubblesort).
Schöner wäre es (wenn du es wirklich so gelöst haben willst) das label/textbox mit lbl.controls(xyz) (xyz als nummer) anzusprechen und dann per schleife sortien