/// <summary> /// Melange et envoie un panel de musique à chaque joueur, avec /// plus ou moins de chansons par joueur. /// </summary> public void envoiMusique() { //On stocke la chanson qui était à trouver pour pouvoir chansonPrecedente = gm.getChanson(); //On remélange les chansons gm.melange(); List <Joueur> listJoueursPartis = new List <Joueur>(); foreach (Joueur j in listJoueurs) { //Et on les envoie à tous les joueurs try { List <String> chansons = gm.listeChansons(j.getNbChoix()); envoi(Requete.infoChanson(gm.getUrlChanson()), j.getStream()); envoi(Requete.musique(chansons), j.getStream()); } catch { //Si le joueur n'est plus en lien avec le serveur, on l'enléve de la liste listJoueursPartis.Add(j); } } foreach (Joueur j in listJoueursPartis) { listJoueurs.Remove(j); } }
/// <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(); }