Ejemplo n.º 1
0
        /*
         *  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);
        }
Ejemplo n.º 2
0
        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++);
            }
        }