Closed mc-cari closed 2 years ago
Hola, el código entregado si es correcto en ese apartado, solo que falta ponerlo en contexto con el resto del programa.
La línea anterior dice:
# Revisar si el punto medio del agente se encuentra a menos de un cuarto de pádel de donde llegará pelota
if abs(self.hitpoint - (self.right_paddle.y + self.right_paddle.height/2)) <= self.right_paddle.height/4: (...)
Esto quiere decir que se otorgará una recompensa siempre y cuando el punto medio del agente esté a lo más a un cuarto de pádel de distancia del punto final de la pelota (no lo premiamos si es solo su esquina) y este decida quedarse quieto, o bien, por acercarse hacia ese punto en caso de no cumplirse la condición anterior.
Si bien esto puede generar comportamientos como los de la issue #112 indica (aunque no parece estar ligado a esa línea de código ya que el agente si debería ser premiado por moverse hacia arriba), la idea es que esta asignación de recompensas sea funcional pero no perfecta, así se tiene sobre qué trabajar para formular la respuesta a la pregunta 4.
Un saludo :)
Ah entiendo, gracias
Hola, en la issue #112 se encontró un error en el cálculo de recompensas, en el código de
PongAI.py
, en la funciónplay_step()
la línea 184 hay que reemplazarla porelif self.right_paddle.y + self.right_paddle.height/2 > self.hitpoint:
, ya que antes se consideraba la posición superior del padel, en vez de su punto medio, causando que en una sección del padel decidiera moverse hacia abajo en vez de hacia arriba, como debía ser.