Ich habe ein Problem mit einem Spiel, das ich mache. Ich versuche, die Highscore-Liste zu sortieren, aber es funktioniert nicht wie beabsichtigt. Beim Speichern der Partitur gehe ich in das Spiel hinein, ich will durch die Highscoreliste schauen und prüfen, ob es höher ist als ein Score in der Liste und wenn ja, setze den neuen Highscore in die Liste und verschiebe die anderen Scores in die Liste. -Code sieht wie folgt aus:Wie sortiere ich meine XML-Datei korrekt?
public void SaveHighScore(int score)
{
// Create the data that needs to be saved
HighScore data = LoadHighScores(HighScoresFilename);
int scoreIndex = 0;
for (int i = 4; i >= 0; i--)
{
if (score >= data.Score[i])
{
scoreIndex = i;
break;
}
}
if (scoreIndex >= 0)
{
int[] tempScore = new int[5];
for (int i = 4; i >= scoreIndex; i--)
{
tempScore[i] = data.Score[i];
}
tempScore[scoreIndex] = score;
for (int i = scoreIndex; i > 0; i--)
{
tempScore[i - 1] = data.Score[i];
}
for(int i = 0; i < data.Score.Length; i++)
data.Score[i] = tempScore[i];
SaveHighScores(data, HighScoresFilename);
}
}
Und meine Klasse sieht wie folgt aus: https://github.com/PalmerVincent/Game/projects
Das Problem ist, dass die Highscore-Liste nicht richtig sortiert bekommen, wenn ein neuer Highscore in das Array gesetzt wird.