public ZoneAbstraite(string nom, Position p, int i) { this.nom = nom; this.point = p; this.id = i; this.Walkable = true; }
public ZoneAbstraite GetZone(Position p) { foreach (ZoneAbstraite z in zones) { if (z.point.X == p.X && z.point.Y == p.Y) return z; } return null; }
public override PlateauDeJeu CreerPlateau() { PlateauDeJeu plateau = new PlateauDeJeu(MapType.labyrinthe); //creer adjacent et case Zone actuelle = null; Zone ancienne = null; Acces lien = null; Position p = null; int h = 0; int j = 0; for (int i = 0; i < Parametres.nbCases; i++) { if (h >= Parametres.nbColonne) { h = 0; j++; } p = new Position(h, j); actuelle = (Zone)CreerZone("Zone " + i, p, i); plateau.AjoutZone((ZoneAbstraite)actuelle); if (ancienne != null) { lien = (Acces)CreerAcces((ZoneAbstraite)actuelle, (ZoneAbstraite)ancienne); plateau.AjoutAcces((AccesAbstrait)lien); } ancienne = actuelle; h++; } List<ZoneAbstraite> liste = plateau.zones; ZoneAbstraite za; foreach (Zone z in liste) { if (z.point.Y != 0) { za = (ZoneAbstraite)plateau.GetZone(new Position(z.point.X, z.point.Y - 1)); if (za != null) { lien = (Acces)CreerAcces((ZoneAbstraite)z, za); plateau.AjoutAcces((AccesAbstrait)lien); } za = null; } if (z.point.Y != Parametres.nbColonne - 1) { za =(ZoneAbstraite)plateau.GetZone(new Position(z.point.X, z.point.Y + 1)); if (za != null) { lien = (Acces)CreerAcces((ZoneAbstraite)z, za); plateau.AjoutAcces((AccesAbstrait)lien); } za = null; } } return plateau; }
public override bool AreNeighbour(Position z) { if (z == null) return false; /* if ((this.z1.point.X == z.X && this.z1.point.Y == z.Y) && (this.z2.point.X == z.X && this.z2.point.Y == z.Y) && CanBeUse) return true; */ if (((z.X == z1.point.X) && (z.Y == z1.point.Y) || (z.X == z2.point.X) && (z.Y == z2.point.Y)) && canBeUse) return true; return false; }
public List<ZoneAbstraite> GetNeighbourZones(Position p) { List<ZoneAbstraite> liste = new List<ZoneAbstraite>(); foreach (AccesAbstrait a in acces) { if(a.AreNeighbour(p)) { if (a.z1.point.X == p.X && a.z1.point.Y == p.Y) liste.Add(a.z2); if (a.z2.point.X == p.X && a.z2.point.Y == p.Y) liste.Add(a.z1); } } return liste; }
public Position GetStartZone(int i) { Position p = null; bool found = false; while (!found) { int x, y; Random rdm = new Random(DateTime.Now.Millisecond + i); x = rdm.Next(0, Parametres.nbColonne); y = rdm.Next(0, Parametres.nbLigne); p = new Position(x, y); if (game.Plateau.GetZone(p).Walkable) found = true; } return p; }
public override ZoneAbstraite CreerZone(string nom, Position p, int i) { return new Zone(nom, p, i); }
public QueteZone(string nom, Position p) { Libelle = nom; zoneATrouver = p; Type = TypeQuete.TrouverCase; }
public Case(string nom, Position p, int i) : base(nom, p, i) { }
public override PlateauDeJeu CreerPlateau() { PlateauDeJeu plateau = new PlateauDeJeu(MapType.labyrinthe); //creer adjacent et case Case actuelle = null; Case ancienne = null; Adjacent lien = null; Position p = null; int h = 0; int j = 0; for (int i = 0; i < Parametres.nbCases; i++) { if (h >= Parametres.nbColonne) { h = 0; j++; } p = new Position(h, j); actuelle = (Case)CreerZone("Zone " + i, p, i); plateau.AjoutZone((ZoneAbstraite)actuelle); if (ancienne != null) { lien = (Adjacent)CreerAcces((ZoneAbstraite)actuelle, (ZoneAbstraite)ancienne); plateau.AjoutAcces((AccesAbstrait)lien); } ancienne = actuelle; h++; } List<ZoneAbstraite> liste = plateau.zones; ZoneAbstraite za; foreach (Case z in liste) { if (z.point.Y != 0) { za = (ZoneAbstraite)plateau.GetZone(new Position(z.point.X, z.point.Y - 1)); if (za != null) { lien = (Adjacent)CreerAcces((ZoneAbstraite)z, za); plateau.AjoutAcces((AccesAbstrait)lien); } za = null; } if (z.point.Y != Parametres.nbColonne - 1) { za = (ZoneAbstraite)plateau.GetZone(new Position(z.point.X, z.point.Y + 1)); if (za != null) { lien = (Adjacent)CreerAcces((ZoneAbstraite)z, za); plateau.AjoutAcces((AccesAbstrait)lien); } za = null; } } Random rdm = new Random(DateTime.Now.Millisecond); for (int i = 0; i < 10; i++) { plateau.zones[rdm.Next(0, Parametres.nbCases)].Walkable = false; } return plateau; }
public abstract ZoneAbstraite CreerZone(string nom, Position p, int i);
public abstract bool AreNeighbour(Position z);