/// <summary> /// Ajoute un joueur à la liste et commence une partie si c'est le premier joueur /// </summary> /// <param name="j">joueur à ajouter</param> public void addJoueur(Joueur j) { listJoueurs.Add(j); //Si le serveur était vide et que un premier utilisateur se connecte if (listJoueurs.Count == 1) { //Si c'est le premier joueur, la manche doit être remise à 0 cptManche = 0; partieFinie = false; //on peux lancer la diffusion des chansons Thread th = new Thread(runGame); th.Start(); } else // Si il y'a des joueurs, on lui envoi les chansons en cours { if (partieFinie) { envoiATous(Requete.infoPartieFinie(listJoueurs)); } else { envoi(Requete.musique(gm.listeChansons(j.getNbChoix())), j.getStream()); envoi(Requete.infoChanson(gm.getUrlChanson()), j.getStream()); } } //Dans tous les cas on initialise les scores envoiScores(); }
/// <summary> /// A la fin d'une partie, affiche pendant 5 secondes les scores et réinitialise tout /// </summary> public void finDePartie() { chansonPrecedente = gm.getChanson(); envoiATous(Requete.finDePartie()); partieFinie = true; //On attend de recevoir tous les scores Thread.Sleep(5000); //On envoi le récapitulatif des scores envoiATous(Requete.infoPartieFinie(listJoueurs)); //On écrit éventuellement les meilleurs scores dans le fichier xml correspondant ecritScore(); resetScores(); Thread.Sleep(7500); //Après avoir attendu 7.5 secondes, on recommence une partie cptManche = 0; partieFinie = false; envoiATous(Requete.nouvellePartie()); envoiScores(); runGame(); }