Algunos personajes están diciendo "error... ¯\_(ツ)_/¯" en las partidas. Esa cadena de error también aparece en la consola de Actividad:

¿Qué me está indicando este error?

Este error indica que el código de tu personaje tiene errores que no le permiten a Python ejecutarlo.

Es decir, el theter que ha creado el código del personaje en el editor de código de la Competición sólo lo ha guardado, pero si lo hubiese revisado vería que el código contiene uno o varios errores:

Al ponernos encima del recuadro rojo que indica el error, veremos los detalles:

El juego penaliza a vuestros personajes

CodedArena penaliza, de una forma u otra, a vuestros personajes si:

  1. Tienen errores que impiden a Python ejecutar el personaje (código roto)
  2. Tratan de lanzar un hechizo sin cumplir las condiciones necesarias
  3. El código tarda demasiado tiempo en ejecutarse

Código roto

Tal y como acabamos de decir, si un personaje tiene un código en Python que directamente no pasa la revisión, CodedArena, como es normal, no puede ejecutar la estrategia del personaje, y por lo tanto sale error... ¯\_(ツ)_/¯.

Así pues, en esa partida, el personaje no hará nada.

Lanzar hechizos sin comprobaciones suficientes

Como hemos visto durante las misiones de la Campaña 1 de CodedArena, para lanzar un hechizo es necesario cumplir las siguiente condiciones:

  • El objetivo debe estar a distancia del hechizo (self.max_distance_of() y self.distance_to())
  • El personaje debe tener maná suficiente para lanzar el hechizo (self.cost_of() y self.mana)
  • El hechizo debe estar disponible, es decir, no debe estar enfriándose (cooldown) (self.is_ready())

Si tratamos de lanzar un hechizo que no cumple alguna de las condiciones anteriores, el juego penaliza al personaje con 1 segundo sin consultarle por su siguiente acción. Es decir, si tenemos un personaje que constantemente trata de lanzar hechizos sin comprobaciones, alguno lanzará, pero recibirá muchos segundos de penalizaciones, lo que le da una gran ventaja al adversario.

Código que tarda demasiado en ejecutarse

Hay una situación especial que el juego penaliza también sin consultar más acciones al personaje: si el código de éste tarda demasiado en ejecutarse.

Un ejemplo es el de un bucle infinito, como por ejemplo:

n = 0
while True:
    n = n + 1

En este caso, este código no acabará jamás, lo que hace que CodedArena lo detecte, y penalice al personaje no consultándole más qué quiere hacer. Y por lo tanto, perderá el enfrentamiento.

Conclusiones

  • Revisad siempre el código de vuestro personaje antes de dejarlo disponible para la Competición.
  • Revisad cada día vuestras partidas, buscando errores y comportamientos anómalos del personaje.
  • Comprobad siempre cómo lanza vuestro personaje los hechizos. Las condiciones está ahí para algo, y no cumplirlas es penalizado.