TurtleGraphics Python: Odbijając żółwia ze ścian?

Próbuję więc stworzyć realistyczną funkcję odbijania, w której żółw uderza w ścianę i odbija się pod odpowiednim kątem. Mój kod wygląda tak:

def bounce(num_steps, step_size, initial_heading):
   turtle.reset()
   top = turtle.window_height()/2
   bottom = -top
   right = turtle.window_width()/2
   left = -right

   turtle.left(initial_heading)
   for step in range(num_steps):
      turtle.forward(step_size)
      x, y = turtle.position()
      if left <= x <= right and bottom <= y <= top:
         pass
      else:
         turtle.left(180-2 * (turtle.heading()))

Działa to w przypadku ścian bocznych, ale nie wiem, jak sprawić, by odbijało się poprawnie od góry / dołu. Jakieś sugestie?

questionAnswers(2)

yourAnswerToTheQuestion