files
Browse files
app.py
CHANGED
|
@@ -14,7 +14,9 @@ RADAR_ENCODING = {"EMPTY": 0,"WALL": 1,"GOAL": 2,"ICE": 3,"MUD": 4,"DANGER": 5,"
|
|
| 14 |
|
| 15 |
class MegaWorldEnv:
|
| 16 |
def __init__(self):
|
| 17 |
-
self.start = (1, 1)
|
|
|
|
|
|
|
| 18 |
self.walls = self._generate_walls()
|
| 19 |
self.ice = [(5,y) for y in range(5,15)] + [(15,y) for y in range(5,15)]
|
| 20 |
self.mud = [(x,10) for x in range(2,18)]
|
|
@@ -73,7 +75,7 @@ class MegaWorldEnv:
|
|
| 73 |
def render(self, player_pos, history, battery, score):
|
| 74 |
# HTML Visualizer
|
| 75 |
html="<div style='background:#000;padding:10px;border-radius:12px;font-family:monospace'>"
|
| 76 |
-
html+=f"<div style='color:white;margin-bottom:5px'>π {battery} | π {score:.1f}</div>"
|
| 77 |
html+="<div style='display:grid;grid-template-columns:repeat(20,20px);gap:1px;width:fit-content;margin:auto'>"
|
| 78 |
enemy_pos=[tuple(e["pos"]) for e in self.enemies]
|
| 79 |
for y in range(19,-1,-1):
|
|
@@ -159,7 +161,6 @@ def run_mega_simulation(zip_file):
|
|
| 159 |
pos = [nx, ny]
|
| 160 |
|
| 161 |
# *** APPLY SHAPED REWARD ***
|
| 162 |
-
# This updates the score visible on screen
|
| 163 |
step_reward = env.shaped_reward(tuple(prev_pos), tuple(pos))
|
| 164 |
score += step_reward
|
| 165 |
|
|
@@ -187,7 +188,9 @@ def run_mega_simulation(zip_file):
|
|
| 187 |
|
| 188 |
# Render
|
| 189 |
yield env.render(tuple(pos), history, battery, score), {"step": step}
|
| 190 |
-
|
|
|
|
|
|
|
| 191 |
|
| 192 |
finally:
|
| 193 |
if temp_dir in sys.path:
|
|
|
|
| 14 |
|
| 15 |
class MegaWorldEnv:
|
| 16 |
def __init__(self):
|
| 17 |
+
self.start = (1, 1)
|
| 18 |
+
# CHANGE 1: Goal moved to absolute top right (19, 19)
|
| 19 |
+
self.goal = (19, 19)
|
| 20 |
self.walls = self._generate_walls()
|
| 21 |
self.ice = [(5,y) for y in range(5,15)] + [(15,y) for y in range(5,15)]
|
| 22 |
self.mud = [(x,10) for x in range(2,18)]
|
|
|
|
| 75 |
def render(self, player_pos, history, battery, score):
|
| 76 |
# HTML Visualizer
|
| 77 |
html="<div style='background:#000;padding:10px;border-radius:12px;font-family:monospace'>"
|
| 78 |
+
html+=f"<div style='color:white;margin-bottom:5px'>π {battery} | π {score:.1f}</div>"
|
| 79 |
html+="<div style='display:grid;grid-template-columns:repeat(20,20px);gap:1px;width:fit-content;margin:auto'>"
|
| 80 |
enemy_pos=[tuple(e["pos"]) for e in self.enemies]
|
| 81 |
for y in range(19,-1,-1):
|
|
|
|
| 161 |
pos = [nx, ny]
|
| 162 |
|
| 163 |
# *** APPLY SHAPED REWARD ***
|
|
|
|
| 164 |
step_reward = env.shaped_reward(tuple(prev_pos), tuple(pos))
|
| 165 |
score += step_reward
|
| 166 |
|
|
|
|
| 188 |
|
| 189 |
# Render
|
| 190 |
yield env.render(tuple(pos), history, battery, score), {"step": step}
|
| 191 |
+
|
| 192 |
+
# CHANGE 2: Slower speed (0.15s delay per frame)
|
| 193 |
+
time.sleep(0.15)
|
| 194 |
|
| 195 |
finally:
|
| 196 |
if temp_dir in sys.path:
|