Highscore in Basic programmieren

  • Highscore in Basic programmieren

    Hallo,
    ich möchte für ein in Basic geschriebenes Spiel einen Highscore verwenden,
    der gelesen, geändert und wieder gespeichert werden kann ohne das Basicprogramm zu zerstören.
    Es soll das übliche, also "Name" und "Punkte" beinhalten.
    Gefunden hab ich darüber nichts, und selber reichen meine Kenntnisse leider nicht aus!
    Hat jemand eine Idee? Evtl. mit kurzer Erklärung.
  • Möglichkeit 1: OPEN/PRINT#/INPUT#
    Zum Laden die sequentielle Datei zum Lesen öffnen (open1,8,2,"high-scores"), Daten mit INPUT# lesen.
    Zum Speichern erst die Datei löschen, dann sequentielle Datei zum Schreiben öffnen (open1,8,2,"high-scores,w"), Daten mit PRINT# schreiben.
    Solange die Einschränkungen von INPUT nicht stören (Probleme mit Doppelpunkten, Kommata, Anführungszeichen, überlangen Zeilen), wäre das das Einfachste.

    Möglichkeit 2: LOAD/SAVE
    Du suchst Dir einen Speicherbereich, z.B. den Kassettenpuffer, und bewahrst darin die Daten auf. Also Lesen mit PEEK, Schreiben mit POKE. Geladen und gespeichert wird mit den entsprechenden Kernal-Funktionen.

    Wichtig: Die DOS-Funktion SAVE-WITH-REPLACE zum Ersetzen einer vorhandenen Datei ist fehlerhaft und kann Datenverlust verursachen. Daher muss bei beiden oben genannten Möglichkeiten vor dem neuen Speichern die alte Datei per SCRATCH gelöscht werden!

    Es gäbe auch noch weitere Möglichkeiten per Direktblockzugriff oder REL-Datei, aber das wäre mit Kanonen auf Spatzen geschossen...
    Yes, I'm the guy responsible for the ACME cross assembler
  • Die Highscore-Programmierung ist schon ein kleines Projekt mit mehreren Teilen.

    1. Laden
    2. Eingabe
    3. Sortieren
    4. Ausgabe
    5. Speichern

    Ich benutze gewöhnlich SEQ-Dateien, PRG ist aber auch in Ordnung.

    Schönen Gruß.
  • BIF schrieb:

    Die Highscore-Programmierung ist schon ein kleines Projekt mit mehreren Teilen.


    3. Sortieren
    Das stimmt! ;)
    Ich habs mit seq-Dateien gemacht, geht gut.
    Sortieren hab ich erstmal weggelassen, es gibt also nur den einen maximalen Highscore der angezeigt und verwaltet wird.
    Das Spiel ist vorerst auch nur für 1-Spieler ausgelegt.