//Vérifie si toutes les positions du navire sont touchées bool bateauEstCoule(Navire nav) { bool estCoule = true; for (int p = 0; p < nav._pos.Length && estCoule == true; ++p) { if (nav._pos[p]._estTouche == false) { estCoule = false; } } return(estCoule); }
//Trouver où cette position est (son indice) dans le tableau de positions du navire. int trouverIndicePosition(Navire nav, Pos p) { int indice = 0; while ((nav._pos[indice]._x != p._x || nav._pos[indice]._y != p._y) && indice < nav._pos.Length) { ++indice; } if (indice >= nav._pos.Length) { //position non trouvée return(-1); } return(indice); }
private void Form1_Load(object sender, EventArgs e) { _chargementencours = true; Navire navire = new Navire(1, "K34"); _blocActuel = new Bloc(4444, navire, "0112", new DateTime(2017, 01, 01), new DateTime(2017, 01, 01), new DateTime(2018, 01, 01), true, true, true, "", true, true); cb_dateDebut.Items.Add(""); cb_dateFin.Items.Add(""); cb_dateDebut.SelectedIndex = 0; cb_dateFin.SelectedIndex = 0; rbt_pm.PerformClick(); _chargementencours = false; }
//Analyse le tir et retourne un message selon le protocol établi avec le client String analyserTir(Pos tir) { String resultat = ""; //vérifie si l'espace est occupée if (CaseTireeEstOccupee(tir)) { //Trouver le navire attaqué dans la flotte attaquée Navire navireAttaque = trouverNavireAttaque(nombateauToucheEst(tir)); //marquer le navire touché toucherBateau(navireAttaque, tir); //Vérifie si navire est coulé if (bateauEstCoule(navireAttaque)) { //marquer le navire coulé navireAttaque._estCoule = true; //Vérifie si tous les bateaux coulés _partieEstFinie = PartieEstTerminee(_flotteAttaquee); resultat = "Coule=" + navireAttaque.ToPos(); if (_partieEstFinie) { resultat = "" + tir._x + tir._y; //position qui a fait ganger } } else { //touché, non coulé resultat = "Touche=" + tir._x + tir._y; } } else { resultat = "Manque=" + tir._x + tir._y; } return(resultat); }
static void Main(string[] args) { Navire monNavire = new Navire("2321", "BlackPearl", "BP", 200); Console.WriteLine(monNavire.NomNavire + " " + monNavire.QteFret); List<Stockage> Stockages = new List<Stockage>(); Stockages.Add(new Stockage(200)); Stockages.Add(new Stockage(200)); Stockages.Add(new Stockage(200)); Port unPort = new Port(Stockages); unPort.dechargement(monNavire); Console.WriteLine(monNavire.NomNavire + " " + monNavire.QteFret); Console.WriteLine("End."); Console.Read(); }
void toucherBateau(Navire nav, Pos p) { int indice = trouverIndicePosition(nav, p); nav._pos[indice]._estTouche = true; }
static void Main(string[] args) { #region CHARGER DONNEES List <Navire> collectionNavire = Persistance.ChargeNavire(); List <ZoneDeStockage> collectionStockage = Persistance.ChargeZoneDeStockage(); #endregion #region VARIABLES ==> Utilisées pour la structure WHILE (menu) int choix; bool sortir = false; #endregion #region VARIABLES ==> Utilisées pour stocker les données métiers Navire unNavire = null; ZoneDeStockage zoneDeStockage = null; string numCin, nomNavire, libelleFret; int quantiteFret, numZoneDeStockage, capaciteMaxiamelDeStockage, capaciteStockageDisponible; #endregion #region VARIABLES (dénombrements et structures itératives) #endregion #region VARIABLES DIVERSES #endregion do { Console.Clear(); textM("------------------------------------------------------------------------"); textM("0 - Sortir du programme."); textM("1 - Ajouter un Navire."); textM("2 - Ajouter une Zone de stockage."); textM("3 - Afficher la liste des navire."); textM("4 - Afficher la liste des zone de stockage."); textM("5 - Supprimer un navire."); textM("6 - Supprimer une zone de stockage."); textM("------------------------------------------------------------------------"); Console.WriteLine(""); choix = Convert.ToInt32(Console.ReadLine()); switch (choix) { case 1: Console.Clear(); textM("------------------------------------------------------------------------"); textM("Saisir le numéro CIN."); numCin = Console.ReadLine(); textM("Saisir le nom du navire."); nomNavire = Console.ReadLine(); textM("Saisir le nom de la marchandise."); libelleFret = Console.ReadLine(); textM("Saisir la quantite de marchandise."); quantiteFret = Convert.ToInt32(Console.ReadLine()); unNavire = new Navire(numCin, nomNavire); unNavire.LibelleFret = libelleFret; unNavire.QuantiteFret = quantiteFret; collectionNavire.Add(unNavire); textM("Le navire a été ajouter."); textM("------------------------------------------------------------------------"); break; case 2: textM("------------------------------------------------------------------------"); textM("Saisir le numéro de la zone de stockage."); numZoneDeStockage = Convert.ToInt32(Console.ReadLine()); textM("Saisir la capactité de stockage maximale."); capaciteMaxiamelDeStockage = Convert.ToInt32(Console.ReadLine()); textM("Saisir la capacite de stockage disponible."); capaciteStockageDisponible = Convert.ToInt32(Console.ReadLine()); zoneDeStockage = new ZoneDeStockage(numZoneDeStockage, capaciteMaxiamelDeStockage); zoneDeStockage.CapaciteStockageDisponible = capaciteStockageDisponible; collectionStockage.Add(zoneDeStockage); textM("La zone de stockage a été ajouter."); textM("------------------------------------------------------------------------"); break; case 3: Console.Clear(); AffichageCollectionNavire(collectionNavire); Console.ReadKey(); break; case 4: Console.Clear(); AffichageCollectionZoneDeStockage(collectionStockage); Console.ReadKey(); break; case 5: Console.Clear(); AffichageCollectionNavire(collectionNavire); textM("------------------------------------------------------------------------"); textM("Saisir le numéros "); numCin = Console.ReadLine(); textM("------------------------------------------------------------------------"); break; case 0: #region SAUVEGARDE DES DONNEES Persistance.Sauvegarde(collectionNavire); Persistance.Sauvegarde(collectionStockage); #endregion sortir = true; break; default: sortir = true; break; } } while (!sortir); }
static void Main(string[] args) { bool continuer = true; bool trouve; string noCIN, nomNavire, libelleFret; int quantiteFret; int numZoneStockage, capaciteStockageMaximale, capaciteStockageDisponible; Navire unNavire; ZoneDeStockage uneZoneDeStockage; List <Navire> collectionNavire = Persistance.ChargeNavire(); List <ZoneDeStockage> collectionZoneDeStockage = Persistance.ChargeZoneDeStockage(); if (collectionNavire == null) { collectionNavire = new List <Navire>(); } if (collectionZoneDeStockage == null) { collectionZoneDeStockage = new List <ZoneDeStockage>(); } do { Console.WriteLine("\t0. Sauvegarder et fermer l'application"); Console.WriteLine(); Console.WriteLine("\t1. Ajouter un navire"); Console.WriteLine("\t2. Supprimer un navire"); Console.WriteLine(); Console.WriteLine("\t3. Ajouter une zone de fret"); Console.WriteLine("\t4. Supprimer une zone de fret"); Console.WriteLine(); Console.WriteLine("\t5. Afficher les informations des navires"); Console.WriteLine("\t6. Afficher les informations des zones de stockages"); string choixUtilisateur = Console.ReadLine(); Console.Clear(); switch (choixUtilisateur) { case "0": Persistance.Sauvegarde(collectionNavire); Persistance.Sauvegarde(collectionZoneDeStockage); continuer = false; break; case "1": Console.WriteLine("Quel est son numéro:"); noCIN = Console.ReadLine(); Console.WriteLine("\nQuel est son nom:"); nomNavire = Console.ReadLine(); Console.WriteLine("\nQuel est le nom de la marchandise:"); libelleFret = Console.ReadLine(); Console.WriteLine("\nQuel est la quantité de marchandise:"); quantiteFret = Convert.ToInt32(Console.ReadLine()); unNavire = new Navire(noCIN, nomNavire); unNavire.LibelleFret = libelleFret; unNavire.QuantiteFret = quantiteFret; collectionNavire.Add(unNavire); break; case "2": Console.WriteLine("Quel est le nom du navire à supprimer:"); nomNavire = Console.ReadLine(); Console.WriteLine(); trouve = false; foreach (Navire navire in collectionNavire) { if (navire.NomNavire == nomNavire) { collectionNavire.Remove(navire); Console.WriteLine($"Le navire \"{nomNavire}\" à bien été supprimé !"); trouve = true; break; } } if (!trouve) { Console.WriteLine("Le navire spécifié n'a pas été trouvé"); } Console.ReadKey(); break; case "3": Console.WriteLine("Quel est son numéro de zone de stockage:"); numZoneStockage = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("\nQuel est sa capacité de stockage max:"); capaciteStockageMaximale = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("\nQuel est sa capacité de stockage disponible:"); capaciteStockageDisponible = Convert.ToInt32(Console.ReadLine()); uneZoneDeStockage = new ZoneDeStockage(numZoneStockage, capaciteStockageMaximale); uneZoneDeStockage.CapaciteStockageDisponible = capaciteStockageDisponible; collectionZoneDeStockage.Add(uneZoneDeStockage); break; case "4": Console.WriteLine("Quel est le numéro de la zone de stockage à supprimer:"); numZoneStockage = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(); trouve = false; foreach (ZoneDeStockage zoneDeStockage in collectionZoneDeStockage) { if (zoneDeStockage.NumZoneStockage == numZoneStockage) { collectionZoneDeStockage.Remove(zoneDeStockage); Console.WriteLine($"La zone de stockage \"{numZoneStockage}\" à bien été supprimé !"); trouve = true; break; } } if (!trouve) { Console.WriteLine("La zone de stockage spécifié n'a pas été trouvé"); } Console.ReadKey(); break; case "5": foreach (Navire navire in collectionNavire) { Console.WriteLine($"\tNo {navire.NoCIN}\tNom: {navire.NomNavire}\tMarchandise: {navire.LibelleFret}\tQte March.: {navire.QuantiteFret}"); } Console.ReadKey(); break; case "6": foreach (ZoneDeStockage zoneDeStockage in collectionZoneDeStockage) { Console.WriteLine($"\tNo {zoneDeStockage.NumZoneStockage}\tCapacité max: {zoneDeStockage.CapaciteStockageMaximale}\tCapacité dispo: {zoneDeStockage.CapaciteStockageDisponible}"); } Console.ReadKey(); break; } Console.Clear(); } while (continuer); }
/// <summary> /// Cette méthode guide l'usager pour qu'il place un bateau et limite ses actions pour que ça convienne au bateau courant /// </summary> /// <param name="navire"></param> private void placerBateaux(Navire navire) { ecrireAuLog("Veuillez placer votre " + navire._nom + " (" + navire._pos.Length + ")"); nomBateauCourant = navire._nom; grandeurBateauCourant = navire._pos.Length; }