// ======================================================================= // Add(), lägger till en person i highscore-listan. // ======================================================================= void Add(int points) { // Skapa en temporär variabel av typen HSItem: HSItem temp = new HSItem(name, points); // Lägg till tmp i listan. Observera att följande Add() // tillhör klassen List (är alltså skapad av Microsoft). // Metoden har endast samma namn, som just denna Add(): highscore.Add(temp); Sort(); // Sortera listan efter att vi har lagt till en person! // Är det för många i listan? if (highscore.Count > maxInList) { // Eftersom vi har lagt till endast en person nu, så betyder // det att det är en person för mycket. Index på personen // som är sist i listan, är samma som maxInList. Vi vill ju // att det högsta indexet ska vara maxInList-1. Allstå kan // vi bara ta bort elementet med index maxInList. // Exempel: // maxInList är 5, vi har 6 element i listan. Det sjätte // elementet har index 5. Vi gör highscore.RemoveAt(5): highscore.RemoveAt(maxInList); } }
// ======================================================================= // Sort(), metod som sorterar listan. Metoden // anropas av Add() när en ny person läggs till i // listan. Använder algoritmen bubblesort // ======================================================================= void Sort() { int max = highscore.Count - 1; // Den yttre loopen, går igenom hela listan for (int i = 0; i < max; i++) { // Den inre, går igenom element för element int nrLeft = max - i; // För att se hur många som redan gåtts igenom for (int j = 0; j < nrLeft; j++) { if (highscore[j].Points < highscore[j + 1].Points) // Jämför elementen { // Byt plats! HSItem temp = highscore[j]; highscore[j] = highscore[j + 1]; highscore[j + 1] = temp; } } } }