/// <summary> /// Récupére les meilleurs joueurs d'une liste et les renvois /// </summary> /// <param name="ljs">La liste à analyser</param> /// <returns>Les meilleurs joueurs</returns> public List <JoueurSerialisable> bestJoueur(List <JoueurSerialisable> ljs) { //On calcul le minimum entre 10 et la taille de la liste int tailleAffiche = 10; if (ljs.Count < 10) { tailleAffiche = ljs.Count; } //On tri et on ajoute les 10 premiers à une nouvelle liste List <JoueurSerialisable> newljs = new List <JoueurSerialisable>(); for (int i = 0; i < tailleAffiche; i++) { int best = -1; JoueurSerialisable js = null; for (int j = 0; j < ljs.Count; j++) { if (ljs[j].score > best) { js = ljs[j]; best = ljs[j].score; } } newljs.Add(js); //On vient donc de récuperer le meilleur joueur de la liste ljs.Remove(js); } return(newljs); }
/// <summary> /// Regarde parmis la liste des joueurs si il existe un joueur pouvant faire partie des meilleurs scores et l'écrit si oui. /// </summary> public void ecritScore() { //On ajoute tous les joueurs à une liste List <JoueurSerialisable> ljs = new List <JoueurSerialisable>(); for (int i = 0; i < listJoueurs.Count; i++) { JoueurSerialisable js = new JoueurSerialisable { nom = listJoueurs[i].getName(), score = listJoueurs[i].getScore() }; ljs.Add(js); } //On récupére les anciens joueurs et on les ajoute à cette même liste JoueurSerialisable[] tabjs = readBestScores(); for (int i = 0; i < tabjs.Length; i++) { ljs.Add(tabjs[i]); } ljs = bestJoueur(ljs); //Puis on les écrit dans le fichier correspondant aux meilleurs scores XmlSerializer xs = new XmlSerializer(typeof(List <JoueurSerialisable>)); using (StreamWriter wr = new StreamWriter("bestScore" + style + ".xml")) { xs.Serialize(wr, ljs); } }