def set_ataque(self, atacante, defensor, ataque): ataque = ataque if not ataque.disponible: print("Este ataque no está disponible. Espere {} turnos".format( str(ataque.espera - ataque.turnos_espera))) return False if ataque.disponible: if not isinstance(ataque, Paralizer): mapa_enemigo = defensor.mapas_propios["M"] elif isinstance(ataque, Paralizer): mapa_enemigo = defensor.mapas_propios["A"] if not isinstance(ataque, Kamikaze): print("Atacará con {} [rango: {}] [daño: {}]".format( ataque, ataque.size, ataque.damage)) if isinstance(ataque, Kamikaze): print( "Realizará un ataque kamikaze. Su avión se destruirá si acerta al objetivo" ) coordenadas = input("Ingrese coordenadas: ") coordenada_ataque = None while not coordenada_ataque: coordenada_ataque = celdas.coord_to_index(coordenadas) ataque.coordenada_ataque = coordenada_ataque if isinstance(mapa_enemigo, MapaMar): return self.atacar_mar(atacante, ataque, mapa_enemigo) elif isinstance(mapa_enemigo, MapaAire): return self.atacar_aire(atacante, mapa_enemigo)
def explorar(self, jugador, vehiculo, defensor): ataque = vehiculo.ataques[0] coordenadas = input("Ingrese coordenadas: ") coordenada_ataque = None while not coordenada_ataque: coordenada_ataque = celdas.coord_to_index(coordenadas) ataque.coordenada_ataque = coordenada_ataque self.atacar_mar(jugador, ataque, defensor.mapas_propios["M"])
def test_coord_to_index(self): assert celdas.coord_to_index("A3") == (2, 0) assert not celdas.coord_to_index("A16") assert not celdas.coord_to_index("13B") assert not celdas.coord_to_index("AA12") assert not celdas.coord_to_index("X1") assert celdas.coord_to_index("O15") assert not celdas.coord_to_index("1234")
def posicionar_manual(self): vehiculos = self.vehiculos_disponibles for vehiculo in vehiculos.values(): while not vehiculo.pos_actual: celda = None while not celda: coordenada_ingresada = input("Ingrese coordenada para {}: ".format(vehiculo)) celda = celdas.coord_to_index(coordenada_ingresada) self.ubicar_elemento(vehiculo, celda) self.cerrar_mapa() self.mostrar_mapa(1) return True
def posicionar_manual(self): vehiculos = self.vehiculos_disponibles for vehiculo in vehiculos.values(): while not vehiculo.pos_actual: celda = None while not celda: coordenada_ingresada = input( "Ingrese coordenada para {}: ".format(vehiculo)) celda = celdas.coord_to_index(coordenada_ingresada) self.ubicar_elemento(vehiculo, celda) self.cerrar_mapa() self.mostrar_mapa(1) return True
def mover_elemento(self, vehiculo): if not isinstance(vehiculo, Lancha): direccion = input(""" Mover en dirección: Q W E A - D Z X C """).upper() if isinstance(vehiculo, Lancha): direccion = None while not direccion: direccion = celdas.coord_to_index(input(" Ingrese coordenadas de destino:")) self.ubicar_elemento(vehiculo, vehiculo.mover(direccion))
def mover_elemento(self, vehiculo): if not isinstance(vehiculo, Lancha): direccion = input(""" Mover en dirección: Q W E A - D Z X C """).upper() if isinstance(vehiculo, Lancha): direccion = None while not direccion: direccion = celdas.coord_to_index( input(" Ingrese coordenadas de destino:")) self.ubicar_elemento(vehiculo, vehiculo.mover(direccion))
def set_ataque(self, atacante, defensor, ataque): ataque = ataque if not ataque.disponible: print("Este ataque no está disponible. Espere {} turnos".format(str(ataque.espera - ataque.turnos_espera))) return False if ataque.disponible: if not isinstance(ataque, Paralizer): mapa_enemigo = defensor.mapas_propios["M"] elif isinstance(ataque, Paralizer): mapa_enemigo = defensor.mapas_propios["A"] if not isinstance(ataque, Kamikaze): print("Atacará con {} [rango: {}] [daño: {}]".format(ataque, ataque.size, ataque.damage)) if isinstance(ataque, Kamikaze): print("Realizará un ataque kamikaze. Su avión se destruirá si acerta al objetivo") coordenadas = input("Ingrese coordenadas: ") coordenada_ataque = None while not coordenada_ataque: coordenada_ataque = celdas.coord_to_index(coordenadas) ataque.coordenada_ataque = coordenada_ataque if isinstance(mapa_enemigo, MapaMar): return self.atacar_mar(atacante, ataque, mapa_enemigo) elif isinstance(mapa_enemigo, MapaAire): return self.atacar_aire(atacante, mapa_enemigo)