Highscore

Anfängerfragen zum Programmieren mit PureBasic.
Svking
Beiträge: 48
Registriert: 23.09.2005 15:19
Kontaktdaten:

Highscore

Beitrag von Svking »

Hallo,

Ich habe ein Spiel gebastelt.

Mein Spiel erstellt eine Text datei namens Highscore.txt,
dort listet es die Punkte auf:

1120 Punkte
1060 Punkte
1060 Punkte
950 Punkte
40 Punkte

...

Sortiert Automatich das beste nach oben...

Wie kann ich jetzt machen, dass diese Zeilen aus der Textdatei
in ein StartDrawing() übertragen wird?
Das Ende meines Lebens:
If leben = 0
End
Endif
Benutzeravatar
DoubleID
Beiträge: 23
Registriert: 02.05.2006 16:14

Beitrag von DoubleID »

Alle Zeilen per ReadString in ein Array einlesen und anschliessen das Array in einer Schleife ausgeben.

Code: Alles auswählen

For x=1 to 5
   drawtext(0,x*10,Highscore (x))
next x
Svking
Beiträge: 48
Registriert: 23.09.2005 15:19
Kontaktdaten:

Beitrag von Svking »

sry versteh das nich ganz

Was ist ein Array und wie lese ich da was ein?

kannst du mir das etwas genauer erklären? bin noch nich so gut in PB ^^
Das Ende meines Lebens:
If leben = 0
End
Endif
Benutzeravatar
DoubleID
Beiträge: 23
Registriert: 02.05.2006 16:14

Beitrag von DoubleID »

Achso.
Das wußt ich nicht.

Eine Array ist eine Liste von Speicheradressen die Inhalte wie Strings, Integer et Cetera haben.
Das war jetzt ne grobe Ausführung davon.

Ein Array muss zuerst Dimensioniert werden.

Code: Alles auswählen

Dim DeinArray.s (10)
Hier hab ich jetzt eins mit 10 Feldern dimensioniert. Und zwar als Felder die nur Strings beiinhalten können.

So nun füllen wird die Felder.

Code: Alles auswählen

DeinArray (1)="Hallo"
DeinArray (2)="Welt"
DeinArray (3)="Hallo"
DeinArray (4)="da draußen"
Und verwenden.

Code: Alles auswählen

MessageRequester ("Test",DeinArray (1)+DeinArray (2)+DeinArray (3)+DeinArray (4),0)
So jetzt haste ne Grundlage.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Hier noch ein unvollständiges Beispiel, das nur das Prinzip aufzeigt. Die HighScore.txt sollte besser eine Preferences-Datei sein, bzw. eine Prüfung auf evtl. Leerzeilen fehlt hier!

Code: Alles auswählen

; Skeleton, unvollständig!!!

File = ReadFile(#PB_Any, "HighScore.txt")
If File
  Dim HighScore.s(4)
  For x = 0 To 4 ; besser 2 getrennte for next schleifen!!
    HighScore(x) = ReadString(File)
    DrawText(0,x*10,Highscore (x))
  Next x
  CloseFile(File)
EndIf
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

DoubleID hat geschrieben:Ein Array muss zuerst Dimensioniert werden.

Code: Alles auswählen

Dim DeinArray.s (10)
Hier hab ich jetzt eins mit 10 Feldern dimensioniert.
nope, das sind 11 Felder (0 - 10)

Grüße ... Kiffi
Benutzeravatar
obbba
Beiträge: 53
Registriert: 06.02.2006 17:33

Beitrag von obbba »

Eigentlich brauchst du noch nicht einmal Arrays.

Weißt du wie du strings aus einer Datei rausliest?

Dann tust du halt die erste Zeile in die Variable ErsterPlatz$, die zweite in ZweiterPlatz$ und so weiter.
Und deann schreibst du:

Code: Alles auswählen

startdrawing(screenoutput())
frontcolor(50,50,50)
locate(100,40)
drawtext(Ersterplatz$)
locate(100,60)
drawtext(ZweiterPlatz$)
...
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Array ist aber praktischer als für jeden Platz eine Variable anzulegen...
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

zumal ich mich frage, wie du dann sortieren willst, wenn es unterschiedliche variablen sind und kein array.

sorry, obbba, aber hier auf ein array zu verzichten ist nicht gut.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag von hardfalcon »

Kaeru: Die Highscores werten doch schon sortiert in die Datei geschrieben, oder? :wink:
Antworten