//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); } }
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); }
/*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); } }
// 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; } }
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}"); }
//Funcion que imprime el tablero en pantalla y da acceso a el map que es privado public Mapa GetMapa() { mapa.GetTablero(); return(mapa); }