Exemplo n.º 1
0
        //Déroulement du jeu
        static void tourDeJeu(Joueur [] joueur, int nbDeToursDeJeu, int nbjoueur)
        {
            //initialisation
            Stopwatch chronotot  = new Stopwatch();        //création du chronomètre total
            Stopwatch chrono1min = new Stopwatch();        //création du chronomètre pour 1 min
            int       tempsTotal = nbDeToursDeJeu * 60000; //permet d'avoir le temps total en millisecondes
            string    mots       = "";
            int       i          = 0;

            //Pour le plateau
            char[,] lettre = new char[4, 4];
            De[]    de      = new De[16];
            Plateau plateau = new Plateau(de, lettre);



            chronotot.Start();                                 //démarre le chrono total

            while (chronotot.ElapsedMilliseconds < tempsTotal) //boucle total
            {
                Console.Clear();
                chrono1min.Start();                                 //démarre le chrono d'une minute

                StreamReader sReader = plateau.OpenFile("Des.txt"); //on lit le plateau
                plateau.ReadFile(sReader);

                string affichage = plateau.ToString();
                WriteAt(affichage, 0, 3);

                while (chrono1min.ElapsedMilliseconds < 60000)                     //Boucle 1 min
                {
                    WriteAt("                                      ", 0, 11);      //pour nettoyer l'affichage
                    WriteAt("                  ", 0, 9);                           //
                    WriteAt("                                           ", 20, 3); //
                    WriteAt("             ", 0, 10);                               //idem
                    WriteAt("Au tour de " + joueur[i].Nom + "\n", 20, 3);
                    WriteAt("Chronomètre lancé", 20, 5);
                    WriteAt("", 0, 8);
                    Console.WriteLine("Saissisez un mot");
                    mots = Convert.ToString(Console.ReadLine()).ToUpper();                               //ToUpper car les mots du dico sont en maj

                    if ((verifContraintes(plateau, mots) == true) && (joueur[i].Contain(mots) == false)) //si le joueur n'a pas encore dit le mot + toutes les contraintes
                    {
                        joueur[i].Score += calculScore(mots);                                            //appel de la méthode calcul score
                        joueur[i].Add_Mot(mots);                                                         //on add le mot trouvé a la liste des mots trouvés
                        WriteAt("Score de " + joueur[i].Nom + " = " + joueur[i].Score, 20, 7);
                        WriteAt("                      ", 20, 9);
                        WriteAt("Mot valide :D ", 20, 9);
                    }
                    else                                            //si mot pas valide
                    {
                        WriteAt("                      ", 20, 9);
                        WriteAt("Mot invalide :(", 20, 9);
                    }
                }
                WriteAt("Fin du temps imparti, au suivant !", 0, 13);
                Thread.Sleep(1000);
                WriteAt("                                       ", 0, 13);
                WriteAt("                            ", 20, 7);

                i++;                                //pour passer au joueur d'apres
                if (i == nbjoueur)
                {
                    i = 0;
                }                           //si on a fait les n joueurs, on recommence
                chrono1min.Reset();         //reset d'une chrono de 1 min
            }
            Console.Clear();
            WriteAt("Fin du temps imparti !", 45, 10);
            Thread.Sleep(1000);
            Console.Clear();
            Console.WriteLine("Récapitulatif : ");
            int indiceGagnant = 0;
            int scoreGagnant  = 0;

            for (int k = 0; k < nbjoueur; k++)
            {
                Console.WriteLine(joueur[k].toString());
                if (joueur[k].Score > scoreGagnant) //pour trouver le score max
                {
                    scoreGagnant  = joueur[k].Score;
                    indiceGagnant = k;
                }
            }
            Console.WriteLine("Le vainqueur est ...... " + joueur[indiceGagnant].Nom + "\nFélicitations !!");
        }