def casillas_ocupadas(self):
     vehiculos_puestos = self.vehiculos_actual
     celdas_ocupadas = list()
     for vehiculo in vehiculos_puestos:
         for celda in celdas.celdas_ocupadas(vehiculo.pos_actual, vehiculo.size):
             celdas_ocupadas.append(celda)
     return celdas_ocupadas
    def get_elemento(self, coordenada, espacio=(1, 1)):
        cobertura = celdas.celdas_ocupadas(coordenada, espacio)
        for vehiculo in self.vehiculos_actual:
            exitos = 0
            efectividad100 = False
            ocupadas = celdas.celdas_ocupadas(vehiculo.pos_actual, vehiculo.size)
            for celda_buscada in cobertura:
                if celda_buscada in ocupadas:
                    exitos += 1
                    if exitos == len(cobertura):
                        efectividad100 = True

            if exitos > 0:
                return vehiculo, efectividad100

        return None, efectividad100
    def get_elemento(self, coordenada, espacio=(1, 1)):
        cobertura = celdas.celdas_ocupadas(coordenada, espacio)
        for vehiculo in self.vehiculos_actual:
            exitos = 0
            efectividad100 = False
            ocupadas = celdas.celdas_ocupadas(vehiculo.pos_actual,
                                              vehiculo.size)
            for celda_buscada in cobertura:
                if celda_buscada in ocupadas:
                    exitos += 1
                    if exitos == len(cobertura):
                        efectividad100 = True

            if exitos > 0:
                return vehiculo, efectividad100

        return None, efectividad100
 def casillas_ocupadas(self):
     vehiculos_puestos = self.vehiculos_actual
     celdas_ocupadas = list()
     for vehiculo in vehiculos_puestos:
         for celda in celdas.celdas_ocupadas(vehiculo.pos_actual,
                                             vehiculo.size):
             celdas_ocupadas.append(celda)
     return celdas_ocupadas
 def check_espacio(self, elemento, posicion):
     celdas_ocupadas = self.casillas_ocupadas()
     celdas_nuevas = celdas.celdas_ocupadas(posicion, elemento.size)
     for casilla in celdas_nuevas:
         if casilla in celdas_ocupadas:
             return False
         if casilla[0] >= 15 or casilla[1] >= 15:
             return False
     return True
Beispiel #6
0
    def test_celdas_ocupadas(self):
        vehiculo = self.vehiculos["barco_p"]
        vehiculo.pos_actual = (5, 5)
        celdas_ocupadas = celdas.celdas_ocupadas(vehiculo.pos_actual, vehiculo.size)

        assert not (4, 4) in celdas_ocupadas
        assert (6, 5) in celdas_ocupadas
        assert not (5, 6) in celdas_ocupadas
        assert not (8, 5) in celdas_ocupadas
 def check_espacio(self, elemento, posicion):
     celdas_ocupadas = self.casillas_ocupadas()
     celdas_nuevas = celdas.celdas_ocupadas(posicion, elemento.size)
     for casilla in celdas_nuevas:
         if casilla in celdas_ocupadas:
             return False
         if casilla[0] >= 15 or casilla[1] >= 15:
             return False
     return True
 def atacado(self, ataque):
     if not isinstance(ataque, Paralizer):
         self.resistencia += ataque.damage
         if self.resistencia <= 0:
             print("""
 {} ha sido destruido.
 Estaba ocupando las celdas {}
         """.format(self, celdas_ocupadas(self.pos_actual, self.size)))
             return False  # mató
     return True  # sigue vivo
 def atacado(self, ataque):
     if not isinstance(ataque, Paralizer):
         self.resistencia += ataque.damage
         if self.resistencia <= 0:
             print("""
 {} ha sido destruido.
 Estaba ocupando las celdas {}
         """.format(self, celdas_ocupadas(self.pos_actual, self.size)))
             return False  # mató
     return True  # sigue vivo
 def mostrar_mapa(self, turno):
     numeros = list(map(lambda x: str(x + 1), range(self.dimension)))
     grilla = self.grilla_default()
     for elemento in self.historial[turno]:
         for celda in celdas.celdas_ocupadas(elemento.pos_actual, elemento.size):
             grilla[celda[0]][celda[1]] = elemento.id
     self.grilla_actual = grilla
     self.encabezado()
     for i in range(len(grilla)):
         numero = numeros[i]
         if int(numero) < 10:
             numero = "0{}".format(numeros[i])
         print("{}".format(numero), grilla[i])
 def mostrar_mapa(self, turno):
     numeros = list(map(lambda x: str(x + 1), range(self.dimension)))
     grilla = self.grilla_default()
     for elemento in self.historial[turno]:
         for celda in celdas.celdas_ocupadas(elemento.pos_actual,
                                             elemento.size):
             grilla[celda[0]][celda[1]] = elemento.id
     self.grilla_actual = grilla
     self.encabezado()
     for i in range(len(grilla)):
         numero = numeros[i]
         if int(numero) < 10:
             numero = "0{}".format(numeros[i])
         print("{}".format(numero), grilla[i])
 def atacar_mar(self, atacante, ataque, mapa):
     exitos = list()
     exito = "No"
     for celda in celdas.celdas_ocupadas(ataque.coordenada_ataque, ataque.size):
         exito = "No"
         resultado_ataque = mapa.get_elemento(celda)
         if resultado_ataque[0] and resultado_ataque[0] not in exitos:
             vehiculo_atacado = resultado_ataque[0]
             exito = "Si"
             exitos.append(vehiculo_atacado)
             if not vehiculo_atacado.atacado(ataque):
                 mapa.borrar_elemento(vehiculo_atacado)
             if isinstance(ataque, Tomahawk) or isinstance(ataque, Explorar):
                 print("Exito: {}".format(vehiculo_atacado))
             else:
                 print("Ataque exitoso: {}".format(celdas.index_to_coord(celda)))
     ataque.usar()
     atacante.historial_ataques.append(
         (atacante.turno, ataque, celdas.index_to_coord(ataque.coordenada_ataque), exito)
     )
Beispiel #13
0
 def atacar_mar(self, atacante, ataque, mapa):
     exitos = list()
     exito = "No"
     for celda in celdas.celdas_ocupadas(ataque.coordenada_ataque,
                                         ataque.size):
         exito = "No"
         resultado_ataque = mapa.get_elemento(celda)
         if resultado_ataque[0] and resultado_ataque[0] not in exitos:
             vehiculo_atacado = resultado_ataque[0]
             exito = "Si"
             exitos.append(vehiculo_atacado)
             if not vehiculo_atacado.atacado(ataque):
                 mapa.borrar_elemento(vehiculo_atacado)
             if isinstance(ataque, Tomahawk) or isinstance(
                     ataque, Explorar):
                 print("Exito: {}".format(vehiculo_atacado))
             else:
                 print("Ataque exitoso: {}".format(
                     celdas.index_to_coord(celda)))
     ataque.usar()
     atacante.historial_ataques.append(
         (atacante.turno, ataque,
          celdas.index_to_coord(ataque.coordenada_ataque), exito))
 def buscar_algo(self):
     celda = (random.randint(0, 14), random.randint(0, 14))
     for celda in celdas_ocupadas(celda, (3, 3)):
         resultado = self.enemigo.mapas_propios["M"].get_elemento(celda)
         if resultado[0]:
             self.celda_exito = celda
 def buscar_algo(self):
     celda = (random.randint(0, 14), random.randint(0, 14))
     for celda in celdas_ocupadas(celda, (3, 3)):
         resultado = self.enemigo.mapas_propios["M"].get_elemento(celda)
         if resultado[0]:
             self.celda_exito = celda