예제 #1
0
        public void añadir_bitmon(Bitmon bitmon)
        {
            lista_bitmons_totales.Add(bitmon);
            string sigla = bitmon.GetNombre().Substring(0, 3);
            int    x     = bitmon.GetPosicion()[0];
            int    y     = bitmon.GetPosicion()[1];

            if (GetMapa().GetTablero()[x, y, 1] == "   ")
            {
                mapa.SetBitmon(sigla, x, y, 1);
            }

            else if (GetMapa().GetTablero()[x, y, 2] == "   ")
            {
                mapa.SetBitmon(sigla, x, y, 2);
            }
        }
예제 #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);
        }
예제 #3
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}");
        }