fcsaba commited on
Commit
4239dc8
·
verified ·
1 Parent(s): 13b38f3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +29 -16
app.py CHANGED
@@ -27,49 +27,62 @@ if model is None:
27
  else:
28
  if st.button("Start / Végtelen ciklus indítása ▶️"):
29
 
 
30
  status_text = st.empty()
31
  video_placeholder = st.empty()
32
 
33
  env = gym.make("LunarLander-v3", render_mode="rgb_array")
34
  episode_count = 0
35
- fps = 30 # Rögzített FPS érték
36
 
37
  while True:
38
  episode_count += 1
 
 
 
 
 
 
39
  obs, info = env.reset()
40
  done = False
41
  truncated = False
42
  total_reward = 0
43
  frames = []
44
 
45
- status_text.info(f"Szimuláció folyamatban ({episode_count}. kör)... Kérlek várj!")
46
-
47
- # --- SZIMULÁCIÓ ---
48
  while not done and not truncated:
49
  action, _states = model.predict(obs, deterministic=True)
50
  obs, reward, done, truncated, info = env.step(action)
51
  total_reward += reward
52
  frames.append(env.render())
53
 
54
- # --- GIF MEGJELENÍTÉS IDŐZÍTÉSSEL ---
55
- status_text.info("Visszajátszás generálása...")
56
-
57
  gif_path = "replay.gif"
58
  imageio.mimsave(gif_path, frames, fps=fps)
59
 
 
 
 
 
 
 
 
 
 
 
 
60
  if total_reward >= 200:
61
- msg = f"✅ SIKER! Pontszám: {total_reward:.2f}"
 
62
  elif total_reward >= 0:
63
- msg = f"⚠️ OK. Pontszám: {total_reward:.2f}"
64
  else:
65
- msg = f"💥 ZUHANÁS. Pontszám: {total_reward:.2f}"
66
 
 
67
  status_text.markdown(f"### {msg}")
68
- video_placeholder.image(gif_path, caption=f"{episode_count}. kör visszajátszása")
69
 
70
- # --- A JAVÍTÁS: ---
71
- # Kiszámoljuk, hány másodpercig tart a videó
72
- video_duration = len(frames) / fps
73
 
74
- # Várunk a videó hossza + 2 másodpercet, mielőtt újat kezdünk
75
- time.sleep(video_duration + 2)
 
27
  else:
28
  if st.button("Start / Végtelen ciklus indítása ▶️"):
29
 
30
+ # Helyőrzők létrehozása
31
  status_text = st.empty()
32
  video_placeholder = st.empty()
33
 
34
  env = gym.make("LunarLander-v3", render_mode="rgb_array")
35
  episode_count = 0
36
+ fps = 30
37
 
38
  while True:
39
  episode_count += 1
40
+
41
+ # 1. Előkészítés
42
+ # Töröljük az előző videót, hogy ne látszódjon, amíg az újat számoljuk
43
+ video_placeholder.empty()
44
+ status_text.info(f"🔄 {episode_count}. szimuláció számolása a háttérben...")
45
+
46
  obs, info = env.reset()
47
  done = False
48
  truncated = False
49
  total_reward = 0
50
  frames = []
51
 
52
+ # 2. Szimuláció futtatása (láthatatlanul)
 
 
53
  while not done and not truncated:
54
  action, _states = model.predict(obs, deterministic=True)
55
  obs, reward, done, truncated, info = env.step(action)
56
  total_reward += reward
57
  frames.append(env.render())
58
 
59
+ # 3. GIF generálása
 
 
60
  gif_path = "replay.gif"
61
  imageio.mimsave(gif_path, frames, fps=fps)
62
 
63
+ # Videó hossza másodpercben
64
+ video_duration = len(frames) / fps
65
+
66
+ # 4. Videó indítása (Eredmény MÉG NINCS kiírva)
67
+ status_text.info(f"🎬 {episode_count}. kör visszajátszása...")
68
+ video_placeholder.image(gif_path, caption=f"{episode_count}. Leszállás")
69
+
70
+ # Várakozás, amíg a felhasználó végignézi a videót
71
+ time.sleep(video_duration)
72
+
73
+ # 5. Eredmény felfedése (Csak most!)
74
  if total_reward >= 200:
75
+ msg = f"✅ SIKER! Profi munka. Pontszám: {total_reward:.2f}"
76
+ st.balloons() # Csak siker esetén jön lufi
77
  elif total_reward >= 0:
78
+ msg = f"⚠️ OK. Biztonságos. Pontszám: {total_reward:.2f}"
79
  else:
80
+ msg = f"💥 ZUHANÁS! Pontszám: {total_reward:.2f}"
81
 
82
+ # Kiírjuk az eredményt
83
  status_text.markdown(f"### {msg}")
 
84
 
85
+ # 6. Szünet az olvasáshoz
86
+ time.sleep(2)
 
87
 
88
+ # Ezután ugrik vissza a ciklus elejére