public Mundo(FileInfo file) { FileStream fs = file.OpenRead(); StreamReader sr = new StreamReader(fs); StringReader str = new StringReader(sr.ReadToEnd()); CreateFromString(str); sr.Close(); string firstLine = sr.ReadLine(); string[] size = firstLine.Split(' '); tamX = int.Parse(size[0]) ; tamY = int.Parse(size[1]) ; celdas = new TypeCelda[tamX][]; for ( int i = 0 ; i < celdas.Length ; i++ ) { celdas[i] = new TypeCelda[tamY]; } for (int x = 0; x < tamX; x++) { for (int y = 0; y < tamY; y++) { celdas[x][y] = TypeCelda.Pasillo; } } sr.Close(); }
private void CreateFromString(StringReader sr) { string firstLine = sr.ReadLine(); string[] size = firstLine.Split(' '); tamX = int.Parse(size[0]); tamY = int.Parse(size[1]); celdas = new TypeCelda[tamX][]; for (int i = 0; i < celdas.Length; i++) { celdas[i] = new TypeCelda[tamY]; } puertas = new Dictionary<Point, Puerta>(); for (int y = tamY-1; y >= 0; y--) { string fila = sr.ReadLine(); string[] trozos = fila.Split(';'); int numPuerta = 1; for (int x = 0; x < tamX; x++) { switch (fila[x]) { case '#': celdas[x][y] = TypeCelda.Muro; break; case ' ': celdas[x][y] = TypeCelda.Pasillo; break; case '|': case '-': celdas[x][y] = TypeCelda.Puerta; // Añadimos la puerta puertas[new Point(x, y)] = new Puerta(int.Parse(trozos[numPuerta++])); break; default: throw new Exception("Caracter no valido"); } } } sr.Close(); // Creamos los bitmaps bitmapsCeldas = new System.Collections.Generic.Dictionary<TypeCelda, System.Drawing.Bitmap>(); bitmapsCeldas[TypeCelda.Muro] = Resources.muro; bitmapsCeldas[TypeCelda.Pasillo] = Resources.pasillo; jugadores = new List<Jugador>(); }