parameters: (self, ball)
docstring: inputs: x - ball_x, log(ball_y), log(y), ball_vx, ball_vy, in_air, 1
          output: x velocity [-1 .. 1]*const, jump (if > 0.5 )
docstring_summary: inputs: x - ball_x, log(ball_y), log(y), ball_vx, ball_vy, in_air, 1
          output: x velocity [-1 .. 1]*const, jump (if > 0.5 )
docstring_tokens: inputs : x - ball_x log ( ball_y ) log ( y ) ball_vx ball_vy in_air 1 output : x velocity [ - 1 .. 1 ] * const jump ( if > 0 . 5 )
function: def interact(self, ball):
          """
          inputs: x - ball_x, log(ball_y), log(y), ball_vx, ball_vy, in_air, 1
          output: x velocity [-1 .. 1]*const, jump (if > 0.5 )
          """
          inputs = [(self.body.position[0] - ball.body.position[0])/300,
  #                  math.log(ball.body.position[1]),
                    math.log(self.body.position[1]),
                    ball.body.velocity[0] / 300,
                    ball.body.velocity[1] / 300,
                    self.in_air,
                    1.0
                    ]
  
          self.brain.Input(inputs)
          self.brain.Activate()
          outputs = self.brain.Output()
  
          self.move(outputs[0] * 500)
          if outputs[1] > 0.5:
              self.jump()
function_tokens: def interact ( self , ball ) : inputs = [ ( self . body . position [ 0 ] - ball . body . position [ 0 ] ) / 300 , #                  math.log(ball.body.position[1]), math . log ( self . body . position [ 1 ] ) , ball . body . velocity [ 0 ] / 300 , ball . body . velocity [ 1 ] / 300 , self . in_air , 1.0 ] self . brain . Input ( inputs ) self . brain . Activate ( ) outputs = self . brain . Output ( ) self . move ( outputs [ 0 ] * 500 ) if outputs [ 1 ] > 0.5 : self . jump ( )