Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin

Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten
Autor
Nachricht
Exodiable
Newbie
Newbie

Anmeldedatum: 14.11.2009
Beiträge: 1

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?
_________________
 
muerzi
Tutorial Leser
Tutorial Leser

Anmeldedatum: 03.08.2009
Beiträge: 45
Wohnort: Leoben


Verfasst am: 14.11.2009, 17:46

Is ja ziemlich unleserlich. (Mal so nebenbei)

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
 
muerzi
Tutorial Leser
Tutorial Leser

Anmeldedatum: 03.08.2009
Beiträge: 45
Wohnort: Leoben


Verfasst am: 15.11.2009, 07:24

sry, das mit den controls stimmt nicht ganz.

die labels/textboxes müssen gleich benannt werden, müssen sich aber durch die letzte Ziffer unterscheiden.
bsp: txt1, txt2, txt3, txt4 usw....

Dann: Dim txt As Control

und Dann: for i = 1 To 4
txt(i) = i
Next i
 
muerzi
Tutorial Leser
Tutorial Leser

Anmeldedatum: 03.08.2009
Beiträge: 45
Wohnort: Leoben


Verfasst am: 16.11.2009, 12:17

sry:

Dim txt As Object

So kannst du die txt1 auch als txt(1) oder txt(i) (wenn i = 1 ist) ansprechen
_________________


 
christopher.g
Überflieger
Überflieger

Anmeldedatum: 03.05.2008
Beiträge: 536


Verfasst am: 16.11.2009, 15:50


noch einfacher gehts mit dem index
label1(1).caption
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten

Tags: spiel, vb6, punkte

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Problem mit always on top funktion 1039 30.10.2009, 11:26
Keine neuen Beiträge IntStr()funktion 1177 11.10.2007, 08:49
Keine neuen Beiträge TopMost Funktion unter DirectX 921 27.07.2007, 10:48
Keine neuen Beiträge Wie Funktion nutzen ? 1102 29.06.2007, 20:59
Keine neuen Beiträge update funktion einbauen 1341 28.01.2007, 23:11
 



[ Time: 0.2344s ][ Queries: 99 (0.0251s) ][ GZIP on - Debug on ]