public Fourmiliere(int _dimensionX, int _dimensionY) { TitreApplication = "Simulateur fourmilière ALAP"; vitesse = 200; this.DimensionX = _dimensionX; this.DimensionY = _dimensionY; Fabrique = new FabriqueFourmiliere(); PersonnagesList = new ObservableCollection <PersonnageAbstrait>(); PersonnagesMortList = new ObservableCollection <PersonnageAbstrait>(); coordMaison = Fabrique.CreerPosition(10, 10); AjouterReine(); //PersonnagesList.Add(Fabrique.CreerGuerriere("Guerriere 0")); //PersonnagesList.Add(Fabrique.CreerOuvriere("Ouvriere 0", Fabrique.CreerPosition(10, 10))); //PersonnagesList.Add(Fabrique.CreerTermite("Termite 0")); //PersonnagesList.Add(Fabrique.CreerTermite(String.Format("Termite {0}", PersonnagesList.Count), Fabrique.CreerPosition(3, 3), Fabrique.CreerPosition(positionX, positionY))); ListObservateur = new List <PersonnageAbstrait>(); ObjetList = new ObservableCollection <ObjetAbstrait>(); ZoneList = new ObservableCollection <ZoneAbstrait>(); meteo = new Meteo(); meteo.ListObservateur = new List <PersonnageAbstrait>(); //place des morceaux de nourriture sous la reine pour qu'elle puisse pondre dès le début... //plus besoin de faire spawn de fourmis for (int i = 0; i < 50; i++) { ObjetList.Add(new MorceauNourriture("Morceau N°" + i, Fabrique.CreerPosition(10, 10))); } InitZones(); }
public MainWindow() { InitializeComponent(); var fabrique = new FabriqueFourmiliere("Master fabrique"); var fourmiliere = new Fourmiliere(fabrique); DataContext = this; }
public void PondreOeuf() { FabriqueFourmiliere fabrique = new FabriqueFourmiliere(); CoordonneesAbstrait pos = new Coordonnees(); pos.X = Position.X + Fourmiliere.Hazard.Next(-1, 2); pos.Y = Position.Y + Fourmiliere.Hazard.Next(-1, 2); oeufPondu = (Oeuf)fabrique.CreerOeuf(String.Format("Oeuf N° {0}", zone.ObjetList.Where(x => x.GetType().Equals(typeof(Oeuf))).Count()), pos); AjouterEtape(0, String.Format("Je pond un oeuf en X={0}, Y={1}", pos.X, pos.Y), Position.X, Position.Y); }
public MasterViewModel(FabriqueFourmiliere fabriqueFourmiliere, Fourmiliere fourmiliere) { this._fabriqueFourmiliere = fabriqueFourmiliere; this._fourmiliere = fourmiliere; this._fourmis = new ObservableCollection <FourmiViewModel>(); this._combatantes = new ObservableCollection <CombatanteViewModel>(); this._cueilleuses = new ObservableCollection <CueilleuseViewModel>(); foreach (var personnageAbstrait in this._fourmiliere.PersonnagesList) { if (personnageAbstrait.Nom == "fourmi") { var fourmi = (Fourmi)personnageAbstrait; this._fourmis.Add(new FourmiViewModel(fourmi)); } if (personnageAbstrait.Nom == "combatante") { var combatante = (Combatante)personnageAbstrait; this._combatantes.Add(new CombatanteViewModel(combatante)); } if (personnageAbstrait.Nom == "cueilleuse") { var cueilleuse = (Cueilleuse)personnageAbstrait; this._cueilleuses.Add(new CueilleuseViewModel(cueilleuse)); } } this._collectionFourmisView = CollectionViewSource.GetDefaultView(this._fourmis); if (this._collectionFourmisView == null) { throw new NullReferenceException("collectionViewFourmi"); } this._collectionFourmisView.CurrentChanged += new EventHandler(this.OnCollectionViewCurrentChangedFourmi); this._collectionCueilleusesView = CollectionViewSource.GetDefaultView(this._cueilleuses); if (this._collectionCueilleusesView == null) { throw new NullReferenceException("collectionViewCueilleuse"); } this._collectionCueilleusesView.CurrentChanged += new EventHandler(this.OnCollectionViewCurrentChangedCueilleuse); this._collectionCombatantesView = CollectionViewSource.GetDefaultView(this._combatantes); if (this._collectionCombatantesView == null) { throw new NullReferenceException("collectionViewCombatante"); } this._collectionCombatantesView.CurrentChanged += new EventHandler(this.OnCollectionViewCurrentChangedCombatante); }
public override List <Evenement> executer(PersonnageAbstrait personnage, EnvironnementAbstrait env) { FabriqueAbstraite fabriqueFourmiliere = new FabriqueFourmiliere(); List <Evenement> evenements = new List <Evenement>(); if (env.fourmiliere.valeurNutritiveTotalFourmiliere >= 2) { Console.Write("Ponte oeuf/n"); Random r = new Random((int)DateTime.Now.Ticks); int rnd = r.Next((int)FourmiliereConstante.typeFourmie.oeufFourmiOuvriere, (int)FourmiliereConstante.typeFourmie.oeufFourmiChaman); env.AjouterPersonnage(fabriqueFourmiliere.creerPersonnage("oeuf" + FabriqueFourmiliere.id, rnd, env.fourmiliere.position, env)); evenements.Add(new Evenement(personnage, (int)FourmiliereConstante.typeEvenement.pondreOeuf)); env.fourmiliere.valeurNutritiveTotalFourmiliere -= 2; } return(evenements); }
public override List <Evenement> executer(PersonnageAbstrait personnage, EnvironnementAbstrait env) { FabriqueAbstraite fabriqueFourmiliere = new FabriqueFourmiliere(); List <Evenement> evenements = new List <Evenement>(); if (personnage.GetType() == typeof(Oeuf)) { Oeuf oeuf = (Oeuf)personnage; oeuf.timer--; if (oeuf.timer == 0) { evenements.Add(new Evenement(personnage, (int)FourmiliereConstante.typeEvenement.eclore)); oeuf.pointDeVie = 0; } } return(evenements); }
static void Main(string[] args) { Console.WriteLine("----- Fourmilière -----"); FabriqueAbstraite uneFabrique = new FabriqueFourmiliere(); EnvironnementAbstrait fourmiPalace = uneFabrique.CreerEnvironment(); fourmiPalace.ChargerEnvironnement(uneFabrique); fourmiPalace.ChargerPersonnages(uneFabrique); Console.WriteLine(fourmiPalace.Statistiques()); for (int i = 0; i < 10; i++) { Console.WriteLine(fourmiPalace.Simuler()); } Console.ReadLine(); }
static void Main(string[] args) { int compteur = 0; var fabrique = new FabriqueFourmiliere("Premiere fabrique de fourmi"); var fourmiliere = (Fourmiliere)fabrique.CreerEnvironnement(); var colonie = (BoutDeTerrain)fabrique.CreerZone("InterieurColonie"); var entreeColonie = (BoutDeTerrain)fabrique.CreerZone("EntreeColonie"); var acces = (Chemin)fabrique.CreerAcces(colonie, entreeColonie); var fourmi = (Fourmi)fabrique.CreerPersonnage("fourmi"); fourmi.Position = colonie; fourmi.Attach(new ObservateurFourmi()); var cueilleuse = (Cueilleuse)fabrique.CreerPersonnage("cueilleuse"); cueilleuse.Position = entreeColonie; cueilleuse.Attach(new ObservateurCueilleuse()); var reine = (Reine)fabrique.CreerPersonnage("reine"); reine.Position = colonie; reine.Attach(new ObservateurReine()); var combatante = (Combatante)fabrique.CreerPersonnage("combatante"); combatante.Position = entreeColonie; combatante.Attach(new ObservateurCombatante()); var oeuf = (Oeuf)fabrique.CreerObjet("oeuf"); oeuf.Position = entreeColonie; var pheromone = (Pheromone)fabrique.CreerObjet("Pheromone"); var nouritture = (Nourriture)fabrique.CreerObjet("nourriture"); var météo = (Meteo.Temps)(new Random().Next(0, 2)); switch ((int)météo) { case (int)Meteo.Temps.Soleil: break; case (int)Meteo.Temps.Pluie: fourmi.Strategie = new StrategieRentrerColonie(); cueilleuse.Strategie = new StrategieRentrerColonie(); reine.Strategie = new StrategieArreterPondre(); combatante.Strategie = new StrategieDefendreColonie(); break; } fourmiliere.AjoutePersonnage(combatante); fourmiliere.AjoutePersonnage(reine); fourmiliere.AjoutePersonnage(cueilleuse); fourmiliere.AjoutePersonnage(fourmi); fourmiliere.AjouteObjet(oeuf); fourmiliere.AjouteObjet(nouritture); fourmiliere.AjouteObjet(pheromone); fourmiliere.AjouteZoneAbstraites(colonie, entreeColonie); fourmiliere.AjouteChemins(fabrique, acces); foreach (var perso in fourmiliere.PersonnagesList) { if (perso.Nom == "fourmi") { var f = (Fourmi)perso; f.AnalyseSituation(); } if (perso.Nom == "cueilleuse") { var c = (Cueilleuse)perso; c.AnalyseSituation(); } if (perso.Nom == "reine") { var r = (Reine)perso; r.AnalyseSituation(); } if (perso.Nom == "combatante") { var c = (Combatante)perso; c.AnalyseSituation(); } } reine.Oeuf++; while (true) { if (compteur == 5 || compteur == 10) { switch ((int)météo) { case (int)Meteo.Temps.Soleil: break; case (int)Meteo.Temps.Pluie: fourmi.Strategie = new StrategieRentrerColonie(); cueilleuse.Strategie = new StrategieRentrerColonie(); reine.Strategie = new StrategieArreterPondre(); combatante.Strategie = new StrategieDefendreColonie(); break; } } Console.ReadKey(); foreach (var perso in fourmiliere.PersonnagesList) { if (perso.Nom == "fourmi") { var f = (Fourmi)perso; f.Vie -= 1; } if (perso.Nom == "cueilleuse") { var c = (Cueilleuse)perso; c.Vie -= 1; } if (perso.Nom == "reine") { var r = (Reine)perso; r.Vie -= 1; } if (perso.Nom == "combatante") { var c = (Combatante)perso; c.Vie -= 1; } } compteur++; } //fourmiliere.AjouteObjet(fabrique.CreerObjet("oeuf")); //fourmiliere.AjoutePersonnage(fabrique.CreerPersonnage("fourmi")); //var zoneFourmiliere = fabrique.CreerZone("test zone"); //var accesFourmiliere = fabrique.CreerAcces(new BoutDeTerrain("test bout de terrain debut"), new BoutDeTerrain("test bout de terrain fin")); //fourmiliere.ZonesAbstraitesList.Add(zoneFourmiliere); //fourmiliere.AccesAbstraitsList.Add(accesFourmiliere); //Console.WriteLine("Nombre de personnage : " + fourmiliere.PersonnagesList.Count); //Console.WriteLine("Nombre d'accès : " + fourmiliere.AccesAbstraitsList.Count); //Console.WriteLine("Nombre de zone : " + fourmiliere.ZonesAbstraitesList.Count); //Console.WriteLine("Nombre de zone : " + fourmiliere.ZonesAbstraitesList.Count); }