Esempio n. 1
0
 public void prendre(Tresor tresor,int indice)
 {
     
     tresor.SetYposition(indice,30);
   
     
 }
Esempio n. 2
0
        static void Main(string[] args)
        {
            int jeu  = 1;
            int tour = 1;
            int c    = 0;
            int k    = 0;
            int d    = 0;

            string Gagnant = "Personne";
            string nomPlongeur1;
            string nomPlongeur2;


            Console.SetWindowSize(200, 50);
            //Console.SetBufferSize(150,150);

            //Fenetre de lancement
            while (c == 0)
            {
                Cave init = new Cave(20, 100, 10);
                if (k == 0)
                {
                    for (int i = 0; i < init.profondeur; i++)
                    {
                        Console.SetCursorPosition(4, i + 3);
                        Console.WriteLine("||");
                    }

                    for (int i = 0; i < init.largeur; i++)
                    {
                        Console.SetCursorPosition(i + 6, init.profondeur + 2);
                        Console.WriteLine("_");
                    }

                    for (int i = 0; i < init.profondeur; i++)
                    {
                        Console.SetCursorPosition(4 + init.largeur, i + 3);
                        Console.WriteLine("||");
                    }

                    Console.ForegroundColor = ConsoleColor.DarkMagenta;
                    Console.SetCursorPosition(42, 4);
                    Console.WriteLine("Bienvenue dans DIVING DUEL ! ");
                    Console.SetCursorPosition(48, 8);
                    Console.WriteLine("Régles du jeu : ");
                    Console.SetCursorPosition(8, 10);
                    Console.WriteLine("Bienvenue dans  Diving Duel . Il s'agit d'un jeu de stratégie en multijoueur 1 VS 1. \n \tChaque joueur est un plongeur et est représenté par le signe  % , il peut plonger \n \ten profondeur, remonter à la surface et s'emparer des si convoités Trésors.Chaque trésor\n \t rapporte un nombre de points qui dépend de sa profondeur, mais attention pour valider \n \tce Trésor il faut le remonter intégralement en surface. La stratégie réside dans le fait\n \t que l'oxygène disponible au cours de la partie est partagé entre les 2 plongeurs, si \n \tvous êtes sous l'eau et n'avait plus d'énergie vous êtes morts / Normal, on est pas \n \tdes poissons ! / Quand l'oxygène est épuisé, la partie s'achève, le joueur avec le score\n \t le plus élevé gagne.");
                    Console.SetCursorPosition(39, 20);
                    Console.WriteLine("Appuyer sur entree pour commencer");
                    Console.ForegroundColor = ConsoleColor.White;

                    k++;
                }

                if (Console.ReadKey().Key == ConsoleKey.Enter)
                {
                    Console.Clear();
                    c++;
                }
            }


            Cave     scene     = new Cave(20, 100, 10); // Profondeur conseillee = 20 et largeur conseillee = 100
            Oxygene  ox        = new Oxygene();
            Plongeur plongeur1 = new Plongeur("joueur1", 1);
            Plongeur plongeur2 = new Plongeur("joueur2", 2);
            Tresor   tres      = new Tresor();



            // Initialisation de l'emplacement des tresors aleatoirement
            Random rd = new Random();

            for (int i = 0; i < 10; i++)
            {
                tres.SetYposition(i, rd.Next(5, 20));
            }

            Console.Clear();

            Console.WriteLine(" Veuillez saisir le nom du joueur 1");
            nomPlongeur1 = Console.ReadLine();



            // Verification de la bonne entree du prenom
            while (string.IsNullOrEmpty(nomPlongeur1))
            {
                Console.WriteLine("Le champs ne peut pas etre vide, essayez encore");
                nomPlongeur1 = Console.ReadLine();
            }

            Console.WriteLine("Veuillez saisir le nom du joueur 2");
            nomPlongeur2 = Console.ReadLine();

            while (string.IsNullOrEmpty(nomPlongeur2))
            {
                Console.WriteLine("Le champs ne peut pas etre vide, essayez encore");
                nomPlongeur2 = Console.ReadLine();
            }



            Console.Clear();

            while (jeu == 1)
            {
                //Dessin des element cles du jeu (Joueurs, Cave et tresors)
                Console.Clear();

                scene.dessinerLaCave();
                tres.genererTresor();

                plongeur1.apparition();
                plongeur2.apparition();



                //Quand les limites sont atteintes

                if (plongeur1.GetYPosition() < 3) //Ne pas autoriser les joueurs a depasser le cadre du jeu
                {
                    plongeur1.SetYPosition(2);
                }
                else if (plongeur1.GetYPosition() > 20)
                {
                    plongeur1.SetYPosition(20);
                }
                if (plongeur2.GetYPosition() < 3) //Ne pas autoriser les joueurs a depasser le cadre du jeu
                {
                    plongeur2.SetYPosition(2);
                }
                else if (plongeur2.GetYPosition() > 20)
                {
                    plongeur2.SetYPosition(20);
                }

                //si les joueurs sont toujours sous l'eau mais sans oxygene
                if (plongeur1.GetYPosition() > 4 && ox.GetReserve() < 1)
                {
                    plongeur1.SetScore(0);
                }
                if (plongeur2.GetYPosition() > 4 && ox.GetReserve() < 1)
                {
                    plongeur2.SetScore(0);
                }

                // Pour deposer les tresors en possession
                if (plongeur1.GetYPosition() == 4 && tour == 1)
                {
                    plongeur1.SetTresorsValides(plongeur1.GetTresorsEnPossession() + plongeur1.GetTresorsValides());
                    plongeur1.SetTresorsEnPossession(0);

                    plongeur1.SetScore(plongeur1.GetScorePossible() + plongeur1.GetScore());
                    plongeur1.SetScorePossible(0);
                }

                if (plongeur2.GetYPosition() == 4 && tour == 2)
                {
                    plongeur2.SetTresorsValides(plongeur2.GetTresorsEnPossession() + plongeur2.GetTresorsValides());
                    plongeur2.SetTresorsEnPossession(0);

                    plongeur2.SetScore(plongeur2.GetScorePossible() + plongeur2.GetScore());
                    plongeur2.SetScorePossible(0);
                }

                if (ox.GetReserve() < 1)
                {
                    if (plongeur1.GetScore() > plongeur2.GetScore())
                    {
                        Gagnant = nomPlongeur1;
                    }
                    else if (plongeur1.GetScore() < plongeur2.GetScore())
                    {
                        Gagnant = nomPlongeur2;
                    }
                    else
                    {
                        Gagnant = "Personne";
                    }

                    jeu = 0;
                }



                //Partie presentation des informations essentiels au jeu (Score, tresors, oxygene, consignes...)
                Console.SetCursorPosition(45, 25);
                Console.WriteLine("Niveau d'Oxygene : ");
                Console.SetCursorPosition(5, 26);
                for (int i = 0; i < ox.GetReserve(); i++)
                {
                    Console.Write("#");
                }
                Console.Write("\t");
                Console.WriteLine(ox.GetReserve());


                Console.SetCursorPosition(10, 30);
                Console.Write("Score plongeur 1 : ");
                Console.Write(plongeur1.GetScore());

                Console.SetCursorPosition(70, 30);
                Console.Write("Score plongeur 2 : ");
                Console.Write(plongeur2.GetScore());

                Console.SetCursorPosition(10, 32);
                Console.WriteLine("Plongeur 1 : ");
                Console.SetCursorPosition(10, 33);
                Console.Write("Tresors en possesion : ");
                Console.WriteLine(plongeur1.GetTresorsEnPossession());
                Console.SetCursorPosition(10, 34);
                Console.Write("Tresors valides : ");
                Console.WriteLine(plongeur1.GetTresorsValides());

                Console.SetCursorPosition(70, 32);
                Console.WriteLine("Plongeur 2 : ");
                Console.SetCursorPosition(70, 33);
                Console.Write("Tresors en possesion : ");
                Console.WriteLine(plongeur2.GetTresorsEnPossession());
                Console.SetCursorPosition(70, 34);
                Console.Write("Tresors valides : ");
                Console.WriteLine(plongeur2.GetTresorsValides());

                Console.ForegroundColor = ConsoleColor.Red;
                Console.SetCursorPosition(43, 36);
                Console.Write("Au tour de ");
                if (tour == 1)
                {
                    Console.WriteLine(nomPlongeur1);
                }
                else
                {
                    Console.WriteLine(nomPlongeur2);
                }
                Console.ForegroundColor = ConsoleColor.White;

                Console.SetCursorPosition(110, 10);
                Console.Write("▲ : ");
                Console.WriteLine("Monter");
                Console.SetCursorPosition(110, 12);
                Console.Write("▼ : ");
                Console.WriteLine("Descendre (plonger)");
                Console.SetCursorPosition(110, 14);
                Console.Write("P : ");
                Console.WriteLine("Prendre un trésor (uniquement quand le plongeur est au même niveau )");



                //Lecture de la touche --> Actions possible 1.Descendre 2.Monter 3.Prendre le tresor
                switch (Console.ReadKey().Key)
                {
                case ConsoleKey.DownArrow:
                    if (tour == 1)
                    {
                        plongeur1.descendre();
                        tour = 2;
                        ox.SetReserve(ox.GetReserve() - (plongeur1.GetTresorsEnPossession() * 2 + 1));
                    }
                    else
                    {
                        plongeur2.descendre();
                        tour = 1;
                        ox.SetReserve(ox.GetReserve() - (plongeur2.GetTresorsEnPossession() * 2 + 1));
                    }
                    break;

                case ConsoleKey.UpArrow:
                    if (tour == 1)
                    {
                        plongeur1.monter();
                        tour = 2;
                        ox.SetReserve(ox.GetReserve() - (plongeur1.GetTresorsEnPossession() * 2 + 1));
                    }
                    else
                    {
                        plongeur2.monter();
                        tour = 1;
                        ox.SetReserve(ox.GetReserve() - (plongeur2.GetTresorsEnPossession() * 2 + 1));
                    }
                    break;


                case ConsoleKey.P:
                    for (int i = 0; i < 10; i++)
                    {
                        if (plongeur1.GetYPosition() == tres.GetYposition(i) && tour == 1)
                        {
                            plongeur1.prendre(tres, i);
                            plongeur1.SetTresorsEnPossession(plongeur1.GetTresorsEnPossession() + 1);
                            plongeur1.SetScorePossible(plongeur1.GetYPosition() * plongeur1.GetTresorsEnPossession());
                            tour = 2;
                            break;
                        }
                        else if (plongeur2.GetYPosition() == tres.GetYposition(i) && tour == 2)
                        {
                            plongeur2.prendre(tres, i);
                            plongeur2.SetTresorsEnPossession(plongeur2.GetTresorsEnPossession() + 1);
                            plongeur2.SetScorePossible(plongeur2.GetYPosition() * plongeur2.GetTresorsEnPossession());
                            tour = 1;
                            break;
                        }
                    }
                    break;
                }
            }

            while (true)
            {
                if (d == 0)
                {
                    Console.Clear();
                    Console.SetCursorPosition(100, 20);
                    Console.Write("Le joueur ");
                    Console.Write(Gagnant);
                    Console.WriteLine("a gagne !!!!!!!!!!!!!!!!");
                    d++;
                }
            }
        }