예제 #1
0
        static void Main(string[] args)
        {
            try
            {
                Console.Clear();

                Console.WriteLine("Mode de jeu 1 : PvP");
                Console.WriteLine("Mode de jeu 2 : PvIA");
                int input = 0;

                bool rester = true;
                do
                {
                    Console.Write("Veuillez choisir un mode de jeu : ");

                    try
                    {
                        input = Convert.ToInt32(Console.ReadLine());
                        if (input <= 0 || input > 8)
                        {
                            throw new Exception();
                        }
                        else
                        {
                            rester = false;
                        }
                    }
                    catch (Exception)
                    {
                        Console.WriteLine("Saisie invalide.");
                    }
                } while (rester);

                Joueur joueur1 = new Joueur();
                Joueur joueur2 = new Joueur();

                switch (input)
                {
                case 1:
                    joueur1 = new JoueurHumain(1, "Player 1 [X]");
                    joueur2 = new JoueurHumain(2, "Player 2 [O]");
                    break;

                case 2:
                    joueur1 = new JoueurHumain(1, "Player 1 [X]");
                    joueur2 = new JoueurIA(2, "Player 2 (AI-1) [O]", -1);
                    break;
                }

                Puissance4 Jeu = new Puissance4(joueur1, joueur2);
                Jeu.Demarrer();
            }
            catch (Exception ex)
            {
                Console.WriteLine(Environment.NewLine + $"/!\\ - Erreur fatale ({ex.Data}) : {ex.Message} - /!\\");
            }
        }
예제 #2
0
        public override void Jouer(Grille grille, Puissance4 jeu)
        {
            int  colonne = 0;
            int  ligne   = 0;
            bool rester  = true;

            do
            {
                Console.Clear();
                jeu.AfficherTitre(false);
                Console.WriteLine($"{jeu.Joueur1.NomJoueur} : {jeu.Joueur1.Score}, {jeu.Joueur2.NomJoueur} : {jeu.Joueur2.Score} \n");
                grille.Afficher();


                if (this.NumeroJoueur == 1)
                {
                    if (jeu.Joueur2 is JoueurHumain)
                    {
                        Console.WriteLine($"Tour de {this.NomJoueur}");
                    }
                }
                else
                {
                    if (jeu.Joueur1 is JoueurHumain)
                    {
                        Console.WriteLine($"Tour de {this.NomJoueur}");
                    }
                }

                var input = Console.ReadKey();

                if (input.Key == ConsoleKey.NumPad1)
                {
                    colonne = 0;
                }
                else if (input.Key == ConsoleKey.NumPad2)
                {
                    colonne = 1;
                }
                else if (input.Key == ConsoleKey.NumPad3)
                {
                    colonne = 2;
                }
                else if (input.Key == ConsoleKey.NumPad4)
                {
                    colonne = 3;
                }
                else if (input.Key == ConsoleKey.NumPad5)
                {
                    colonne = 4;
                }
                else if (input.Key == ConsoleKey.NumPad6)
                {
                    colonne = 5;
                }
                else if (input.Key == ConsoleKey.NumPad7)
                {
                    colonne = 6;
                }
                else if (input.Key == ConsoleKey.Enter)
                {
                    if (colonne < grille.Tableau.GetLength(0) && colonne >= 0)
                    {
                        ligne = grille.GetLigne(colonne);
                        if (ligne >= 0)
                        {
                            rester = false;
                        }
                    }
                    else
                    {
                        Console.WriteLine(" | Saisie incorrecte");
                    }
                }
            } while (rester);
            grille.Positionner(ligne, colonne, NumeroJoueur);
        }