示例#1
0
 /// <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();
 }
示例#2
0
 /// <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();
 }