File size: 1,221 Bytes
f386f57 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | f rocket_bottom_y <= terrain_y_at_x:
self.rocket.y = terrain_y_at_x + self.rocket.height // 2
if abs(self.rocket.velocity_y) <= 5.0 and abs(self.rocket.velocity_x) <= 5 and abs(self.rocket.angle) <= 10:
self.game_over = True
self.win = True # Successful landing
reward = 1 # Positive reward for successful landing
else:
self.game_over = True # Rocket destroyed
reward = -0.6 # Negative reward for crash
else:
if thrusting:
reward = 0.002
else:
reward=0
if abs(self.rocket.angle) >5:
reward = -0.02
if abs(self.rocket.velocity_y) > 5 or abs(self.rocket.velocity_x) > 5:
reward = -0.02
if self.rocket.y>700:
self.game_over = True
reward = -0.6
if self.rocket.x>800 or self.rocket.x<0:
self.game_over = True
reward = -0.6
return reward, self.game_over, self.win |