private void DeplacerPersonnage(PersonnageAbstrait unPersonnage, ZoneAbstraite zoneAbstraiteCible, ZoneAbstraite zoneAbstraiteSource) { unPersonnage.Position = zoneAbstraiteCible; zoneAbstraiteSource.RetirePersonnage(unPersonnage); zoneAbstraiteCible.AjoutePersonnage(unPersonnage); }
//---------------------------------------------------------------------- public void ChargerEnvironnement(FabriqueAbstraite fabrique) { ZoneAbstraite b1 = fabrique.CreerZone("b1-Depart"); ZoneAbstraite b2 = fabrique.CreerZone("b2"); ZoneAbstraite b3 = fabrique.CreerZone("b3"); ZoneAbstraite b4 = fabrique.CreerZone("b4"); ZoneAbstraite b5 = fabrique.CreerZone("b5"); AjouteZoneAbstraits(b1, b2, b3, b4, b5); AccesAbstrait ch1 = fabrique.CreerAcces(b1, b2); AccesAbstrait ch2 = fabrique.CreerAcces(b2, b3); AccesAbstrait ch3 = fabrique.CreerAcces(b3, b4); AccesAbstrait ch4 = fabrique.CreerAcces(b3, b5); AccesAbstrait ch5 = fabrique.CreerAcces(b1, b5); AccesAbstrait ch6 = fabrique.CreerAcces(b2, b4); AjouteChemins(fabrique, ch1, ch2, ch3, ch4, ch5, ch6); }
public string Simuler() { StringBuilder sb = new StringBuilder(); foreach (PersonnageAbstrait unPersonnage in PersonnagesList) { ZoneAbstraite zoneAbstraiteSource = unPersonnage.Position; var accesList = zoneAbstraiteSource.AccesAbstraitList; if (accesList.Count > 0) { ZoneAbstraite zoneAbstraiteCible = unPersonnage.ChoixZoneSuivante(accesList); DeplacerPersonnage(unPersonnage, zoneAbstraiteSource, zoneAbstraiteCible); sb.AppendFormat("{0} : {1} --> {2}\n", unPersonnage.Nom, zoneAbstraiteSource.Nom, zoneAbstraiteCible.Nom); } else { sb.AppendFormat("{0} : dans cul de sac\n", unPersonnage.Nom); } } return(sb.ToString()); }
public abstract void DeplacerPersonnage(PersonnageAbstrait personnage, ZoneAbstraite zoneSource, ZoneAbstraite zoneDestination);
protected AccesAbstrait(ZoneAbstraite debut, ZoneAbstraite fin) { }