コード例 #1
0
ファイル: views.cs プロジェクト: touche-coule/bataille
        public static string WriteBoatState(joueur joueur, int i, int j)
        {
            switch (joueur.grille.tab[i, j].etat)
            {
                case etat.eau:
                    //return "| ";
                case etat.bateau:
                    return "| ";
                case etat.boum:
                    if (joueur.grille.tab[i, j].bateau.coulé)
                    {
                        string nom = joueur.grille.tab[i, j].bateau.nom.ToString();
                        nom = nom.Substring(0, 1);
                        return "|" + nom;
                    }
                    else
                    {
                        return "|x";
                    }

                case etat.plouf:
                    return "|O";
                default:
                    return "|?";
            }
        }
コード例 #2
0
ファイル: views.cs プロジェクト: touche-coule/bataille
        public static void ShowGrid(joueur joueur1, joueur joueur2)
        {
            Console.WriteLine("{0}                                {1}", joueur1.Pseudo, joueur2.Pseudo);
            Console.WriteLine("|  |A|B|C|D|E|F|G|H|I|J|          |  |A|B|C|D|E|F|G|H|I|J|");

            for (int i = 0; i < grille.horizontal; i++)
            {
                string line1 = "|";
                string line2 = "|";
                int nbr = (i + 1);
                if (nbr < 10)
                {
                    line1 = line1 + nbr + " ";
                    line2 = line2 + nbr + " ";
                }
                else
                {
                    line1 = line1 + nbr;
                    line2 = line2 + nbr;
                }

                for (int j = 0; j < grille.vertical; j++)
                {
                    string ajout1 = WriteBoatState(joueur1, i, j);
                    string ajout2 = WriteBoatState(joueur2, i , j);

                    line1 = line1 + ajout1;
                    line2 = line2 + ajout2;
                }
                line1 = line1 + "|          " + line2 + "|";
                Console.WriteLine(line1);
            }
        }
コード例 #3
0
ファイル: tools.cs プロジェクト: touche-coule/bataille
        public static int CoupAuto(joueur joueur, Random rnd)
        {
            int result;

            do
            {
                int x = rnd.Next(0, 10);
                int y = rnd.Next(0, 10);
                result = joueur.grille.tab[x, y].attaque();
            } while (result == 4 || result == 5);

            return result;
        }
コード例 #4
0
ファイル: tools.cs プロジェクト: touche-coule/bataille
        public static int Coup(joueur joueur)
        {
            int x;
            int y;
            int result;

            do
            {
                tools.GetPositionFromConsole("Où voulez-vous faire feux? (ex : c6)", out x, out y);
                result = joueur.grille.tab[x, y].attaque();
            } while (result == 4 || result == 5);

            return result;
        }
コード例 #5
0
ファイル: views.cs プロジェクト: touche-coule/bataille
        public static void ShowGridPerso(joueur joueur)
        {
            Console.WriteLine("|  |A|B|C|D|E|F|G|H|I|J|");

            for (int i = 0; i < grille.horizontal; i++)
            {
                string line1 = "|";
                int nbr = (i + 1);
                if (nbr < 10)
                {
                    line1 = line1 + nbr + " ";
                }
                else
                {
                    line1 = line1 + nbr;
                }

                for (int j = 0; j < grille.vertical; j++)
                {
                    switch (joueur.grille.tab[i, j].etat)
                    {
                        case etat.eau:
                            line1 = line1 + "| ";
                            break;
                        case etat.bateau:
                            line1 = line1 + "|B";
                            break;
                        case etat.boum:
                        case etat.plouf:
                            line1 = line1 + "| ";
                            break;
                        default:
                            line1 = line1 + "| ";
                            break;
                    }
                }
                line1 = line1 + "|";
                Console.WriteLine(line1);
            }
        }
コード例 #6
0
ファイル: tools.cs プロジェクト: touche-coule/bataille
        public static void PutBoatAuto(joueur joueur, Random rnd)
        {
            int x;
            int y;
            bool retour = false;

            direction directiond;

            do
            {
                x = rnd.Next(0, 10);
                y = rnd.Next(0, 10);
                int dir = rnd.Next(0, 4);

                string directionstr = ((direction)dir).ToString();

                directiond = GetDirectionFromString(directionstr);

                retour = joueur.grille.ajoutBateau(joueur.grille.PorteAvion, joueur.grille.tab[x, y], directiond);
            } while (!retour);

            do
            {
                x = rnd.Next(0, 10);
                y = rnd.Next(0, 10);
                int dir = rnd.Next(0, 4);

                string directionstr = ((direction)dir).ToString();

                directiond = GetDirectionFromString(directionstr);

                retour = joueur.grille.ajoutBateau(joueur.grille.Croiseur, joueur.grille.tab[x, y], directiond);
            } while (!retour);

            do
            {
                x = rnd.Next(0, 10);
                y = rnd.Next(0, 10);
                int dir = rnd.Next(0, 4);

                string directionstr = ((direction)dir).ToString();

                directiond = GetDirectionFromString(directionstr);

                retour = joueur.grille.ajoutBateau(joueur.grille.ContreTorpilleur, joueur.grille.tab[x, y], directiond);
            } while (!retour);

            do
            {
                x = rnd.Next(0, 10);
                y = rnd.Next(0, 10);
                int dir = rnd.Next(0, 4);

                string directionstr = ((direction)dir).ToString();

                directiond = GetDirectionFromString(directionstr);

                retour = joueur.grille.ajoutBateau(joueur.grille.SousMarin, joueur.grille.tab[x, y], directiond);
            } while (!retour);

            do
            {
                x = rnd.Next(0, 10);
                y = rnd.Next(0, 10);
                int dir = rnd.Next(0, 4);

                string directionstr = ((direction)dir).ToString();

                directiond = GetDirectionFromString(directionstr);

                retour = joueur.grille.ajoutBateau(joueur.grille.Torpilleur1, joueur.grille.tab[x, y], directiond);
            } while (!retour);

            do
            {
                x = rnd.Next(0, 10);
                y = rnd.Next(0, 10);
                int dir = rnd.Next(0, 4);

                string directionstr = ((direction)dir).ToString();

                directiond = GetDirectionFromString(directionstr);

                retour = joueur.grille.ajoutBateau(joueur.grille.Torpilleur2, joueur.grille.tab[x, y], directiond);
            } while (!retour);
        }
コード例 #7
0
ファイル: tools.cs プロジェクト: touche-coule/bataille
        public static void PutBoat(joueur joueur)
        {
            int x;
            int y;

            Console.WriteLine("Mise en place des bateaux de {0}", joueur.Pseudo);
            bool retour = false;

            views.ShowGridPerso(joueur);

            do
            {
                tools.GetPositionFromConsole("A partir d'où voulez-vous placer votre porte avions (5)? (ex : c6)", out x, out y);
                direction direction = tools.GetDirectionFromConsole();
                retour = joueur.grille.ajoutBateau(joueur.grille.PorteAvion, joueur.grille.tab[x, y], direction);
            } while (!retour);

            views.ShowGridPerso(joueur);

            do
            {
                tools.GetPositionFromConsole("A partir d'où voulez-vous placer votre croiseur (4)? (ex : c6)", out x, out y);
                direction direction = tools.GetDirectionFromConsole();
                retour = joueur.grille.ajoutBateau(joueur.grille.Croiseur, joueur.grille.tab[x, y], direction);
            } while (!retour);

            views.ShowGridPerso(joueur);

            do
            {
                tools.GetPositionFromConsole("A partir d'où voulez-vous placer votre contre torpilleur (3)? (ex : c6)", out x, out y);
                direction direction = tools.GetDirectionFromConsole();
                retour = joueur.grille.ajoutBateau(joueur.grille.ContreTorpilleur, joueur.grille.tab[x, y], direction);
            } while (!retour);

            views.ShowGridPerso(joueur);

            do
            {
                tools.GetPositionFromConsole("A partir d'où voulez-vous placer votre sous marin (3)? (ex : c6)", out x, out y);
                direction direction = tools.GetDirectionFromConsole();
                retour = joueur.grille.ajoutBateau(joueur.grille.SousMarin, joueur.grille.tab[x, y], direction);
            } while (!retour);

            views.ShowGridPerso(joueur);

            do
            {
                tools.GetPositionFromConsole("A partir d'où voulez-vous placer votre torpilleur1 (2)? (ex : c6)", out x, out y);
                direction direction = tools.GetDirectionFromConsole();
                retour = joueur.grille.ajoutBateau(joueur.grille.Torpilleur1, joueur.grille.tab[x, y], direction);
            } while (!retour);

            views.ShowGridPerso(joueur);

            do
            {
                tools.GetPositionFromConsole("A partir d'où voulez-vous placer votre torpilleur2 (2)? (ex : c6)", out x, out y);
                direction direction = tools.GetDirectionFromConsole();
                retour = joueur.grille.ajoutBateau(joueur.grille.Torpilleur2, joueur.grille.tab[x, y], direction);
            } while (!retour);

            views.ShowGridPerso(joueur);
        }
コード例 #8
0
ファイル: Program.cs プロジェクト: touche-coule/bataille
        static void Main(string[] args)
        {
            //Console.WriteLine("Comment s'appel le joureur N°1?");
            //string nom1 = Console.ReadLine();
            //Console.WriteLine("Comment s'appel le joureur N°2?");
            //string nom2 = Console.ReadLine();

            //joueur joueur1 = new joueur(nom1);
            //joueur joueur2 = new joueur(nom2);

            joueur joueur1 = new joueur("Flink");
            joueur joueur2 = new joueur("Plop");

            Random rnd = new Random();

            tools.PutBoatAuto(joueur1, rnd);
            Console.Clear();
            tools.PutBoatAuto(joueur2, rnd);
            Console.Clear();

            joueur current = joueur1;
            do
            {
                if (current == joueur1)
                {
                    if (joueur1.grille.PorteAvion.coulé && joueur1.grille.SousMarin.coulé && joueur1.grille.Croiseur.coulé && joueur1.grille.ContreTorpilleur.coulé && joueur1.grille.Torpilleur1.coulé && joueur1.grille.Torpilleur2.coulé)
                    {
                        Console.Clear();
                        views.ShowGrid(joueur1, joueur2);
                        Console.WriteLine("{0} a gagné !", joueur2.Pseudo);
                        Console.ReadKey();
                        break;
                    }
                    else
                    {
                        views.ShowGrid(joueur1, joueur2);
                        Console.WriteLine("\n{0}, à vouz de jouer !", current.Pseudo);
                        Console.WriteLine("-------------------------------------------");
                        //int retour = tools.Coup(joueur2);
                        System.Threading.Thread.Sleep(250);
                        int retour = tools.CoupAuto(joueur2, rnd);
                        current = joueur2;
                        Console.Clear();

                        switch (retour)
                        {
                            case 1:
                                Console.WriteLine("Vous avez coulé un bateau");
                                break;
                            case 2:
                                Console.WriteLine("Vous avez touché un bateau");
                                break;
                            case 3 :
                                Console.WriteLine("Malheureusement c'était un coup dans l'eau :(");
                                break;
                        }
                    }
                }
                else
                {
                    if (joueur2.grille.PorteAvion.coulé && joueur2.grille.SousMarin.coulé && joueur2.grille.Croiseur.coulé && joueur2.grille.ContreTorpilleur.coulé && joueur2.grille.Torpilleur1.coulé && joueur2.grille.Torpilleur2.coulé)
                    {
                        Console.Clear();
                        views.ShowGrid(joueur1, joueur2);
                        Console.WriteLine("{0} a gagné !", joueur1.Pseudo);
                        Console.ReadKey();
                        break;
                    }
                    else
                    {
                        views.ShowGrid(joueur1, joueur2);
                        Console.WriteLine("\n{0}, à vouz de jouer !", current.Pseudo);
                        Console.WriteLine("-------------------------------------------");
                        System.Threading.Thread.Sleep(250);
                        int retour = tools.CoupAuto(joueur1, rnd);
                        current = joueur1;
                        Console.Clear();

                        switch (retour)
                        {
                            case 1:
                                Console.WriteLine("Vous avez coulé un bateau");
                                break;
                            case 2:
                                Console.WriteLine("Vous avez touché un bateau");
                                break;
                            case 3:
                                Console.WriteLine("Malheureusement c'était un coup dans l'eau :(");
                                break;
                        }
                    }
                }
            } while (true);
        }