Example #1
0
        /// <summary>
        /// Si on veut poser un mots on passe par cette méthode qui verifie si le mots est un mots du dico
        /// si celui ci est un motscroisée valable
        /// si les lettres correpondantes au mots sont des lettre du joueur.
        /// </summary>
        /// <param name="mots"></param>
        /// <param name="Position"></param>
        /// <param name="UnMot"></param>
        /// <param name="Jeu1"></param>
        /// <param name="r"></param>
        public void PoserUnMot(string mots, string[] Position, MotsCroises UnMot, Jeu Jeu1, Random r) //a partir de l'entree mettre une lettre dans la grille.
        {
            Lettre JOKER           = new Lettre('§', 0);                                              //C'est mon joker
            bool   ContientUnJoker = false;
            string NouveauMots     = "";
            int    NbJokers        = 0;

            for (int o = 0; o < 2; o++)     //au cas ou la personne ait 2 jokers On verfie Deux fois
            {
                for (int l = 0; l < mots.Length; l++)
                {
                    if (mots[l] == '(')     //si j'utilises un joker je mets des () autour de la lettre remplacée
                    {
                        if (mots[l + 2] == ')')
                        {
                            for (int z = 0; z < mots.Length; z++) //il y a un joker
                            {
                                if (z != l && z != l + 2)         //on reforme le mots sans les ().
                                {
                                    NbJokers       += 1;
                                    ContientUnJoker = true;
                                    NouveauMots    += mots[z];
                                }
                            }
                            mots = NouveauMots;     //pour ne pas avoir les ().
                        }
                    }
                }
            }     // on verfie les Jokers
            if (ContientUnJoker)
            {
                mots = NouveauMots;
            }
            UnMot.MotsGrille.Add(mots);



            //une fonction pour verifier que le mot est bon
            bool result = OteLettre(mots, ContientUnJoker, NbJokers, Position); //3 verifications ici.

            if (UnMot.EstUnMotCroisee(mots, Position) && UnMot.EstUnMotDuDictionnaire() && result)
            {
                int poid;         //correspond au poid de la lettre en question
                int PoidMots = 0; //corresponds poid du mots
                Console.WriteLine("le mots est " + mots);
                for (int i = 0; i < mots.Length; i++)
                {
                    if (mots[i] == 'X' || mots[i] == 'Y' || mots[i] == 'Z' || mots[i] == 'W' || mots[i] == 'K')
                    {
                        poid = 5;
                    }
                    else
                    {
                        poid = 0;
                    }
                    Lettre UneLettre = new Lettre(mots[i], poid);
                    PoidMots += poid;
                    if (Position[2].ToUpper() == "H")//on pose le mots sur la grille
                    {
                        GrilleMatrice[int.Parse(Position[0]) - 1, int.Parse(Position[1]) - 1 + i] = UneLettre;
                    }
                    if (Position[2].ToUpper() == "V")
                    {
                        GrilleMatrice[int.Parse(Position[0]) - 1 + i, int.Parse(Position[1]) - 1] = UneLettre;
                    }
                }
                Console.WriteLine($"Le poid du mot est {PoidMots}");
                List <string> Mots = new List <string>();
                Mots.Add(mots);
                ListeMotsTrouves.Add(mots);
                CalculScore();
            }
            else
            {
                Console.WriteLine("ERREUR => NON POSSIBLE"); //une des 3 verifications a renvoyé false
                UnMot.MotsGrille.Remove(mots);               //on actualise
                ListeMotsTrouves.Remove(mots);
            }
            Add_Lettres(2, Jeu1.LaPioche, r); //un tour est effectué, on ajoute deux lettre au joueur en cours
            Console.WriteLine($"Nouveau Score = {this.Score}");
            //si le mots est valable
            AfficherGrille();
        }
Example #2
0
        /// <summary>
        /// Dans la méthode UnTour je donne la main a un joueur ou l'autre pour qu'il puisse se déclarer, déclarer
        /// son mots, et dire la position de celui ci. A la fin sa grille est actualisée dans la console.
        /// </summary>
        /// <param name="Joueur1"></param>
        /// <param name="Joueur2"></param>
        /// <param name="Jeu1"></param>
        /// <param name="r"></param>
        private static void UnTour(Joueur Joueur1, Joueur Joueur2, Jeu Jeu1, Random r, int i)
        {
            DateTime Copie = DateTime.Now; //permet de faire le Timer

            Console.WriteLine("Tour " + i);
            Console.WriteLine("Le joueur qui veut jouer rentre son Nom (maj ou non), Vous avez 60 secondes.");
            string Nom = Console.ReadLine();

            Console.WriteLine("Rentrez le mots en MAJUSCULE");
            string mots = Console.ReadLine();

            Console.WriteLine("Saissiez la ligne, la colonne, h: horizontale v: verticale");
            string saisie1 = Console.ReadLine();

            string[]    Position     = saisie1.Split(',');
            MotsCroises MotsCroises1 = new MotsCroises(Joueur1);//Un objet MotsCroises pour chaque joueur
            MotsCroises MotsCroises2 = new MotsCroises(Joueur2);

            if (Nom.ToUpper() == Joueur1.Nom.ToUpper())
            {
                Console.Clear();
                if (DateTime.Now.Second + DateTime.Now.Minute * 60 - Copie.Second - Copie.Minute * 60 < 60) //verifie que il ne s'est pas écoulé 60 secondes.
                {
                    Console.WriteLine($"DUREE DU TOUR => {DateTime.Now.Second + DateTime.Now.Minute * 60 - Copie.Second - Copie.Minute * 60} secondes");
                    Joueur1.PoserUnMot(mots, Position, MotsCroises1, Jeu1, r);
                    //méthode qui permet de faire toutes les verifications et de poser un mot. et rajoute deux lettre a ce joueur
                    Copie = DateTime.Now;
                    Joueur2.Add_Lettres(2, Jeu1.LaPioche, r); //on ajoute deux lettres a l'autre joueur.
                }
                else
                {
                    Console.WriteLine($"DUREE DU TOUR => {DateTime.Now.Second + DateTime.Now.Minute * 60 - Copie.Second - Copie.Minute * 60} secondes");
                    Console.WriteLine("TO LATE: temps dépassé");
                    Copie = DateTime.Now;
                    Joueur1.Add_Lettres(2, Jeu1.LaPioche, r);//les deux prennent deux lettre
                    Joueur2.Add_Lettres(2, Jeu1.LaPioche, r);
                }
                Console.WriteLine(Joueur1.toString());

                Console.WriteLine("/////////////////////////////////////////////////////////////////");
                Joueur2.AfficherGrille();
                Console.WriteLine(Joueur2.toString());
            }
            if (Nom.ToUpper() == Joueur2.Nom.ToUpper())
            {
                Console.Clear();
                if (DateTime.Now.Second + DateTime.Now.Minute * 60 - Copie.Second - Copie.Minute * 60 < 60)
                {
                    Console.WriteLine($"DUREE DU TOUR => {DateTime.Now.Second + DateTime.Now.Minute * 60 - Copie.Second - Copie.Minute * 60} secondes");
                    Joueur2.PoserUnMot(mots, Position, MotsCroises2, Jeu1, r);
                    Copie = DateTime.Now;
                    Joueur1.Add_Lettres(2, Jeu1.LaPioche, r);
                }
                else
                {
                    Console.WriteLine($"DUREE DU TOUR => {DateTime.Now.Second + DateTime.Now.Minute * 60 - Copie.Second - Copie.Minute * 60} secondes");
                    Console.WriteLine("TO LATE: temps dépassé");
                    Copie = DateTime.Now;
                    Joueur1.Add_Lettres(2, Jeu1.LaPioche, r);
                    Joueur2.Add_Lettres(2, Jeu1.LaPioche, r);
                }
                Console.WriteLine(Joueur2.toString());
                Console.WriteLine("/////////////////////////////////////////////////////////////////");
                Joueur1.AfficherGrille();
                Console.WriteLine(Joueur1.toString());
            }
            else //surement due a une erreur d'entrée de l'utilisateur.
            {
                Console.WriteLine("ERREUR => Veuillez rentrer le Nom de l'utlisateur et ecrire le mot puis" +
                                  " la position ex: 1,1,h");
                i -= 1; //on annule le tour et c'est encore a lui de jouer.
            }
        }