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