示例#1
0
        /// <summary>
        /// Permet de joueur un tour en tant qu'humain
        /// </summary>
        /// <param name="joueur">Joueur concerné</param>
        public static void JouerHumain(int joueur)
        {
            int x, y;

            int[,] salves = new int[Joueur.ObtenirTailleSalve(joueur), 2];

            /*Console.WriteLine("Votre Grille:");
             * Grille.AfficherGrille(Grille.ObtenirGrilleJoueur(joueur));
             * Console.WriteLine("Ce que vous savez de la Grille de l'adversaire:");
             * Grille.AfficherGrille(Grille.ObtenirGrilleDecouverteJoueur(joueur));*/
            for (int i = 0; i < salves.GetLength(0); i++)
            {
                Console.Clear();
                Console.ForegroundColor = ConsoleColor.Blue;
                Console.WriteLine("==TOUR DU JOUEUR " + joueur + "=============");
                Console.ResetColor();
                string infoGrilles = "Votre Grille:                          Ce que vous savez de la grille de votre adversaire:";
                Console.WriteLine(infoGrilles);
                Grille.AfficherDeuxGrillesCoteACote(Grille.ObtenirGrilleJoueur(joueur), Grille.ObtenirGrilleDecouverteJoueur(joueur));
                Console.WriteLine("\n-------\nParamétrage du canon " + (i + 1) + "/" + salves.GetLength(0));
                Console.Write("Tirs paramétrés: ");
                Console.ForegroundColor = ConsoleColor.DarkYellow;
                for (int o = 0; o < i; o++)
                {
                    Console.Write(Grille.Lettres[salves[o, 1]] + "" + (salves[o, 0] + 1) + " ");
                }
                Console.WriteLine("");
                Console.ResetColor();
                DemanderPosition(joueur, out x, out y);
                salves[i, 0] = x;
                salves[i, 1] = y;
                Console.WriteLine("Un canon a été dirigé vers la cellule " + Grille.Lettres[y] + "" + (x + 1) + " ...");
            }
            Console.Clear();
            Console.WriteLine("------------------------");
            Console.WriteLine("Mise à feu des canons...");
            for (int i = 0; i < salves.GetLength(0); i++)
            {
                x = salves[i, 0];
                y = salves[i, 1];
                Console.Write("Tir sur la cellule " + Grille.Lettres[y] + "" + (x + 1) + " ...");
                bool coule = false;
                if (Bateau.Tirer(joueur, x, y, out coule) == true) // le joueur a touché
                {
                    if (coule == false)
                    {
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.WriteLine("Vous avez touché un navire !");
                        Console.ResetColor();
                    }
                    else
                    {
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.WriteLine("Un bateau a été coulé.");
                        Console.ResetColor();
                        Joueur.ReglerTailleSalve(joueur, Joueur.ObtenirTailleSalve(joueur) - 1);
                    }
                }
                else // le joueur n'a pas touché
                {
                    Console.WriteLine("C'est un coup dans l'eau...");
                }
            }
        }
示例#2
0
 public Combat(Joueur player1, Joueur player2)
 {
     Init();
 }
示例#3
0
        //TIR durant le COMBAT
        public void Tir(Joueur target)
        {
            int x, y;
            var rand = new Random();

            //Coté IA
            if (target.name != "Computer")
            {
                do
                {
                    x = rand.Next(0, 10);
                    y = rand.Next(0, 10);
                    //IA un peu avancé, tendance à tirer autour des cases touchés
                    if (target.touchedLast == true && target.caseAutour < 4)
                    {
                        switch (target.caseAutour)
                        {
                        case 0:
                            //HAUT
                            if (target.yLast < 10)
                            {
                                x = target.xLast;
                                y = target.yLast + 1;
                            }
                            target.caseAutour++;
                            break;

                        case 1:
                            //BAS
                            if (target.yLast > 0)
                            {
                                x = target.xLast;
                                y = target.yLast - 1;
                            }
                            target.caseAutour++;
                            break;

                        case 2:
                            //GAUCHE
                            if (target.xLast > 0)
                            {
                                x = target.xLast - 1;
                                y = target.yLast;
                            }
                            target.caseAutour++;
                            break;

                        case 3:
                            //DROITE
                            if (target.xLast < 10)
                            {
                                x = target.xLast + 1;
                                y = target.yLast;
                            }
                            target.caseAutour++;
                            break;

                        default:
                            x = target.xLast;
                            y = target.yLast;
                            break;
                        }
                    }
                    else
                    {
                        target.caseAutour = 0;
                    }
                } while (target.carte.tableauValeur[x, y] > 6);
                //CHOIX DE LA CASE SUR LAQUELLE TIRER
                if (target.carte.tableauValeur[x, y] > 0 && target.carte.tableauValeur[x, y] < 6)
                {//TOUCHÉ
                    Console.Clear();
                    Console.Write("Touché ! ");
                    Console.WriteLine("L'IA à touché votre : " + kindOfBoat(target.carte.tableauValeur[x, y]));
                    target.carte.tableauValeur[x, y] = 8;
                    target.lifeRemaining--;
                    target.touchedLast = true;
                    target.xLast       = x;
                    target.yLast       = y;
                    //Console.WriteLine("DEBUG : " + x + "/" + y + " --> " + target.carte.tableauValeur[x, y] + " Vie : " + target.lifeRemaining);
                }
                else
                {//FAIL
                    if (target.carte.tableauValeur[x, y] == 0)
                    {
                        target.carte.tableauValeur[x, y] = 7;
                    }
                    Console.Clear();
                    Console.WriteLine("Plouff l'IA a loupé quelle grosse merde !");
                    target.touchedLast = false;
                }
            }
            else //Coté Humain
            {
                //CHOIX DE LA CASE SUR LAQUELLE TIRER
                Console.WriteLine("Choisissez où vous voulez tirer ! ");
                y = target.coordInput("x"); x = target.coordInput("y");
                while (target.carte.TableauValeur[x, y] > 6)
                {
                    Console.WriteLine("Vous avez déjà tiré ici :");
                    y = target.coordInput("x"); x = target.coordInput("y");
                }
                //TOUCHÉ
                if (target.carte.TableauValeur[x, y] != 0 && target.carte.TableauValeur[x, y] != 7)
                {
                    Console.Clear();
                    Console.WriteLine("Touché ! En plein sur son " + kindOfBoat(target.carte.TableauValeur[x, y]));
                    target.carte.TableauVide[x, y]  = 8;
                    target.carte.TableauFront[x, y] = 8;
                    target.lifeRemaining--;
                }
                else
                { //FAIL
                    Console.Clear();
                    Console.WriteLine("Raté ! Plouufff mon gars, dans ta...l'eau");
                    target.carte.TableauVide[x, y]  = 7;
                    target.carte.TableauFront[x, y] = 7;
                }
            }
        }
示例#4
0
        /// <summary>
        /// Affichage et gestion de l'interaction du joueur du menu de chargement d'une partie sauvegardée
        /// </summary>
        public static void MenuChargerPartie()
        {
            Console.Clear();
            Joueur.Start();
            Console.WriteLine("======= Charger une partie =======");
            string[] sauvegardes = Sauvegarde.RecupererFichiersSauvegarde();
            if (sauvegardes.Length <= 0)
            {
                Console.WriteLine("Aucune partie sauvegardée n'a été trouvée.");
                Console.WriteLine("Appuyez sur une touche pour continuer...");
                Console.ReadKey(false);
                Jeu.MenuPrincipal();
                return;
            }
            Console.WriteLine("Veuillez sélectionner une sauvegarde ci-dessous");
            Console.ForegroundColor = ConsoleColor.Yellow;
            for (int i = 0; i < sauvegardes.Length; i++)
            {
                Console.WriteLine("" + (i + 1) + ")" + sauvegardes[i]);
            }
            Console.ResetColor();
            int index = -1;

            do
            {
                try
                {
                    index = Convert.ToInt32(Console.ReadLine());
                    index = index - 1;
                    if (index < 0 || index >= sauvegardes.Length)
                    {
                        index = -1;
                    }
                }
                catch (Exception)
                {
                    index = -1;
                }
                if (index == -1)
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Ce n'est pas une sélection valide. Veuillez réessayer.");
                    Console.ResetColor();
                }
            }while (index == -1);

            Sauvegarde.ReglerFichierSauvegarde(sauvegardes[index]);

            Console.Clear();
            Console.WriteLine("======= Charger une partie =======");
            try
            {
                Sauvegarde.Charger();
            }
            catch (Exception e)
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("Impossible de charger la partie. Etes-vous sûr d'avoir un fichier de sauvegarde existant ?");
                Console.ResetColor();
                Console.WriteLine("Appuyez sur une touche pour continuer...");
                Console.ReadKey(false);
                Jeu.MenuPrincipal();
            }
            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("La partie a été chargée !");
            Console.ResetColor();
            Console.WriteLine("Appuyez sur une touche pour continuer...");
            Console.ReadKey(false);
            Jeu.DeroulementPartie();
        }