예제 #1
0
 public static Plateau GetInstance(int nbC, int nbJ)
 {
     if (_instance == null)
     {
         lock (_mutex)
         {
             if (_instance == null)
             {
                 _instance = new Plateau(nbC, nbJ);
             }
         }
     }
     return(_instance);
 }
예제 #2
0
        static void Main(string[] args)
        {
            bool fin = false;

            Console.WriteLine("Nombre de joueurs ? ");
            int           nbJoueurs  = Convert.ToInt32(Console.ReadLine());
            Plateau       board      = Plateau.GetInstance(40, nbJoueurs);
            List <Joueur> lesJoueurs = new List <Joueur>();
            NormalState   deb        = new NormalState();
            Joueur        init       = new Joueur(deb);

            for (int i = 0; i < nbJoueurs; i++)
            {
                lesJoueurs.Add(init);
            }

            fin = isOver(lesJoueurs);

            while (!fin)
            {
            }
        }
예제 #3
0
        static void Main(string[] args)
        {
            /*Console.WriteLine(lancerDés());
            *  int milliseconds = 200;
            *  Thread.Sleep(milliseconds);
            *  Console.WriteLine(lancerDés());*/
            bool fin = false;

            Console.WriteLine("Nombre de joueurs ? ");
            int           nbJoueurs  = Convert.ToInt32(Console.ReadLine());
            Plateau       board      = Plateau.GetInstance(40, nbJoueurs);
            List <Joueur> lesJoueurs = new List <Joueur>();
            NormalState   deb        = new NormalState();

            /*Joueur init = new Joueur(deb);
             * for (int i = 0; i < nbJoueurs; i++)
             * {
             *  lesJoueurs.Add(init);
             * }*/
            for (int i = 0; i < nbJoueurs; i++)
            {
                lesJoueurs.Add(new Joueur(deb));
            }

            /*String nom = "";
             * for (int i = 0; i < nbJoueurs; i++)
             * {
             *  Console.WriteLine("Quel est le nom du joueur " + i);
             *  nom = Console.ReadLine();
             *  lesJoueurs.Add(init, nom);
             * }*/
            int  d;
            int  whichTurn = 0;
            int  numJ;
            bool b;

            while (!isOver(lesJoueurs))
            {
                numJ = whichTurn + 1;
                Console.WriteLine("C'est le tour du joueur " + numJ + ".");
                Console.ReadKey();
                d = lancerDés();
                if (d == 99)
                {
                    toJailSir(lesJoueurs[whichTurn]); for (int i = 0; i < board.Grille.GetLength(0); i++)
                    {
                        board.Grille[i, whichTurn] = 0;
                    }
                    board.Grille[10, whichTurn] = 1;
                }
                if (lesJoueurs[whichTurn].getState() == deb)
                {
                    Console.WriteLine("Le joueur a lancé les dés : " + d);
                    for (int i = 0; i < board.Grille.GetLength(0); i++)
                    {
                        board.Grille[i, whichTurn] = 0;
                    }
                    if (d + lesJoueurs[whichTurn].Position >= 40)
                    {
                        lesJoueurs[whichTurn].Position -= 39; lesJoueurs[whichTurn].Moneyyy += 10000;
                    }                                                                                                                               //Income
                    board.Grille[d + lesJoueurs[whichTurn].Position, whichTurn] = 1;
                    lesJoueurs[whichTurn].Position = d + lesJoueurs[whichTurn].Position;
                    if (lesJoueurs[whichTurn].Position == 30)
                    {
                        toJailSir(lesJoueurs[whichTurn]); for (int i = 0; i < board.Grille.GetLength(0); i++)
                        {
                            board.Grille[i, whichTurn] = 0;
                        }
                        board.Grille[10, whichTurn] = 1;
                    }
                }
                else
                {
                    if (lesJoueurs[whichTurn].GetOut != 0)
                    {
                        b = lancerDésPrison();
                        while (true)
                        {
                            if (b == true)
                            {
                                Console.WriteLine("Quelle chance! Le joueur " + numJ + " sort de prison. "); lesJoueurs[whichTurn].GetOut = 0; lesJoueurs[whichTurn].TransitionTo(deb); break;
                            }
                            else
                            {
                                lesJoueurs[whichTurn].GetOut++;
                            }
                            if (lesJoueurs[whichTurn].GetOut == 3)
                            {
                                Console.WriteLine("Le joueur a purgé sa peine. Le joueur " + numJ + " sort de prison. "); lesJoueurs[whichTurn].GetOut = 0; lesJoueurs[whichTurn].TransitionTo(deb); break;
                            }
                            else
                            {
                                Console.WriteLine("Le joueur " + numJ + " reste en prison."); break;
                            }
                        }
                    }
                    else
                    {
                        lesJoueurs[whichTurn].GetOut++;
                    }
                }
                Plateau.printBoard(board.Grille);
                if (whichTurn == nbJoueurs - 1)
                {
                    whichTurn = 0; endOfTurn(lesJoueurs);
                }
                else
                {
                    whichTurn++; Console.WriteLine();
                }
            }
            Console.WriteLine("Partie finie");
        }
예제 #4
0
        static void Main(string[] args)
        {
            Console.WriteLine("Rules : Each time a player finish its move in a residential area or an hotel area,\nthe player can buy one house or one hotel respectively.");

            /*Console.WriteLine(lancerDés());
            *  int milliseconds = 200;
            *  Thread.Sleep(milliseconds);
            *  Console.WriteLine(lancerDés());*/
            bool fin = false;

            Console.WriteLine("Nombre de joueurs ? ");
            int           nbJoueurs  = Convert.ToInt32(Console.ReadLine());
            Plateau       board      = Plateau.GetInstance(40, nbJoueurs);
            List <Joueur> lesJoueurs = new List <Joueur>();
            NormalState   deb        = new NormalState();

            /*Joueur init = new Joueur(deb);
             * for (int i = 0; i < nbJoueurs; i++)
             * {
             *  lesJoueurs.Add(init);
             * }*/
            /*for (int i = 0; i < nbJoueurs; i++)
             * {
             *  lesJoueurs.Add(new Joueur(deb));
             * }*/
            int    posInit = 0;
            String nom     = "";

            for (int i = 0; i < nbJoueurs; i++)
            {
                Console.WriteLine("Quel est le nom du joueur " + i + "?");
                nom = Console.ReadLine();
                Console.WriteLine("Quel est la position initiale du joueur " + i + "? (De 0 à 39, sauf 30)");
                posInit = Convert.ToInt32(Console.ReadLine());
                lesJoueurs.Add(new Joueur(deb, nom, posInit));
                for (int j = 0; j < board.Grille.GetLength(0); j++)
                {
                    board.Grille[j, i] = 0;
                }
                board.Grille[posInit, i] = 1;
            }
            int  d;
            int  whichTurn = 0;
            int  numJ;
            bool b;

            while (!isOver(lesJoueurs))
            {
                numJ = whichTurn + 1;
                //Console.WriteLine("C'est le tour du joueur " + numJ + ".");
                Console.WriteLine("C'est le tour de " + lesJoueurs[whichTurn].Name + ".");
                Console.ReadKey();
                d = lancerDés();
                if (d == 99)
                {
                    toJailSir(lesJoueurs[whichTurn]); for (int i = 0; i < board.Grille.GetLength(0); i++)
                    {
                        board.Grille[i, whichTurn] = 0;
                    }
                    board.Grille[10, whichTurn] = 1;
                }
                if (lesJoueurs[whichTurn].getState() == deb)
                {
                    Console.WriteLine("Le joueur " + lesJoueurs[whichTurn].Name + " a lancé les dés : " + d);
                    for (int i = 0; i < board.Grille.GetLength(0); i++)
                    {
                        board.Grille[i, whichTurn] = 0;
                    }
                    if (d + lesJoueurs[whichTurn].Position >= 40)
                    {
                        lesJoueurs[whichTurn].Position -= 39; lesJoueurs[whichTurn].Moneyyy += lesJoueurs[whichTurn].Income;
                    }                                                                                                                                                      //Income / 10000
                    board.Grille[d + lesJoueurs[whichTurn].Position, whichTurn] = 1;
                    lesJoueurs[whichTurn].Position = d + lesJoueurs[whichTurn].Position;
                    if (lesJoueurs[whichTurn].Position == 30)
                    {
                        toJailSir(lesJoueurs[whichTurn]); for (int i = 0; i < board.Grille.GetLength(0); i++)
                        {
                            board.Grille[i, whichTurn] = 0;
                        }
                        board.Grille[10, whichTurn] = 1;
                    }
                    if (lesJoueurs[whichTurn].Position % 5 == 0 && lesJoueurs[whichTurn].Position != 10 && lesJoueurs[whichTurn].Position != 30)
                    {
                        wannaHotel(lesJoueurs[whichTurn]);
                    }
                    if (lesJoueurs[whichTurn].Position % 2 == 0 && lesJoueurs[whichTurn].Position != 10 && lesJoueurs[whichTurn].Position != 30 && lesJoueurs[whichTurn].Position % 5 != 0)
                    {
                        wannaHouse(lesJoueurs[whichTurn]);
                    }
                }
                else
                {
                    if (lesJoueurs[whichTurn].GetOut != 0)
                    {
                        b = lancerDésPrison();
                        while (true)
                        {
                            if (b == true)
                            {
                                Console.WriteLine("Quelle chance! Le joueur " + lesJoueurs[whichTurn].Name + " sort de prison. "); lesJoueurs[whichTurn].GetOut = 0; lesJoueurs[whichTurn].TransitionTo(deb); break;
                            }
                            else
                            {
                                lesJoueurs[whichTurn].GetOut++;
                            }
                            if (lesJoueurs[whichTurn].GetOut == 3)
                            {
                                Console.WriteLine("Le joueur a purgé sa peine. Le joueur " + lesJoueurs[whichTurn].Name + " sort de prison. "); lesJoueurs[whichTurn].GetOut = 0; lesJoueurs[whichTurn].TransitionTo(deb); break;
                            }
                            else
                            {
                                Console.WriteLine("Le joueur " + lesJoueurs[whichTurn].Name + " reste en prison."); break;
                            }
                        }
                    }
                    else
                    {
                        lesJoueurs[whichTurn].GetOut++;
                    }
                }
                Plateau.printBoard(board.Grille);
                if (whichTurn == nbJoueurs - 1)
                {
                    whichTurn = 0; endOfTurn(lesJoueurs);
                }
                else
                {
                    whichTurn++; Console.WriteLine();
                }
            }
            Console.WriteLine("Partie finie");
        }