Пример #1
0
        static void Main(string[] args)
        {
            int        manche, tde1, tde2;
            string     selectDe2, selectDe, selectionManche;
            Partie     maPartie  = new Partie(1);
            Lancer     monLancer = new Lancer();
            ConsoleKey saisie    = new ConsoleKey();
            bool       verif     = false;

            Console.WriteLine("Bienvenue dans le jeu 4-2-1");
            do
            {   //A TRAVAILLER
                Console.WriteLine("Veuillez choisir le nombre de manches que vous souhaitez jouer:");
                selectionManche = Console.ReadLine();
                if (IsNumeric(selectionManche) /*|| int.Parse(selectionManche) > 0*/)
                {
                    manche   = int.Parse(selectionManche);
                    maPartie = new Partie(manche);
                    verif    = true;
                }
                else
                {
                    Console.WriteLine("Veuillez saisir un nombre svp !\n");
                }
            } while (!IsNumeric(selectionManche) && int.Parse(selectionManche) > 0);


            Console.WriteLine("Vous avez choisis de faire une partie de {0} manches de 3 lancés chacuns, vous débutez avec {1} points", selectionManche, maPartie.NbPoints);

            do
            {
                maPartie.NouveauLancer();
                Console.WriteLine("");
                maPartie.MonLancerCourant.Trier();
                maPartie.NbrLancer--;

                if (maPartie.MonLancerCourant.EstGagnant())
                {
                    maPartie.MajPoints();
                    Console.WriteLine("Bravo vous avez gagné !");
                }

                if (!verif)
                {
                    Console.WriteLine("Nombre de lancé épuisé pour cette manche, début d'une nouvelle manche");
                    Console.WriteLine("\nVous avez actuellement {0} points", maPartie.NbPoints);
                    Console.WriteLine("\nVoici le premier tirage: ");
                    Ecran.Afficher(maPartie.MonLancerCourant);
                }
                else
                {
                    Console.WriteLine("Voici le premier tirage:");
                    Ecran.Afficher(maPartie.MonLancerCourant);
                }

                do
                {
                    verif = false;
                    Console.WriteLine("Pour faire votre choix utilisez le pad numérique.");

                    Console.WriteLine("[1] - Relancer un dé.");
                    Console.WriteLine("[2] - Relancer deux dés.");
                    Console.WriteLine("[3] - Relancer tous les dés.");
                    Console.WriteLine("[4] - Affichage du score.");
                    Console.WriteLine("[5] - Affichage du nombre d'essai restant pour cette manche.");
                    Console.WriteLine("[6] - Affichage du dernier lancé.");
                    Console.WriteLine("[Echap] - Quitter l'application.");

                    saisie = Console.ReadKey().Key;


                    switch (saisie)
                    {
                    case ConsoleKey.NumPad1:
                        do
                        {
                            Console.WriteLine("\nQuel dé voulez vous relancer ?");
                            selectDe = Console.ReadLine();

                            int.TryParse(selectDe, out int r);
                            tde1 = r;

                            if (!IsNumeric(selectDe))
                            {
                                Console.WriteLine("Veuillez saisir une valeur numérique!");
                            }
                            else if (tde1 <= 0 || tde1 >= 4)
                            {
                                Console.WriteLine("La partie se joue sur 3 dés, veuillez entrer 1, 2 ou 3.");
                            }
                        }while (tde1 >= 4 || tde1 <= 0);

                        maPartie.Lancer1(int.Parse(selectDe));
                        Console.WriteLine("\nAffichage du lancé:\n");
                        Ecran.Afficher(maPartie.MonLancerCourant);
                        break;

                    case ConsoleKey.NumPad2:
                        do
                        {       //A REVOIR
                            Console.WriteLine("\nQuel est le premier dé que voulez vous relancer ?");
                            selectDe = Console.ReadLine();
                            Console.WriteLine("Quel est le deuxieme dé que vous voulez relancer?");
                            selectDe2 = Console.ReadLine();

                            int.TryParse(selectDe, out int r);
                            int.TryParse(selectDe2, out int d);
                            tde1 = r;
                            tde2 = d;
                            if (!IsNumeric(selectDe) || !IsNumeric(selectDe2))
                            {
                                Console.WriteLine("Veuillez saisir un chiffre entre 1 et 3!");
                            }
                            else if ((tde1 >= 4 || tde1 <= 0) && (tde2 >= 4 || tde2 <= 0))
                            {
                                Console.WriteLine("Le dé {0} et le dé {1} n'éxistent pas !", tde1, tde2);
                            }
                            else if (tde1 >= 4 || tde1 <= 0)
                            {
                                Console.WriteLine("Le dé {0} n'existe pas !\n", tde1);
                            }
                            else if (tde2 >= 4 || tde2 <= 0)
                            {
                                Console.WriteLine("Le dé {0} n'éxiste pas !", tde2);
                            }
                        } while ((tde1 >= 4 || tde1 <= 0) || (tde2 >= 4 || tde2 <= 0));



                        if ((tde1 <= 3 && tde1 >= 1) && (tde2 <= 3 && tde2 >= 1))
                        {
                            int de  = int.Parse(selectDe);
                            int de1 = int.Parse(selectDe2);
                            maPartie.Lancer2(de, de1);
                            Console.WriteLine("Affichage du lancé:\n");
                            Ecran.Afficher(maPartie.MonLancerCourant);
                        }

                        if (maPartie.MonLancerCourant.EstGagnant())
                        {
                            Console.WriteLine("Bravo ! Vous avez gagner !");
                            break;
                        }

                        break;

                    case ConsoleKey.NumPad3:

                        Console.WriteLine("\nRelance des dés :");

                        maPartie.Lancer3();
                        Ecran.Afficher(maPartie.MonLancerCourant);

                        if (monLancer.EstGagnant())
                        {
                            Console.WriteLine("Bravo ! Vous avez gagné !");
                        }
                        break;

                    case ConsoleKey.NumPad4:
                        Console.WriteLine("\nVous avez actuellement {0} points.\n", maPartie.NbPoints);
                        break;

                    case ConsoleKey.NumPad5:
                        if (maPartie.NbrLancer == 1)
                        {
                            Console.WriteLine("\nIl vous reste {0} lancé.\n", maPartie.NbrLancer);
                        }
                        else
                        {
                            Console.WriteLine("\nIl vous reste {0} lancés.\n", maPartie.NbrLancer);
                        }
                        break;

                    case ConsoleKey.NumPad6:

                        Console.WriteLine("\nVoici votre dernier lancé: ");
                        Ecran.Afficher(maPartie.MonLancerCourant);
                        break;
                    }
                } while (maPartie.NbrLancer != 0 && saisie != ConsoleKey.Escape && !maPartie.MonLancerCourant.EstGagnant());

                if (monLancer.EstGagnant())
                {
                    maPartie.MajPoints();
                    Console.WriteLine("Bravo ! Vous avez gagné !");
                }
                else
                {
                    maPartie.MajPoints();
                }
            } while (saisie != ConsoleKey.Escape && maPartie.EstPerdue() /*&& maPartie.NbManche <= 0*/);

            if (saisie == ConsoleKey.Escape)
            {
                Console.WriteLine("\nVous avez décider de quitter le jeu, à bientôt");
            }
            else
            {
                int manches = (int.Parse(selectionManche) - maPartie.NbManche);
                Console.WriteLine("Vous n'avez plus de points vous avez donc perdu, rententez votre chance!");
                Console.WriteLine("Vous avez disputé {0} manches et votre score final est de {1} points", manches, maPartie.NbPoints);
            }


            Console.ReadLine();
            //Ecran.Run();
        }
Пример #2
0
        //public static bool IsNumeric(string _verif)
        //{
        //    if (_verif.All(char.IsDigit))
        //    {
        //        return true;
        //    }
        //    return false;
        //}

        static void Main(string[] args)
        {
            int        manche;
            string     selectDe2 = "", /*choix,*/ selectDe, selectionManche;
            Partie     maPartie  = new Partie(1);
            Lancer     monLancer = new Lancer();
            ConsoleKey saisie    = new ConsoleKey();
            bool       verif     = false;

            Console.WriteLine("Bienvenue dans le jeu 4-2-1");
            do
            {
                Console.WriteLine("Veuillez choisir le nombre de manches que vous souhaitez jouer:");
                selectionManche = Console.ReadLine();
                if (IsNumeric(selectionManche))
                {
                    manche   = int.Parse(selectionManche);
                    maPartie = new Partie(manche);
                    verif    = true;
                }
                else
                {
                    Console.WriteLine("Veuillez saisir un nombre svp !\n");
                }
            } while (!IsNumeric(selectionManche));


            Console.WriteLine("Vous avez choisis de faire une partie de {0} manches de 3 lancés chacuns, vous débutez avec {1} points", selectionManche, maPartie.NbPoints);

            do
            {
                maPartie.NouveauLancer();
                Console.WriteLine("");
                maPartie.MonLancerCourant.Trier();
                maPartie.NbrLancer--;

                if (maPartie.MonLancerCourant.EstGagnant())
                {
                    maPartie.MajPoints();
                    Console.WriteLine("Bravo vous avez gagné !");
                }

                if (!verif)
                {
                    Console.WriteLine("Nombre de lancé épuisé pour cette manche, début d'une nouvelle manche");
                    Console.WriteLine("Vous avez actuellement {0} points", maPartie.NbPoints);
                    Console.WriteLine("Voici le premier tirage: ");
                    Ecran.Afficher(maPartie.MonLancerCourant);
                }
                else
                {
                    Console.WriteLine("Voici le premier tirage:");
                    Ecran.Afficher(maPartie.MonLancerCourant);
                }

                do
                {
                    verif = false;
                    Console.WriteLine("Pour faire votre choix utilisez le pad numérique.");

                    Console.WriteLine("[1] - Relancer tout les dés.");
                    Console.WriteLine("[2] - Relancer des dés au choix.");
                    Console.WriteLine("[3] - Affichage de votre score.");
                    Console.WriteLine("[4] - Affichage du nombre d'essai restant pour cette manche.");

                    saisie = Console.ReadKey().Key;


                    switch (saisie)
                    {
                    case ConsoleKey.NumPad1:
                        Console.WriteLine("Relance des dés :");

                        maPartie.MonLancerCourant.LancerUnDe(3);
                        maPartie.MonLancerCourant.Trier();
                        Ecran.Afficher(maPartie.MonLancerCourant);
                        maPartie.NbrLancer--;

                        if (monLancer.EstGagnant())
                        {
                            maPartie.MajPoints();
                            Console.WriteLine("Bravo ! Vous avez gagné !");
                        }

                        break;

                    case ConsoleKey.NumPad2:
                        do
                        {
                            Console.WriteLine("Quel dé voulez vous relancer ?");
                            selectDe = Console.ReadLine();
                        } while (!IsNumeric(selectDe));


                        if (IsNumeric(selectDe))
                        {
                            maPartie.MonLancerCourant.LancerUnDe(int.Parse(selectDe));
                            maPartie.MonLancerCourant.Trier();
                            Ecran.Afficher(maPartie.MonLancerCourant);

                            Console.WriteLine("Voulez vous en lancer un autre ? (N pour annuler, sinon le numéro du dé)");
                            selectDe2 = Console.ReadLine();

                            if (IsNumeric(selectDe2))
                            {
                                maPartie.MonLancerCourant.LancerUnDe(int.Parse(selectDe2));
                                maPartie.MonLancerCourant.Trier();
                                Ecran.Afficher(maPartie.MonLancerCourant);
                                maPartie.NbrLancer--;
                                break;
                            }
                            maPartie.NbrLancer--;
                        }
                        //} while (IsNumeric(selectDe2));

                        if (maPartie.MonLancerCourant.EstGagnant())
                        {
                            maPartie.MajPoints();
                            Console.WriteLine("Bravo ! Vous avez gagner !");
                            break;
                        }

                        break;

                    case ConsoleKey.NumPad3:
                        Console.WriteLine("\nVous avez actuellement {0} points.\n", maPartie.NbPoints);
                        break;

                    case ConsoleKey.NumPad4:
                        if (maPartie.NbrLancer == 1)
                        {
                            Console.WriteLine("\nIl vous reste {0} lancé.\n", maPartie.NbrLancer);
                        }
                        else
                        {
                            Console.WriteLine("\nIl vous reste {0} lancés.\n", maPartie.NbrLancer);
                        }
                        break;
                    }
                } while (maPartie.NbrLancer != 0 && saisie != ConsoleKey.Escape /*|| maPartie.EstPerdue()*/);

                if (monLancer.EstGagnant())
                {
                    maPartie.MajPoints();
                    Console.WriteLine("Bravo ! Vous avez gagné !");
                }
                else
                {
                    maPartie.MajPoints();
                }
            } while (saisie != ConsoleKey.Escape && maPartie.EstPerdue());

            if (saisie == ConsoleKey.Escape)
            {
                Console.WriteLine("\n   Vous avez décider de quitter le jeu, à bientôt");
            }
            else
            {
                int manches = (int.Parse(selectionManche) - maPartie.NbManche);
                Console.WriteLine("Vous n'avez plus de points vous avez donc perdu, rententez votre chance!");
                Console.WriteLine("Vous avez disputé {0} manches et votre score final est de {1}", manches, maPartie.NbPoints);
            }


            Console.ReadLine();
            //Ecran.Run();
        }