Highscore speichern



  • Hi
    also ich bin neu in C++ (hatte vor 2 Jahren kurz mit C++ gekommen, bin jedoch nie weiter gekommen als bis zu if, bis jetzt hatte ich dann nur mit websprachen programmiert) und arbeite seit ein und einhalb Wochen an meinem ersten C++-Programm, unzwar einem Tetris-Clone. Alles ist schon fertig, das einzige was noch fehlt ist die Highscore.
    Nur weiß ich jetzt nicht wie ich die ganzen Daten am besten speichern kann. In einer einfachen Text-Datei erscheint es mir zu einfach, denn dann kann ja jeder sich die Highscore selbst editieren.
    Was schlägt Ihr vor?

    PS:
    Wenn ihr mir schell hilft dann ist das Spiel schon dieses Wochenende fertig! 😉

    Als Vorgeschmack ein Screenshot vom Spiel:
    http://shorikon.sh.funpic.de/tetrix_summer_edition.jpg



  • Ist es schlimm wenn man die Highscore einfach editieren kann?

    Ich würde sagen, nein.



  • Wie speicherst du deine Highscore denn? Array? std::vector?



  • Ich nun mal einfach nicht dass man das so leicht ändern kann...

    Die aktuelle highscore befindet sich in einer einfachen Int-Variable.



  • Hallo

    Roland++ schrieb:

    Ich nun mal einfach nicht dass man das so leicht ändern kann...

    Die aktuelle highscore befindet sich in einer einfachen Int-Variable.

    Was soll der erste Satz bedeuten? Brauchst du immer nur den allerbesten Wert oder willst du zum Beispiel eine Top-Ten?

    chrische


  • Administrator

    schreib es doch einfach in eine Datei, am besten über eine Klasse, welche die Highscore verwaltet. fopen, fclose, fread, fwrite. Oder wenn die MFC verwendest CFile / CArchive.
    So kann es zumindest nicht mehr jeder vollidiot ändern gehen. Und wenn es dann noch ein wenig mehr komplizierter machen willst, verändere doch einfach jedes Bit.

    char cName[100]; // Der Name des Spielers
    for(int i = 0; i < 100; ++i)
    { cName[i] = ~cName[i]; }
    
    fwrite(cName, 100, 100, pStream);
    
    int nPointsofPlayer; // Die Punktezahl des Spielers
    nPointsofPlayer = ~nPointsofPlayer;
    fwrite(&nPointsofPlayer, sizeof(int), sizeof(int), pStream);
    

    Einfach beim lesen dann nicht vergessen das ganze wieder zurück zu konvertieren. So kann es dann wirklich nur noch jemand verändern, der es unbedingt verändern will. Aber ist es der Aufwand wirklich wert?

    Grüssli



  • Danke für die Antworten, ich werde es gleich ausprobieren

    @chrische
    Ja das wird eine Top Ten - der erste Satz bezieht sich auf den Beitrag von User-- 🙂



  • Ok das klappt jetzt.
    Aber wie kann ich das jetzt wieder zurückkonvertieren um es auszugeben?



  • auch mit dem ~operator.

    btw: WIe speicherst du eine Top 10 ein einer int-Variable?

    mfg.



  • Die aktuelle score ist in einer int-variable gespeichert. Die highscore wird natürlich in ein array eingelesen.

    Danke an alle jetzt klappts!


Anmelden zum Antworten