Beispiel #1
0
        //Esta funcion es para que el Taplan transforme un terreno desiertico en vegetacion
        public void Plantar(Mapa mapa)
        {
            int x = GetPosicion()[0];
            int y = GetPosicion()[1];

            string[,,] tablero = mapa.GetTablero();
            terreno            = tablero[x, y, 0];
            if (tablero[x, y, 0] == "D")
            {
                mapa.SetTerreno("V", x, y);
            }
        }
Beispiel #2
0
        public override void Movimiento(Mapa mapa)
        {
            string[,,] tablero = mapa.GetTablero();
            int cant_filas    = tablero.GetLength(0);
            int cant_columnas = tablero.GetLength(1);
            int x             = posicion[0];
            int y             = posicion[1];
            int vertical      = random.Next(-1, 2);
            int horizontal    = random.Next(-1, 2);

            //Veo si el bitmon caera fuera de los limites del mapa:
            int cont_de_escape = 0;

            while (((x + vertical) < 0) || ((y + horizontal) < 0) || ((x + vertical) >= cant_filas) || ((y + horizontal) >= cant_columnas) || (tablero[x + vertical, y + horizontal, 0] != "A"))
            {
                //condicion de escape
                if (cont_de_escape > 20)
                {
                    return;
                }


                vertical   = random.Next(-1, 2);
                horizontal = random.Next(-1, 2);
                cont_de_escape++;
            }

            int celda_antigua = celda;
            int celda_nueva   = celda;

            //Veo si esta ocupada la celda a la cual se va a mover
            while (tablero[x + vertical, y + horizontal, celda_nueva] != "   ")
            {
                //Si ya no hay mas espacio a donde se va a mover, se quedar en el mismo lugar
                if (celda_nueva == 2 && (tablero[x + vertical, y + horizontal, celda_nueva] != "   "))
                {
                    celda_nueva = celda;
                    vertical    = 0;
                    horizontal  = 0;
                    break;
                }
                celda_nueva++;
            }

            mapa.RemoveBitmon(x, y, celda_antigua);
            posicion[0] += vertical;
            posicion[1] += horizontal;
            celda        = celda_nueva;
            string sigla = tipo_De_Bitmon.Substring(0, 3);

            mapa.SetBitmon(sigla, posicion[0], posicion[1], celda_nueva);
        }
Beispiel #3
0
        /*Esta funcion es para que el Gofue transforme un terreno vegetacion en desiertico, o un terreno
         * de nieve en uno de agua:*/
        public void Secar(Mapa mapa)
        {
            int x = GetPosicion()[0];
            int y = GetPosicion()[1];

            string[,,] tablero = mapa.GetTablero();
            if (tablero[x, y, 0] == "V")
            {
                mapa.SetTerreno("D", x, y);
            }

            else if (tablero[x, y, 0] == "N")
            {
                mapa.SetTerreno("A", x, y);
            }
        }
Beispiel #4
0
        // Reduce el tiempo de vida del Bitmon dependiendo de el terreno en donde se encuentre
        public override void Envejecer(Mapa mapa)
        {
            int x = GetPosicion()[0];
            int y = GetPosicion()[1];

            string[,,] tablero = mapa.GetTablero();
            terreno            = tablero[x, y, 0];

            if (terreno == "L")
            {
                tiempo_De_Vida -= 2;
            }
            else
            {
                tiempo_De_Vida -= 1;
            }
        }
Beispiel #5
0
        public override void Movimiento(Mapa mapa)
        {
            string[,,] tablero = mapa.GetTablero();
            int cant_filas    = tablero.GetLength(0);
            int cant_columnas = tablero.GetLength(1);
            int x             = posicion[0];
            int y             = posicion[1];
            int vertical      = random.Next(-2, 3);
            int horizontal    = random.Next(-2, 3);

            //Veo si el bitmon caera fuera de los limites del mapa:
            while ((x + vertical < 0) || (y + horizontal < 0) || (x + vertical >= cant_filas) || (y + horizontal >= cant_columnas))
            {
                vertical   = random.Next(-2, 3);
                horizontal = random.Next(-2, 3);
            }
            int celda_antigua = celda;
            int celda_nueva   = celda;

            //Veo si esta ocupada la celda a la cual se va a mover
            while (tablero[x + vertical, y + horizontal, celda_nueva] != "   ")
            {
                //Si ya no hay mas espacio a donde se va a mover, se quedar en el mismo lugar
                if (celda_nueva == 2 && (tablero[x + vertical, y + horizontal, celda_nueva] != "   "))
                {
                    celda_nueva = celda;
                    vertical    = 0;
                    horizontal  = 0;
                    break;
                }
                celda_nueva++;
            }

            mapa.RemoveBitmon(x, y, celda_antigua);
            posicion[0] += vertical;
            posicion[1] += horizontal;
            celda        = celda_nueva;
            string sigla = tipo_De_Bitmon.Substring(0, 3);

            mapa.SetBitmon(sigla, posicion[0], posicion[1], celda_nueva);
            //Console.WriteLine($"Tiempo de vida Dorvalo: {tiempo_De_Vida}");
        }
Beispiel #6
0
 //Funcion que imprime el tablero en pantalla y da acceso a el map que es privado
 public Mapa GetMapa()
 {
     mapa.GetTablero();
     return(mapa);
 }