highscore-probleme...

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Tapsi

Betreff: highscore-probleme...

BeitragFr, Jun 10, 2005 20:59
Antworten mit Zitat
Benutzer-Profile anzeigen
jaja, das thema hatten wir schon mal..., hatte auch schon mal danach gesucht, aber mein problem konnte trotzdem ned gelöst werden...

folgender code hat schon mal funktioniert, aber jetzt irgendwie nicht mehr. und ich versteh ned ganz, wo da der fehler liegt...


BlitzBasic: [AUSKLAPPEN]

Dim HighScore$(11,1)
If FileType(\"highscore.hsc\")=0 Then CreateHighScore
LoadHighscore



Function ShowHighScore(zk=0,selsek$=\"\",selnam$=\"\")
For f=1 To 10
Color 255,255,255
If selsek=HighScore(f,1) And selnam=HighScore(f,0) Then Color 255,0,0
Text 0,zk+f*20,f+\": \"+HighScore(f,0)+\" brauchte \"+ HIghScore(f,1)+ \" Millisekunden\"
Text f*20,350,f
Next
End Function


Function CreateHighScore()
file=WriteFile(\"highscore.hsc\")
For i=1 To 10
WriteLine file,\"noname\"
WriteLine file,\"2000\"
Next
CloseFile file
End Function


Function LoadHighScore()
file=ReadFile(\"highscore.hsc\")
For i=1 To 10
HighScore(i,0)=ReadLine(file)
HighScore(i,1)=ReadLine(file)
Next
CloseFile file
End Function


Function SaveHighScore()
file=WriteFile(\"highscore.hsc\")
For i=1 To 10
WriteLine file,HighScore(i,0)
WriteLine file,HighScore(i,1)
Next
End Function


Function InsertHighScore(name$,score$)
HighScore(0,0)=name$
HighScore(0,1)=score$
For i=1 To 10
If Int(HighScore(0,1))<Int(HighScore(i,1)) Then
For j=10 To i
HighScore(j+1,0)=HighScore(j,0)
HighScore(j+1,1)=HighScore(j,1)
Next
HighScore(i,0)=HighScore(0,0)
HighScore(i,1)=HighScore(0,1)
Exit
End If
Next
End Function

 

hitokiri

BeitragFr, Jun 10, 2005 22:25
Antworten mit Zitat
Benutzer-Profile anzeigen
erstmal ist das ganze ein ziemlicher salat und sich da durchzuwürgen ist eine Qual. Auf den ersten Blick sehe ich ein Problem:
For i=1 To 10
If Int(HighScore(0,1))<Int(HighScore(i,1)) Then
For j=10 To i

nach j=10 to i fehlt ein step -1, BB zählt nicht automatich rückwarts wenn das ziel einer for to kette kleiner ist als der Start, das inserten und die drunter eins nach unten verschieben funktioniert so also nicht.

aber die frage nun: was funktioniert denn nicht und wie rufst du wann diese funktionen auf ???
 

Tapsi

BeitragFr, Jun 10, 2005 22:40
Antworten mit Zitat
Benutzer-Profile anzeigen
also, meine punkte werden zwar immer angezeigt, aber anscheinend nicht abgespeichert. ausserdem wird meist eine unterschiedliche anzahl von plätzen angezeigt.

BlitzBasic: [AUSKLAPPEN]


If entf = 1 Then
ClearWorld
Delay 1000
FlushKeys
Cls
Print \"Deine Highscore ist \"+P
name$=Input$(\"Dein Name:\")
InsertHighscore name$,p
SaveHighScore()
FlushKeys
Repeat
Cls
Text 0,20, \" Nochmal spielen dann drücken Sie enter, beenden mit ESC\"
Text 0,40, \"Highscore-Tabelle:\"
ShowHighscore 60,p,name$
If KeyHit(28) Then
Gosub anfang
End If
Until KeyHit(1)
End
End If





dieser code steht direkt vor update/renderworld. da wird insert, save und show highscore aufgerufen. der rest steht am anfang meines progs
 

hitokiri

BeitragFr, Jun 10, 2005 22:47
Antworten mit Zitat
Benutzer-Profile anzeigen
fehlt auch ein closefile bei savehighscore.

ein wunder, dass es nicht schon längst abgestürzt ist o.O .
 

Tapsi

BeitragSa, Jun 11, 2005 11:17
Antworten mit Zitat
Benutzer-Profile anzeigen
hab das closefile eingefügt, aber funzt noch imma ned. gibt es denn einen einfacheren weg dafür?

Kryan

BeitragSa, Jun 11, 2005 11:48
Antworten mit Zitat
Benutzer-Profile anzeigen
so nun klappt alles bestens Very Happy
hat nichts mit den oben-beschriebenen punkten zu tun Wink
da fehlte nämlic ein flip
und mit dem speichern funktioniert es bestens... Rolling Eyes

edit: Zitat:
erstmal ist das ganze ein ziemlicher salat und sich da durchzuwürgen ist eine Qual.

das habe ich programmiert Very Happy
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group