public void CreerSecteurs(ISecteur parent, int taille_secteur, bool encore) { double RacineDeDeuxSurDeuxR = RacineDeDeuxSurDeux * parent.Taille; CreerSecteurs( parent, (int)(parent.Centre.X - RacineDeDeuxSurDeuxR / 2), (int)(parent.Centre.Y - RacineDeDeuxSurDeuxR / 2), (int)RacineDeDeuxSurDeuxR, taille_secteur, encore); }
public void CreerSecteurs(ISecteur parent, int x_Carre, int y_Carre, int taille_Carre, int taille_secteur, bool encore) { int x_SecteurAcreer = x_Carre; int y_SecteurAcreer = y_Carre; bool lastY = false; bool stopY = false; do { bool lastX = false; bool stopX = false; do { ISecteur enfant = CreerSecteur(parent, x_SecteurAcreer, y_SecteurAcreer, taille_secteur, encore); if (encore) { CreerSecteurs(enfant, taille_secteur / 4, false); } x_SecteurAcreer += (taille_secteur); if (lastX) { stopX = true; } if (!lastX && x_SecteurAcreer > x_Carre + taille_Carre) { //x_SecteurAcreer = x_Carre + taille_Carre; lastX = true; } } while (!stopX); //x_SecteurAcreer <= x_Carre + taille_Carre); x_SecteurAcreer = 0; y_SecteurAcreer += (taille_secteur); if (lastY) { stopY = true; } if (!lastY && y_SecteurAcreer > y_Carre + taille_Carre) { //y_SecteurAcreer = y_Carre + taille_Carre; lastY = true; } } while (!stopY);//y_SecteurAcreer <= y_Carre + taille_Carre); }
private ISecteur CreerSecteur(ISecteur parent, int xSecteurAcreer, int ySecteurAcreer, int tailleSecteur, bool secteurIntermediaire) { ISecteur s = secteurIntermediaire ? (ISecteur) new Secteur() { Centre = new Coordonnees(xSecteurAcreer, ySecteurAcreer), Taille = tailleSecteur * 0.71 } : (ISecteur) new FloorSecteur() { Centre = new Coordonnees(xSecteurAcreer, ySecteurAcreer), Taille = tailleSecteur * 0.71 }; ((Secteur)parent).clSecteurs.Add(s); return(s); }