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