Datein Typen

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Yankee

Betreff: Datein Typen

BeitragFr, Apr 21, 2006 20:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
Ich habe mein erstes Spiel jetzt fertig und da, wo es fertg wahr, ist mir aufgefallen, dass ich den highscore vergessen habe Sad Crying or Very sad Embarassed ....
Jetzt wollte ich mal fragen, ob mir jmd erklaeren kann, wie das funktioniert, mit den lesen speichern und so....
Ich braechte(wenn das geht) einmal den namen, dann den schwierichkeitsgrad und dann die zeit(wie schnell man war, also der schnellste is der beste)
Waehr echt dankbar, wenn ihr mir erklaert, wie das funktioniert....

Danke im Vorraus,
Yankee

PS: ich habe bei robsite und so schon nachgeschaut und es net kapiert......
Um so kleiner der code, um so schwieriger den Fehler zu finden:


Siehst du den Fehler?
Klick mal hier drauf... hehehe

Ralff

BeitragFr, Apr 21, 2006 20:37
Antworten mit Zitat
Benutzer-Profile anzeigen
hi,
also zuerst musst du eine datei öffnen, zum beispiel:
Code: [AUSKLAPPEN]

highscore_datei=readfile("highscore.txt")

danach verglichst du jede zeile der datei(zeit,name,schwierigkeit) mit den daten des neuen spielers:
Code: [AUSKLAPPEN]

high_zeit=readline highscore_datei
high_name=readline highscore_datei
...

closefile highscore_datei

und am ende schreibst du die neue zeit und den neuen namen etc. in die datei:
Code: [AUSKLAPPEN]

highscore_datei=writefile("highscore.txt")
writeline highscore_datei,high_zeit
...


hoffe das hilft dir etwas weiter... schau dir die befehle am besten nochmal in der OH an...

mfg
Ralff
Zieht euch das rein...:
http://myspace.com/ndyderchef
Hammertracks, kostenlos...

N-Dy rulez

hectic

Sieger des IS Talentwettbewerb 2006

BeitragFr, Apr 21, 2006 20:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn es eine begrenzte Anzahl an Highscoreeinträgen geben soll (meistens so), dann würde ich ein etsprechendes Dim-Array dafür anlegen. Neue Einträge kannst du zB per Bubblesort in dieses einsortieren. -Bubblesort ist eines der einfachsten Sortieralgorhythmen. Einfach mal danach suchen-

Beim Speicherformat gibt es unterschiedliche Möglichkeiten.

1) Das einfachste währe per String (ql:WriteLine, ql:ReadLine). Allerdings könnte dann auch jeder die Einträge mit einen einfachen Texteditor manipulieren.

2) Etwas schwieriger währe der Einsatz einer byteweisen Speicherung (zB ql:WriteByte, ql:WriteShort, ql:WriteInt). Hier kann man aber ganz einfach zusätzlich noch einfache Verschlüsselung durch eine XOR-Maske durchführen.

Beim ersten kann man dann alles so wieder einlesen, wie man es gespeichert hatte. Bei Werten muß halt nur ein Int(string) vorgesetzt werden um den String wieder in eine Zahl umzuwandeln.

Beim zweiten würde ich Bytecodes verwenden, die angeben welche Stelle als nächstes gelesen wird.

Ansonsten wird es schwierig das komplette Konzept hier zu beschreiben, da es viele Möglichkeiten gibt. Auch kenne ich dein Kenntnisstand nicht, so währe es besser, wenn hier 'Schrittweise' erklärt wird...

Yankee

BeitragFr, Apr 21, 2006 20:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Okee dokee..... Danke nochmal
Ich kapiers zwar net, bin aber schon ein schritt weiter^^.
Koenntet ihr mir vllt mal ein bsp hinschreiben? buedde....

Danke,

Yankee
Um so kleiner der code, um so schwieriger den Fehler zu finden:


Siehst du den Fehler?
Klick mal hier drauf... hehehe

hectic

Sieger des IS Talentwettbewerb 2006

BeitragFr, Apr 21, 2006 22:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Beispielcode ohne zu wissen wie du vorgehen willst? Rallf hat zB ein Beispiel gegeben, und ich habe zwei Beispiele erläutert. Wie willst du vorgehen? Wieviele Einträge? Wieviele Schwierigkeitsgrade? Maximalbegrenzung bei Nicknamen ja/nein?

Alles Informationen die wichtig sind, um dir helfen zu können...

Yankee

BeitragFr, Apr 21, 2006 22:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok.... Shocked
Dann sage ich mal, was ich wollte...^^(fals es moeglich ist^^)
Also....
Ich wollte eine highscoreliste, wo man sieht, wer am besten in der Zeit war.
Man sollte seinen namen eingeben koennen, dann die Zeit sehen(der schnellste) und dann am schluss der Schwierichkeitsgrad. Einfach alle schwierichkeitsgrade(easy,middle,schwer) ganz hinten dann....

Also wenn das moeglich waehre, dann bitte mir sagen, damit mein erstes rchtiges Spiel endlcih fertig wird.....

Danke im Vorraus,

Yankee

PS: Kann mir jmd sagen, wie die .txt datei ganz am anfang ausschauen soll?
Um so kleiner der code, um so schwieriger den Fehler zu finden:


Siehst du den Fehler?
Klick mal hier drauf... hehehe

hectic

Sieger des IS Talentwettbewerb 2006

BeitragFr, Apr 21, 2006 23:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du es ganz einfach haben willst, dann kann man wie folgt vorgehen:

Textdatei mit Inhalt der so ähnlich aussieht: Code: [AUSKLAPPEN]
easy      1262Mustermann
easy      3321Yankee
easy     15422Mustermann
middle    2196Yankee
hard      7821Mustermann
hard     19675hectic

In diesem Beispiel:
6 Zeichen für Schwierigkeitsgrad,
8 Zeichen für Zeiten zB in Sekunden,
Name mit maximaler Länge von 256 Zeichen.

Das Auslesen erfolgt dann zB so: Code: [AUSKLAPPEN]
datei=ReadFile("highscore.txt")
 While Not Eof(datei)
  zeile$=ReadLine$(datei)
  If Left$(zeile,6)="easy  "
   Print "Zeit: "+Int(Mid$(zeile,7,8))
   Print "Name: "+Mid$(zeile,15,256)
   Print "--"
  End If
 Wend
CloseFile datei

Die Zeit wurde hier schon in eine Zahl umgewandelt (man kann damit also schon rechnen). Beim abspeichern wird dann sortiert etc... Willst du eine Zeile mit den Vorgaben (8,6 und bis 256) in eine Datei speichern, dann kannst du es so machen. zB on the fly Code: [AUSKLAPPEN]
WriteLine datei,"easy  "+right$("        "+str$(zeit),8)+name$

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragFr, Apr 21, 2006 23:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
hab das Forum mal durchstöbert und einen alten Beitrag gefunden

Da steht bestimmt etwas nützliches drin.

https://www.blitzforum.de/foru...=highscore
[BB2D | BB3D | BB+]

hectic

Sieger des IS Talentwettbewerb 2006

BeitragFr, Apr 21, 2006 23:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo, genau danach hatte ich auch schon gesucht, aber wohl zu früh wieder aufgegeben... Embarassed

Kryan

BeitragSa, Apr 22, 2006 19:22
Antworten mit Zitat
Benutzer-Profile anzeigen
@ralff:

zu funktionen, die etwas zurückgeben sollen, MUSST du klammern nehmen:

also ...=ReadByte(datei) Wink
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group