public Simulateur CréerSimulateur() { Simulateur unSimulateur = new Simulateur(); DonnéesInitialeSimulateurs donnéesXML = DonnéesXML.Réccupérer(); Random rand = new Random(); int longueur = donnéesXML.Fourmiliere.Carte.Longeur; int largeur = donnéesXML.Fourmiliere.Carte.Largeur; int i; Parcelle[,] parcelles = new Parcelle[longueur, largeur]; for (i = 0; i < longueur; i++) { for (int j = 0; j < largeur; j++) { parcelles[i, j] = new Parcelle(unSimulateur); unSimulateur.AjouterZone(parcelles[i, j]); if (i > 0) { unSimulateur.AjouterAccès(new Tunnel(parcelles[i, j], parcelles[i - 1, j])); } if (j > 0) { unSimulateur.AjouterAccès(new Tunnel(parcelles[i, j], parcelles[i, j - 1])); } } } Parcelle uneParcelleDeDépart = (unSimulateur.Zones[rand.Next(0, unSimulateur.Zones.Count)] as Parcelle); uneParcelleDeDépart.AjouterObjet(new Fourmiliere(unSimulateur, uneParcelleDeDépart)); for (i = 0; i < donnéesXML.Fourmiliere.Fourmis.Nombre; i++) { unSimulateur.AjouterPersonnage(new Fourmi(donnéesXML.Fourmiliere.Pheromones.Poids)); } i = 0; while (i < donnéesXML.Fourmiliere.Objectif.Nombre) { Parcelle uneParcelle = (unSimulateur.Zones[rand.Next(0, unSimulateur.Zones.Count)] as Parcelle); if (uneParcelle.estVide()) { uneParcelle.AjouterObjet(new Objectif(donnéesXML.Fourmiliere.Pheromones.Poids)); i++; } } unSimulateur.Interfaces.Add(new InterfaceGraphiqueFourmiliere(unSimulateur, largeur)); unSimulateur.Play(); return(unSimulateur); }
private void CreationDeLaFenetre() { if (fenetre == null) { throw new Exception("Aucune fenêtre instancié."); } var DonnéesXml = DonnéesXML.Réccupérer(); grilleDynamique.HorizontalAlignment = HorizontalAlignment.Stretch; grilleDynamique.VerticalAlignment = VerticalAlignment.Stretch; grilleDynamique.ShowGridLines = true; grilleDynamique.Background = new SolidColorBrush(Color.FromArgb(255, 240, 203, 128)); for (int i = 0; i < DonnéesXml.Fourmiliere.Carte.Largeur; i++) { grilleDynamique.ColumnDefinitions.Add(new ColumnDefinition()); } for (int i = 0; i < DonnéesXml.Fourmiliere.Carte.Longeur; i++) { grilleDynamique.RowDefinitions.Add(new RowDefinition()); } // Initialisation grille int ligne = 0; int colonne = 0; foreach (Parcelle uneCase in simulation.Zones.Cast <Parcelle>()) { TextBlock bookText = new TextBlock(); bookText.FontSize = 40; bookText.FontWeight = FontWeights.Bold; Grid.SetRow(bookText, ligne); Grid.SetColumn(bookText, colonne); bookText.HorizontalAlignment = HorizontalAlignment.Center; bookText.VerticalAlignment = VerticalAlignment.Center; grilleDynamique.Children.Add(bookText); colonne++; if (colonne >= longueurLigne) { colonne = 0; ligne++; } } Refresh(); fenetre.Content = grilleDynamique; }
public Simulateur CréerSimulateur() { Simulateur unSimulateur = new Simulateur(); DonnéesInitialeSimulateurs donnéesXML = DonnéesXML.Réccupérer(); Random rand = new Random(); int longueur = donnéesXML.JeuDeLaVie.Carte.Longeur; int largeur = donnéesXML.JeuDeLaVie.Carte.Largeur; Case[,] cases = new Case[longueur, largeur]; for (int i = 0; i < longueur; i++) { for (int j = 0; j < largeur; j++) { cases[i, j] = new Case(new Cellule(rand.Next(0, 1000) % 3 == 0 ? EtatCellule.VIVANTE : EtatCellule.MORTE)); unSimulateur.AjouterZone(cases[i, j]); unSimulateur.AjouterPersonnage(cases[i, j].Occupant); if (i > 0) { unSimulateur.AjouterAccès(new Veine(cases[i, j], cases[i - 1, j])); } if (j > 0) { unSimulateur.AjouterAccès(new Veine(cases[i, j], cases[i, j - 1])); } } } unSimulateur.Interfaces.Add(new InterfaceGraphiqueJeuDeLaVie(unSimulateur, largeur)); unSimulateur.Play(); return unSimulateur; }