Textdateien Highscore
-
Hallo!
Wie Programmiere ich eine Highscore-Liste und schreibe sie in Textdateien?
Wie wird diese Liste dann sortiert und wieder eingelesen?
Oder gibt es dafür vielleicht fertige Klassen?Kann mir jemand helfen?
Gruß
Jens
-
Nimm ne map<highScore, name>, die sortiert automatisch, oder du schreibst z.B. ne Klasse die so aussieht und fügst sie in ein set (oder ne liste, und die dann sortieren) ein:
#include <string> class HighScoreEntry { std::string name; int highScore; public: HighScoreEntry(const std::string &pname, int hs) : name(pname), highScore(h) {} bool operator<(const HighScoreEntry &rhs) { return (highScore<rhs.highScore) ? true : false; }; bool operator>(const HighScoreEntry &rhs) { return (highScore>rhs.highScore) ? true : false; }; };Die getter, setter und Konstruktoren darfst du noch selber bauen.
Schreiben/Lesen tut man mit fstreams, schau in einem Tutorial oder such über Google.
Informationen zu sets usw. findest du auf www.cppreference.com
-
Hallo
Ich habe es mit einer Liste gemacht. Ich habe eine Klasse geschrieben mit folgenden Funktionen:
CHighScore(void); ~CHighScore(void); void Init(const std::string& p_rstrFileName, const int p_iSizeOfHighScore); //erzeugt eine Highscore mit übergebene Namen und in der übergebenen Größe std::pair<std::string,int> GetPosition(const int p_iPostionInHighScore); //gibt Paar zurück, welches an der übergebene Stelle liegt (von 1 bis ...) bool IsInHighScore(const int p_iPoints); //prüft, ob die Punkte für HighScore reichen bool IsInHighScore(const std::pair<std::string, int>& p_rPairToCheck); //prüft, ob Paar in Highscore liegt void UpdateHighScore(const std::pair<std::string, int>& p_rPairForUpdate); //Fügt übergebenes Paar in HighScore ein int GetPositionInHighScore(const int p_iPoints); //gibt die Position zurück, an welcher die übergebene Punktzahl in HighScore steht int GetPositionInHighScore(const std::pair<std::string, int>& p_rPairToCheck); //gibt die Position zurück, an welcher das übergebene Paar in HighScore steht void ClearHighScore(void); //füllt die Liste mit default-Werten und schreibt diese in DateiDas ist aber nur meine bescheidene Umsetzung. Ich hoffe, dass es dir als Ideengeber dient.
chrische