Highscore

knapper

Grünschnabel
Morgen
Die Zeit wird knapp und ich muss umbedingt noch eine Highscore zu meine Spiel erstellen.
Wer hat dies shcon gemacht und kann mir den Code nur noch geben, damit ich ihn nicht mehr entwickeln muss.
Die Speicherung möchte ich über ein Binärfile machen.

Vielen Dank, bin gespannt
 
Ich versteh so richtig das Problem nicht.
Du hast doch bestimmt irgendwo ne Liste oder ähnliches,
wo du die Spieler mit der aktuellen Punktzahl im "Spiel" hälst.

Kannst du mal etwas mehr auskunft geben? ;)

MfG Turri
 
Ich habe noch keine Liste.
Ich muss zuerst irgendwas Programmieren, das eine Liste erstellt wird mit dem Name, Punktestand und dem Rang.
Jede "Rangierung" möchte ich als Stringfile in einem Textfile abspeichern.
Nach jedem Spiel möchte ich das das sortierte Textfile in einem Dialogfenster erscheint.

Mein Problem ist, dass Programm zu erstellen, damit das oben erwähnte alles automatisch geschiert.
 
Also dann machst du ganz einfach eine kleine Liste, die du am besten sofort sortiert in die Datei schreibst, dann sparrst du dir das spätere Sortieren

C++:
struct score
{
  char name[16];
  int score;
}

Wenn du dann zB. nur eine Top-10 willst mach einfach

score scores[10];

Und gehe wie folgt vor

- Wenn die HighScore Datei vorhanden ist, werden die scores ausgelesen, ansonten alle auf 0 gesetzt

- Wenn jemand einen Score aufgestellt hat wird alles in der Liste damit verglichen und er wird gegebenenfalls eingefügt

- Danach wird die Struktur einfach wieder 1 zu 1 abgespeichert, am besten Binär, dann lässt sie sich nicht so einfach editieren
 
Wenn Du das Listentemplate list<...> aus der STL verwndest, ist das sortierte Einfügen einfacher:
Code:
#define MAX_HIGHSCORE 10
list <score> HighscoreList;

bool einfügen(score NewScore)
{
   bool bInserted = false;
  if(NewScore.score > HighscoreList.back().score)
  {
    //neuer score größer als kleinster bisheriger

    list<score>.iterator it = HighscoreList.begin();
    while(it != HighscoreList.end() && !bInserted)
    {
      if(NewScore.score > (*it).score)
      {
         HighscoreList.insert(it, NewScore);
         bInserted = true;
      }
    }
    if(HighscoreList.size() > MAX_HIGHSCORE) HighscoreList.pop_back();
  }
  return bInserted;
}

Um die Liste in eine Datei zu speichern, mußt Du sie nur durchiterieren und die Werte in die Datei schreiben.
 
Die werte für die Liste nehme ich ja aus dem Programm.
Mit diesen Werte möchte ich ein String erstellen und dieser String hanhand der erreichten Punktzahl in einem Textfile speichern.
Der String wird im Textfeld am richitigen ort eingefügt und danach die ganze Tabelle in der Listbox im MFc rausgegeben.

Kannst du mir das tipps geben wie die codes lauten, den ich habe nicht mehr viel Zeit, noch 2Tage.

Danke
 
Zurück