//constructeur public Salle(int largeur, int hauteur, String contenu) { string[] nomR; _tableauTuiles = new Tuile[hauteur, largeur]; _largeur = largeur; _hauteur = hauteur; for (int i = 0; i < _hauteur; i++) { for (int j = 0; j < _largeur; j++) { int idx = i * _largeur + j; Tuile.TypeTuile type; switch (contenu[idx]) { //MUR case 'X': type = Tuile.TypeTuile.MUR; nomR = new string[] { "mur.png" }; break; case 'T': type = Tuile.TypeTuile.MUR; nomR = new string[] { "sol.png", "table_basse.png" }; break; //COFFRE case 'F': type = Tuile.TypeTuile.COFFRE_FERME; nomR = new string[] { "sol.png", "coffre_fermé.png" }; break; case 'O': type = Tuile.TypeTuile.COFFRE_OUVERT; nomR = new string[] { "sol.png", "coffre_ouvert.png" }; break; //SOL case 'S': type = Tuile.TypeTuile.SOL; nomR = new string[] { "sol.png", "sang1.png" }; break; case 'C': type = Tuile.TypeTuile.SOL; nomR = new string[] { "sol.png", "crane.png" }; break; case '.': default: type = Tuile.TypeTuile.SOL; nomR = new string[] { "sol.png" }; break; } _tableauTuiles[i, j] = new Tuile(type, j * Tuile.LARGEUR, i * Tuile.HAUTEUR, nomR); } } }
/// <summary> /// Est ce qu'on peut se déplacer en x,y ? /// </summary> /// <param name="x">x dans la salle</param> /// <param name="y">y dans la salle</param> /// <returns></returns> public bool estTraversable(int x, int y) { if (x < 0 || x > _largeur || y < 0 || y > _hauteur) { return(false); } Tuile destination = _tableauTuiles[y, x]; return(destination.estTraversable()); }
/// <summary> /// Y'a t'il un coffre fermé en x,y ? /// </summary> /// <param name="x">x dans la salle</param> /// <param name="y">y dans la salle</param> /// <returns></returns> public bool coffreFermé(int x, int y) { //faut être dans les limites de la salle if (x < 0 || x > _largeur || y < 0 || y > _hauteur) { return(false); } Tuile destination = _tableauTuiles[y, x]; return(destination.coffreFermé()); }