示例#1
0
        static void Main(string[] args)
        {
            Console.OutputEncoding = Encoding.UTF8;
            string Liste = "";
            Console.WriteLine("Liste des vaisseaux");
            Liste = Console.ReadLine();
            bool finProgramme = false;
            Vaisseau ListeVaisseaux = new Vaisseau(Liste);

            while (finProgramme == false)
            {
                AfficherMenu();
                int choix = Convert.ToInt32(Console.ReadLine());
                switch (choix)
                {
                    case 1: AfficherInfoVaisseau(ref Vaisseau.tabVaisseau); break;
                    case 2: VerifierVaisseauExiste(ref Vaisseau.tabVaisseau); break;
                    case 3: TrouverVaisseauVieEleve(ref Vaisseau.tabVaisseau); break;
                    case 4: AfficherMoyennePrix(ref Vaisseau.tabVaisseau); break;
                    case 5: finProgramme = true; break;
                    default: Console.WriteLine("Ce choix n'existe pas"); break;
                }
            }
            Console.WriteLine("Au revoir");
            Console.ReadKey();
        }
示例#2
0
        static void Main(string[] args)
        {
            int choix   = 0;
            int attaque = 0;
            int moy     = 0;



            int[] tabVaisseau = new int[20];



            for (int i = 0; i < tabVaisseau.Length; i++)
            {
                tabVaisseau[i] = new Vaisseau(generateurNb.Next(1, 21), (Rareté)generateurNb.Next(1, 5));
            }



            Vaisseau Vaisseau = new Vaisseau(generateurNb.Next(1, 21), (Rareté)generateurNb.Next(1, 5));

            Console.WriteLine(Vaisseau);



            Console.WriteLine("Quel option voulez - vous effectue ? ");
            Console.WriteLine("1-Afficher les vaisseaux avec toutes les caractéristiques");
            Console.WriteLine("2-Vérifier si un vaisseau légendaire existe");
            Console.WriteLine("3-Trouver le vaisseau avec le plus d'attaque");
            Console.WriteLine("4-Afficher la moyenne des prix des vaisseaux");
            Console.WriteLine("5-Quitter le programme");
            choix = Convert.ToInt32(Console.ReadLine());
            if (choix == 1)
            {
                Console.WriteLine("Commun: attaque: 10 a 25 vie: 100 a 150 prix: 2000");
                Console.WriteLine("Rare: attaque: 23 a 50 vie: 140 a 250 prix: 4500");
                Console.WriteLine("Épique: attaque: 65 a 75 vie:200 a 600 prix: 8000");
                Console.WriteLine("Légendaire: attaque: 90 a 110 vie: 550 a 2000 prix: 20000");
            }
            else if (choix == 2)
            {
            }
            else if (choix == 3)
            {
                if (attaque > 550)
                {
                    Console.WriteLine("Le Vaisseau légendaire possede le plus d'attaque ");
                }
            }
            else if (choix == 4)
            {
                moy = 2000 + 4500 + 8000 + 20000 / 4;
                Console.WriteLine(moy);
            }
            else if (choix == 5)
            {
                break;
            }
            Console.ReadKey();
        }
示例#3
0
            public Commandant(string _nomCommandantVaisseau) : this()
            {
                tabVaisseau = new Vaisseau[20];


                for (int i = 0; i < tabVaisseau.Length; i++)
                {
                    int rarete = generateurNombre.Next(1, 101);

                    if (rarete >= 1 && rarete <= 60)
                    {
                        tabVaisseau[i] = new Vaisseau(generateurNombre.Next(10, 25), generateurNombre.Next(100, 150), 2000);
                    }
                    else if (rarete >= 61 && rarete <= 90)
                    {
                        tabVaisseau[i] = new Vaisseau(generateurNombre.Next(23, 50), generateurNombre.Next(140, 250), 4500);
                    }
                    else if (rarete >= 91 && rarete <= 99)
                    {
                        tabVaisseau[i] = new Vaisseau(generateurNombre.Next(65, 75), generateurNombre.Next(200, 600), 8000);
                    }
                    else if (rarete >= 100)
                    {
                        tabVaisseau[i] = new Vaisseau(generateurNombre.Next(90, 110), generateurNombre.Next(550, 2000), 20000);
                    }
                }
            }
示例#4
0
        static void Main(string[] args)
        {
            int    choixMenu    = 0;
            bool   finProgramme = false;
            string nom          = "";

            Console.SetCursorPosition(40, 0);
            Console.WriteLine("****Les Gardiens De La Galaxie****");
            Console.WriteLine("Veuillez entrer le nom de votre Vaisseau: ");
            nom = Console.ReadLine();
            Vaisseau monVaisseau = new Vaisseau(nom);

            while (finProgramme == false)
            {
                AfficherMenu();
                choixMenu = Convert.ToInt32(Console.ReadLine());
                switch (choixMenu)
                {
                case 1: AfficherListeVaisseau(ref monVaisseau.tabVaisseau); break;

                case 2: AfficherSiVaisseauExiste(ref monVaisseau.tabVaisseau); break;

                case 3: AfficherAttaqueEleve(ref monVaisseau.tabVaisseau); break;

                case 4: AfficherMoyennePrix(ref monVaisseau.tabVaisseau); break;

                case 5: finProgramme = true; break;
                }
            }
        }
示例#5
0
文件: Program.cs 项目: Dolotboy/Prog
            public Vaisseau(int _nom, Rareté _rareté) : this()
            {
                nom = _nom;
                rareté = _rareté;

                tabVaisseau = new Vaisseau[10];
                // Vaisseau nom: Le faucon, rareté: Commun, vitesse: 10 à 15, vie: 100 à 150 et prix 2000
                tabVaisseau[0] = new Vaisseau(generateurNb.Next(1, 11), (Rareté)generateurNb.Next(1, 5));
                tabVaisseau[1] = new Vaisseau(generateurNb.Next(1, 11), (Rareté)generateurNb.Next(1, 5));
                tabVaisseau[2] = new Vaisseau(generateurNb.Next(1, 11), (Rareté)generateurNb.Next(1, 5));
                tabVaisseau[3] = new Vaisseau(generateurNb.Next(1, 11), (Rareté)generateurNb.Next(1, 5));
                tabVaisseau[4] = new Vaisseau(generateurNb.Next(1, 11), (Rareté)generateurNb.Next(1, 5));
                tabVaisseau[5] = new Vaisseau(generateurNb.Next(1, 11), (Rareté)generateurNb.Next(1, 5));
                tabVaisseau[6] = new Vaisseau(generateurNb.Next(1, 11), (Rareté)generateurNb.Next(1, 5));
                tabVaisseau[7] = new Vaisseau(generateurNb.Next(1, 11), (Rareté)generateurNb.Next(1, 5));
                tabVaisseau[8] = new Vaisseau(generateurNb.Next(1, 11), (Rareté)generateurNb.Next(1, 5));
                tabVaisseau[9] = new Vaisseau(generateurNb.Next(1, 11), (Rareté)generateurNb.Next(1, 5));

                switch (nom)
                {
                    case 1: nomlettre = "Faucon"; break;
                    case 2: nomlettre = "Concordia"; break;
                    case 3: nomlettre = "PrototypeXMT093"; break;
                    case 4: nomlettre = "Nebula"; break;
                    case 5: nomlettre = "Gamora"; break;
                    case 6: nomlettre = "StarShip"; break;
                    case 7: nomlettre = "ProgIsARandomThing"; break;
                    case 8: nomlettre = "IDKHowItWorkButItWork"; break;
                    case 9: nomlettre = "NothingWork"; break;
                    case 10: nomlettre = "MixOfStaticVoidAndStructEqualBullShit"; break;

                }

                if (rareté == Rareté.Commun)
                {
                    vitesse = generateurNb.Next(10, 16);
                    prix = 2000;
                    vie = generateurNb.Next(100, 151);
                }
                else if (rareté == Rareté.Rare)
                {
                    vitesse = generateurNb.Next(12, 26);
                    prix = 4500;
                    vie = generateurNb.Next(140, 251);
                }
                else if (rareté == Rareté.Épique)
                {
                    vitesse = generateurNb.Next(23, 46);
                    prix = 8000;
                    vie = generateurNb.Next(200, 601);
                }
                else if (rareté == Rareté.Légendaire)
                {
                    vitesse = generateurNb.Next(550, 2001);
                    prix = 20000;
                    vie = generateurNb.Next(100, 151);
                }
            }
示例#6
0
 public Vaisseau(string _nom) : this()
 {
     tabVaisseau = new Vaisseau[20];
     nom         = _nom;
     for (int i = 0; i < tabVaisseau.Length; i++)
     {
         tabVaisseau[i] = new Vaisseau(generateur.Next(10, 111), generateur.Next(100, 2001), generateur.Next(2000, 20001));
     }
 }
示例#7
0
 static void CreerTableau()
 {
     Vaisseau[] tabVaisseau = new Vaisseau[10];
     for (int i = 0; i < tabVaisseau.Length; i++)
     {
         tabVaisseau[i] = new Vaisseau (Generateur.Next(10, 16), Generateur.Next(12, 24), Generateur.Next(23, 44), Generateur.Next(40, 69));
     }
     AfficherInfoVaisseau(ref tabVaisseau);
 }
示例#8
0
    void setActiveVaisseau(string name, GameObject model)
    {
        int        index        = searchIndexVaisseau(name);
        GameObject vaisseau     = vaisseaux[index];
        Vaisseau   infovaisseau = vaisseau.GetComponent <Vaisseau>();

        player.GetComponent <Information>().vaisseau_actif = infovaisseau;
        player.GetComponent <Information> ().model         = model.name;
        Debug.Log(player.GetComponent <Information> ().model);
    }
        public void TestAtterrirFonctionne()
        {
            Vaisseau vaisseau = new Vaisseau();

            vaisseau.AltitudeInitiale = 500;

            //vaisseau.Decoller();
            vaisseau.Atterrir();

            Assert.IsTrue(vaisseau.Altitude == 0, "Ici l'altitude doit être à zéro après avoir atterri");
        }
        public void TestAtterrirNeFonctionnePasSiPasDecollerDabord()
        {
            Vaisseau vaisseau = new Vaisseau();

            vaisseau.AltitudeInitiale = 0;

            Assert.ThrowsException <AltitudeException>(() =>
            {
                vaisseau.Atterrir();
            });
        }
示例#11
0
        public override void Attaque(Vaisseau v)
        {
            int degats = 0;

            foreach (Arme a in this.armes)
            {
                degats += a.Tir();
            }
            Console.WriteLine(this + (" -" + degats + "-> ").PadRight(7, ' ') + v);

            v.Endommage((int)(degats));
        }
示例#12
0
    int searchIndexVaisseau(string name)
    {
        int result = -1;

        for (int i = 0; i < vaisseaux.Length; i++)
        {
            Vaisseau info = vaisseaux[i].GetComponent <Vaisseau> ();
            if (info.nom.Equals(name) == true)
            {
                result = i;
                return(result);
            }
        }
        return(result);
    }
        public Missile CreateMissile(Vaisseau v, bool isEnnemi)
        {
            var pos       = new Vector2(v.Position.X, v.Position.Y);
            var direction = new Vector2(0, 3);

            if (!isEnnemi)
            {
                direction *= -1;
                pos.Y     -= 10;
            }
            else
            {
                pos.Y += 10;
            }


            return(this.CreateMissile(pos, direction));
        }
示例#14
0
        List <Vaisseau> IAptitude.Utilise(List <Vaisseau> listVaisseau)
        {
            if (EstDetruit())
            {
                return(listVaisseau);
            }

            Random rnd = new Random();
            int    v1  = rnd.Next(0, listVaisseau.Count());
            int    v2  = rnd.Next(0, listVaisseau.Count());

            Vaisseau tmp = listVaisseau[v1];

            listVaisseau[v1] = listVaisseau[v2];
            listVaisseau[v2] = tmp;

            return(listVaisseau);
        }
示例#15
0
        public override void Attaque(Vaisseau v)
        {
            if (EstDetruit())
            {
                return;
            }

            int    degats = 0;
            double bonus  = 1;

            foreach (Arme a in this.armes)
            {
                if (a.instanceType == Arme.Type.Direct)
                {
                    bonus = (int)a.tempsRecharge;
                }
                degats += a.Tir();
            }
            Console.WriteLine(this + (" -" + degats + "-> ").PadRight(7, ' ') + v);

            v.Endommage((int)(degats));
        }
示例#16
0
        public override void Attaque(Vaisseau v)
        {
            if (EstDetruit())
            {
                return;
            }

            int degats = 0;

            //foreach (Arme a in this.armes) {
            //    degats += a.Tir();
            //}

            // TP 2 Q 2.D Viper ne peut tirer qu'avec une seule arme à la fois on va donc
            // choisir aléatoirement une arme dans la liste pour tirer
            Random rnd = new Random();

            degats = armes[rnd.Next(armes.Count)].Tir();

            Console.WriteLine(this + (" -" + degats + "-> ").PadRight(7, ' ') + v);

            v.Endommage((int)(degats));
        }
示例#17
0
 public Wait(Vaisseau v, int dur) : base(v, dur)
 {
 }
示例#18
0
 public ShootAndMove(Vaisseau v, int duration, int frequence, Vector2 d) : base(v, duration)
 {
     this.moving   = new Move(this.v, d, duration);
     this.shooting = new Shoot(this.v, duration, frequence);
 }
示例#19
0
 // Use this for initialization
 void Start()
 {
     rb              = GetComponent <Rigidbody>();
     vaisseau        = GetComponent <Vaisseau>();
     vitesseVaisseau = vaisseau.vaisseauStat.vitesse;
 }
示例#20
0
文件: Program.cs 项目: Dolotboy/Prog
        static void Main(string[] args)
        {
            string choix = "";
            Vaisseau[] tabVaisseau;
            Vaisseau vaisseau;
            Vaisseau ship = new Vaisseau();
            bool correct = true;
            int total = 0;
            int moyenne = 0;
            int viePlusHaute = 0;


            //CETTE COCHONERIE LA SA RENTRE PAS DANS MA TETE HELP PCQ MA QUITTÉ LE PROGRAMME CHU ÉCOEURER//    AfficherUnVaisseau(Vaisseau ship);
            while (correct)
            {
            Console.WriteLine("Choisissez une option");
            choix = Convert.ToString(Console.ReadLine());
            if (choix == "1")
            {
                    correct = false;
                for (int i = 0; i < tabVaisseau.Length; i++) // Ici il me dit que tabVaisseau est pas déclaré, mais à la ligne 83 il l'est, je comprend pas
                {
                    AfficherUnVaisseau(Vaisseau ship);
                }
            }
            else if (choix == "2")
            {
                    correct = false;
                    for (int i = 0; i < tabVaisseau.Length; i++)
                    {
                        if (vaisseau.rareté == Rareté.Légendaire)
                        {
                            Console.WriteLine("Un vaisseau légendaire trouvé"); // Écrit ceci à chaque fois qu'il trouve un vaisseau légendaire
                        }
                    }
                }
            else if (choix == "3")
            {
                    correct = false;
                    for (int i = 0; i < tabVaisseau.Length; i++)
                    {
                        if (viePlusHaute < vaisseau.vie)
                        {
                            viePlusHaute = vaisseau.vie;
                        }
                    }
                    Console.WriteLine("Les points de vies les plus élevé sont à " + viePlusHaute);
            }
            else if (choix == "4")
            {
                    correct = false;
                    for (int i = 0; i < tabVaisseau.Length; i++)
                    {
                        total += vaisseau.prix; // += rajoute à l'information qu'il y a déjà
                    }
                    moyenne = total / tabVaisseau.Length;

                    Console.WriteLine("La moyenne des prix des vaisseaux est de " + moyenne);
                }
            else if (choix == "5")
            {
                    Environment.Exit(-1);
            }

        }
示例#21
0
 public Move(Vaisseau v, Vector2 deplacement, int duration) : base(v, duration)
 {
     this.Deplacement = deplacement;
 }
示例#22
0
        static void Main(string[] args)
        {
            bool quitter = false;

            Vaisseau[] tabvente = new Vaisseau[20];
            int        choix    = 0;

            for (int i = 0; i < 20; i++)
            {
                tabvente[i].Valeurrareter = generateurNb.Next(1, 20);

                if (tabvente[i].Valeurrareter < 7)
                {
                    tabvente[i].Attaque = generateurNb.Next(20, 41);
                    tabvente[i].vie     = generateurNb.Next(100, 150);
                    tabvente[i].prix    = 2000;
                    tabvente[i].rareter = "Commun";
                }
                else if (tabvente[i].Valeurrareter >= 7 && tabvente[i].Valeurrareter < 12)
                {
                    tabvente[i].Attaque = generateurNb.Next(23, 50);
                    tabvente[i].vie     = generateurNb.Next(140, 250);
                    tabvente[i].prix    = 4500;
                    tabvente[i].rareter = "Rare";
                }


                else if (tabvente[i].Valeurrareter >= 12 && tabvente[i].Valeurrareter < 17)
                {
                    tabvente[i].Attaque = generateurNb.Next(65, 75);
                    tabvente[i].vie     = generateurNb.Next(200, 600);
                    tabvente[i].prix    = 8000;
                    tabvente[i].rareter = "Epique";
                }

                else if (tabvente[i].Valeurrareter >= 17 && tabvente[i].Valeurrareter <= 19)
                {
                    tabvente[i].Attaque = generateurNb.Next(90, 110);
                    tabvente[i].vie     = generateurNb.Next(550, 2000);
                    tabvente[i].prix    = 20000;
                    tabvente[i].rareter = "Legendaire";
                }
            }
            while (quitter == false)
            {
                AfficherMenu();
                choix = Convert.ToInt32(Console.ReadLine());
                switch (choix)
                {
                case 1: AfficherVaisseau(tabvente); break;

                case 2: checkLEG(tabvente); break;

                case 3: AfficherPlusdeATK(tabvente); break;

                case 4: CalculerMoy(tabvente); break;

                case 5: quitter = true; break;
                }
                Console.ReadKey();
            }
        }
示例#23
0
文件: Program.cs 项目: Dolotboy/Prog
        static void AfficherUnVaisseau(Vaisseau vaisseau)
        {

            Console.WriteLine($"~Nom: {vaisseau.nomlettre} ~Rareté: {vaisseau.rareté} ~Vitesse: {vaisseau.vitesse} ~Vie: {vaisseau.vie} ~Prix: {vaisseau.prix}");
        }
示例#24
0
        // TODO : handle missile direction

        public Shoot(Vaisseau v, int duration, int frequence) : base(v, duration)
        {
            this.frequence = frequence;
        }
示例#25
0
        static void Main(string[] args)
        {
            string rarete = "";
            Console.WriteLine("Veuillez la rarete du vaisseau ");
            rarete = Console.ReadLine();
            Vaisseau[] tabVai = new Vaisseau[10];
            rarete[] tabRar = new rarete[4];
        Random rnd = new Random();
        for (int i = 0; i < tabVai.Length; i++)
        {
            tabVai[i].nom = rnd.Next(1, 11);
            tabVai[i].vitesse = rnd.Next(10, 71);
            tabVai[i].vie = rnd.Next(100, 2001);
            tabVai[i].prix = rnd.Next(2000, 20001);
        }

        int choix = 0;
            Console.WriteLine(" entrer une option");
            Console.WriteLine(" 1- Afficher les vaisseaux avec toutes les caracteristiques");
            Console.WriteLine("2-verifier si un vaisseau legendaire existe");
            Console.WriteLine(" 3- trouver le vaisseau avec la vie la plus haute");
            Console.WriteLine(" 4- Afficher la moyenne des prix des vaisseaux");
            Console.WriteLine(" Quitter le programme");
            choix = Convert.ToInt32(Console.ReadLine());
             
            switch(choix)
            {
                case 1:
                    {
                        for ( int i=0; i<tabVai.Length; i++)
                        {
                            Console.WriteLine(" vaisseau " + (i + 1) + " nom: " + tabVai[i].nom + " rarete: " + tabVai[i].rarete + " vitesse: " + tabVai[i].vitesse + " vie " + tabVai[i].vie + " prix " + tabVai[i].prix);
                        }
                    }; break;
                case 2:
                    {
                        bool vaisseauLegExiste = false;
                        int cpt = 0;
                        int vaisseauLeg = 0;
                        Console.WriteLine("Quelle type de rarete voulez-vous ?");
                        vaisseauLeg = Convert.ToInt32(Console.ReadLine());
                        while (vaisseauLegExiste == false && cpt < tabVai.Length)
                        {
                            if (tabVai[cpt].rarete == vaisseauLeg)
                                vaisseauLegExiste = true;
                            else
                                cpt++;
                        }

                        if (vaisseauLegExiste)
                            Console.WriteLine("Il existe un vaisseau legendaire ");
                        else
                            Console.WriteLine("il n'existe pas de vaisseau legendaire ");
                    }; break;
                case 3:
                    {
                        int viePluHaut = 0; int position = 0;
                        for (int i = 0; i < tabVai.Length; i++)
                        {
                            if(viePluHaut<tabVai[i].vie)
                            {
                                viePluHaut = tabVai[i].vie;
                                position = i;
                            }
                        }
                        Console.WriteLine(" le vaisseau " + (position + 1) + " a une vie plus haute qui est de :" + viePluHaut);
                    };break;
                case 4:
                    {
                        int somme = 0; double moyenne = 0.0;
                        for (int i = 0; i < tabVai.Length; i++)
                        {
                            somme += tabVai[i].prix;
                        }

                        moyenne = somme / tabVai.Length;
                        Console.WriteLine("La moyenne des prix des vaisseaux est de " + moyenne);

                    };break;
                case 5:
                    {
                        Console.WriteLine(" merci! a la prochaine!");
                    };break;
                default: Console.WriteLine(" entrer un choix valide ");break;
            }
        }
示例#26
0
 public ComportementVaisseau(Vaisseau v)
 {
     this.v = v;
     this.currentComportementIndex = -1;
     this.listComportements        = new List <IBaseComportement>();
 }
示例#27
0
        private void Placing()
        {
            ConsoleKeyInfo cki;

            #region création des différents vaisseaux

            int actualVaisseau  = 0;
            int vaisseauRestant = 100;
            int vaisseauNumber  = 1;

            List <Vaisseau> flotte   = new List <Vaisseau>();
            Vaisseau        vaisseau = new Vaisseau();
            vaisseau.name     = "Porte avion";
            vaisseau.width    = 5;
            vaisseau.quantite = 1;
            flotte.Add(vaisseau);

            vaisseau.name     = "Croiseur";
            vaisseau.width    = 4;
            vaisseau.quantite = 1;
            flotte.Add(vaisseau);

            vaisseau.name     = "Contre-torpilleurs";
            vaisseau.width    = 3;
            vaisseau.quantite = 2;
            flotte.Add(vaisseau);

            vaisseau.name     = "Torpilleur";
            vaisseau.width    = 2;
            vaisseau.quantite = 1;
            flotte.Add(vaisseau);

            for (int i = 0; i < flotte.Count; i++)
            {
                vaisseauCaseCount += flotte[i].quantite;
            }

            #endregion création des différents vaisseaux

            do
            {
                int pos_x = 0;
                int pos_y = 0;
                Console.Clear();
                players.First <Player>().ToString();
                Console.WriteLine();
                int bateau_width  = 1;
                int bateau_height = flotte[actualVaisseau].width;

                bool canPlace = true;
                do
                {
                    canPlace = true;
                    //#region affichage

                    Console.Clear();

                    #region affichage de la grille de placement

                    #region affichage du fond de la grille

                    Console.BackgroundColor = ConsoleColor.DarkBlue;
                    Console.ForegroundColor = ConsoleColor.Cyan;

                    for (int x = 0; x < 10; x++)
                    {
                        for (int y = 0; y < 10; y++)
                        {
                            DrawCase(ConsoleColor.Blue, "  ");
                        }
                        Console.WriteLine();
                    }
                    Console.ResetColor();

                    #endregion affichage du fond de la grille

                    #region affichage des bateaux sur la grille

                    for (int x = 0; x < 10; x++)
                    {
                        for (int y = 0; y < 10; y++)
                        {
                            Console.SetCursorPosition(y * 2, x);
                            if (players.First <Player>().CaseIsEmpty(x, y))
                            {
                                DrawCase(ConsoleColor.Gray);
                            }
                        }
                    }

                    #endregion affichage des bateaux sur la grille

                    #region affichage du curseur sur la grille

                    for (int x = 0; x < 10; x++)
                    {
                        for (int y = 0; y < 10; y++)
                        {
                            if (y == pos_y && pos_x == x)
                            {
                                for (int index_x = 0; index_x < bateau_width; index_x++)
                                {
                                    for (int index_y = 0; index_y < bateau_height; index_y++)
                                    {
                                        Console.SetCursorPosition((y + index_y) * 2, x + index_x);
                                        if ((x + index_x >= 0 && x + index_x <= 9) && (y + index_y >= 0 && y + index_y <= 9))
                                        {
                                            if (players.First <Player>().CaseIsEmpty(x + index_x, y + index_y))
                                            {
                                                DrawCase(ConsoleColor.Red, "  ");
                                                canPlace = false;
                                            }
                                            else
                                            {
                                                DrawCase(ConsoleColor.Green, "  ");
                                            }
                                        }
                                        else
                                        {
                                            canPlace = false;
                                        }
                                    }
                                }
                            }
                        }
                        Console.WriteLine();
                    }

                    #endregion affichage du curseur sur la grille

                    Console.ResetColor();

                    #endregion affichage de la grille de placement

                    Console.SetCursorPosition(26, 1);

                    #region affichage de la liste des bateaux

                    Console.SetCursorPosition(26, 0);
                    Console.BackgroundColor = players.First <Player>().color;
                    Console.ForegroundColor = ConsoleColor.Black;
                    Console.Write(" [{0}] ", players.First <Player>().name);
                    Console.ResetColor();
                    Console.SetCursorPosition(26, 1);
                    Console.Write(" Qnt\tTaille\tNom");
                    for (int i = 0; i < flotte.Count; i++)
                    {
                        // Verification que le curseur n'est pas sur un emplacement avec aucun bateau restant
                        if (i == actualVaisseau && flotte[i].quantite == 0)
                        {
                            actualVaisseau++;
                        }
                        Console.SetCursorPosition(26, 2 + i);
                        if (flotte[i].quantite <= 0)
                        {
                            Console.BackgroundColor = ConsoleColor.DarkRed;
                        }
                        if (actualVaisseau == i)
                        {
                            Console.BackgroundColor = ConsoleColor.Gray;
                            Console.ForegroundColor = ConsoleColor.Black;
                        }
                        Console.WriteLine(" {0}\t{1}\t{2}\t", flotte[i].quantite, flotte[i].width, flotte[i].name);
                        Console.ResetColor();
                    }

                    #endregion affichage de la liste des bateaux

                    Console.SetCursorPosition(0, 12);

                    Console.WriteLine("\tZQSD pour vous deplacer");
                    Console.WriteLine("\tR pour tourner");
                    Console.WriteLine("\ttab pour changer de vaisseau");
                    //Console.WriteLine("{0}:{1} La case actuel contient {2}", pos_x + 1, pos_y + 1, players.First<Player>().grille[pos_x, pos_y]);

                    #region message d'information pour le placement

                    Console.WriteLine();
                    Console.Write("\t");
                    if (canPlace == false)
                    {
                        Console.BackgroundColor = ConsoleColor.Red;
                        Console.ForegroundColor = ConsoleColor.Black;
                        Console.WriteLine("Impossible de placer ce bateau ici");
                        Console.ResetColor();
                    }
                    else
                    {
                        Console.BackgroundColor = ConsoleColor.Green;
                        Console.ForegroundColor = ConsoleColor.Black;
                        Console.WriteLine("Appuyer sur entrer plus valider l'emplacement");
                        Console.ResetColor();
                    }

                    #endregion message d'information pour le placement

                    #region gestion des inputs de l'utilisateur

                    cki = Console.ReadKey();
                    switch (cki.Key.ToString().ToLower())
                    {
                    case "uparrow":
                    case "z":
                        pos_x--;
                        break;

                    case "downarrow":
                    case "s":
                        pos_x++;
                        break;

                    case "leftarrow":
                    case "q":
                        pos_y--;
                        break;

                    case "rightarrow":
                    case "d":
                        pos_y++;
                        break;

                    case "tab":

                        do
                        {
                            actualVaisseau++;
                            if (actualVaisseau == flotte.Count)
                            {
                                actualVaisseau = 0;
                            }

                            actualVaisseau = Math.Max(Math.Min(flotte.Count - 1, actualVaisseau), 0);
                        } while (flotte[actualVaisseau].quantite == 0);

                        bateau_width  = 1;
                        bateau_height = flotte[actualVaisseau].width;

                        break;

                    case "r":
                        int temp = bateau_width;
                        bateau_width  = bateau_height;
                        bateau_height = temp;
                        break;
                    }

                    pos_x = Math.Min(Math.Max(pos_x, 0), 9);
                    pos_y = Math.Min(Math.Max(pos_y, 0), 9);

                    #endregion gestion des inputs de l'utilisateur
                } while (!((cki.Key == ConsoleKey.Enter || cki.Key == ConsoleKey.Spacebar) && canPlace == true));

                actualVaisseau = Math.Max(Math.Min(flotte.Count - 1, actualVaisseau), 0);
                if (flotte[actualVaisseau].quantite > 0)
                {
                    Vaisseau tempVaisseau = flotte[actualVaisseau];
                    tempVaisseau.quantite  = Math.Max(tempVaisseau.quantite - 1, 0);
                    flotte[actualVaisseau] = tempVaisseau;

                    #region sauvegarde du placement

                    for (int i = pos_x; i < pos_x + bateau_width; i++)
                    {
                        for (int y = pos_y; y < pos_y + bateau_height; y++)
                        {
                            players.First <Player>().grille[i, y] = vaisseauNumber;
                        }
                    }
                    vaisseauNumber++;

                    #endregion sauvegarde du placement
                }

                #region verification du nombre de bateaux restants

                vaisseauRestant = 0;
                for (int i = 0; i < flotte.Count; i++)
                {
                    vaisseauRestant += flotte[i].quantite;
                }

                #endregion verification du nombre de bateaux restants

                Console.WriteLine("Sauvegarde...");
                Thread.Sleep(200);
            } while (vaisseauRestant != 0);      // loop tant qu'il reste un vaisseau a placer
                                                 //} while (false); /////////////-------------------------------------------------------------------------------------------------------Debugage

            Transition("Au tour du joueur suivant ", players.Last <Player>().color);
        }