/* * Este metodo carga el archivo de texto con las propiedades y sus * respectivos datos, y devuelve un Diccionario formado por la * posicion y el Square correspondiente a la propiedad. */ public static Dictionary <int, Square> GenerarTableroDeArchivo(string informacion) { var result = new Dictionary <int, Square>(); string[] lineas = Properties.Resources.Propiedades.Split('\n'); Trace.WriteLine(lineas.Length); foreach (var line in lineas) { // El formato de las lineas del archivo es: // Name, Position, Price, Rent, Group var split = line.Split(','); int posicion = Convert.ToInt32(split[1]); int precio = Convert.ToInt32(split[2]); int renta = Convert.ToInt32(split[3]); Group grupo = PropiedadFactory.StringToGroup(split[4].Trim()); int positionX = Convert.ToInt32(split[5]); int positionY = Convert.ToInt32(split[6]); var propiedad = new HouseSquare(split[0], posicion, precio, renta, grupo, positionX, positionY); Trace.WriteLine(posicion); result.Add(propiedad.GetPosition(), propiedad); } return(result); }
public Board() { var propiedades = PropiedadFactory.GenerarTableroDeArchivo(Properties.Resources.Propiedades); for (int i = 0; i < squares.Length; i++) { if (i == 0) { squares[i] = new GoSquare("GO"); } else if (i == 10) { squares[i] = new JailSquare("Jail"); } else if (i == 20) { squares[i] = new VacationSquare("Vacation"); } else if (i == 30) { squares[i] = new GoToJailSquare("Go to Jail"); } else { if (propiedades.ContainsKey(i + 1)) { squares[i] = propiedades[i + 1]; } else { // Arca Comunal, Chance // TODO: Implementar esto correctamente, deberian tener // su propia clase que en el doAction eliga algo // al azar que hacer. if (posicionXCasualidades.ContainsKey(i + 1) && posicionYCasualidades.ContainsKey(i + 1)) { squares[i] = new CasualidadSquare("Casualidad", posicionXCasualidades[i + 1], posicionYCasualidades[i + 1]); } else { switch (i) { case 4: int distancia = squares[3].GetPositionX() - squares[1].GetPositionX(); squares[i] = new TaxSquare("Income Tax", squares[3].GetPositionX() + distancia / 2, 360, 200); break; case 38: distancia = squares[36].GetPositionY() - squares[37].GetPositionY(); squares[i] = new TaxSquare("Luxury Tax", squares[36].GetPositionX(), squares[37].GetPositionY() - distancia, 100); break; case 2: case 17: case 33: squares[i] = new ArcaComunalSquare("Community Chest 1", posicionXCasualidades[i + 1], posicionYCasualidades[i + 1]); break; } } } } } int z = 0; foreach (var sq in squares) { Trace.WriteLine(sq.getName() + " " + z++); } }