Highscoreliste erstellen?
hallo,
kann mir jemand bei dieser Aufgabe helfen, eine Highscore erstellen!!
"
Highscoreliste
Erstelle ein Programm, welches den Namen eines Spielers und seine erreichten Punkte erfasst und in einer binären Datei (Name: score.bin) abspeichert. Es können von einem Spieler durchaus mehrere Einträge gespeichert sein.
Die Struktur für einen Highscore-Eintrag ist wie folgt definiert:
struct TScore
{
char name[20];
int punkte;
};
Neben der Funktion zum Erfassen von Spielern und deren Punkten sollte dein Programm auch noch folgende Funktionen implementieren:
a) Ausgabe aller gespeicherten Highscoreeinträge
Beispiel für die Ausgabe:
Hans 3433
Susi 7210
Otto 455
Susi 4556
Otto 932
Max 3333
b) Erstellen einer Top-Ten Liste
Es wird von jedem Spieler nur der Datensatz mit der höchsten Punktezahl berücksichtigt. D.h. in dieser Liste kann ein Name nicht mehrfach vorkommen. Die Liste ist nach der Punktezahl sortiert.
Beispiel für die Ausgabe:
1. Susi 7210
2. Hans 3433
3. Max 3333
4. Otto 932
c) Highscoreliste nach Punkten
Ausgabe aller gespeicherten Einträge sortiert nach Punkten.
Beispiel für die Ausgabe:
1. Susi 7210
2. Susi 4556
3. Hans 3433
4. Max 3333
5. Otto 932
6. Otto 455
d) Liste aller Namen die in der Highscoreliste vorkommen. Sortiert nach Namen
Beispiel für die Ausgabe:
Hans
Max
Otto
Susi
"
Liste der Anhänge anzeigen (Anzahl: 1)
Im Codetag oben sah es jetzt bisschen unübersichtlich aus, vor allem die score_top_ten(). Deswegen lade ich es jetzt mal als Dateianhang hoch.
Das schwierigste die Top Ten müsste jetzt eigentlich funktionieren.
Nur die Funktion score_all_sort() die die ganze Liste nach Punkten sortiert stimmt nicht ganz. Bei ihr ist es so änhlich wie am Anfang bei score_top_ten(), sie wird noch nicht, jedesmal wenn etwas verändert wird, neu sortiert. Also z.B. der 2. wird nicht 3 sondern fliegt raus.
Das würde sich schon ändern lassen, braucht nur wieder ein paar if{} Anweisungen und for() Schleifen in der score_sort_all().
Gruß Muraad