Igra v2: auto-presuda + filler, pamćenje dvoboja sa razlogom (reuse bez LLM)
Problem: potvrda zadnjeg heroja se čula tek nakon "sad ću odlučiti" jer je model grupisao potvrdu i poziv presudi. Rješenje: presuda runde je sada AUTOMATSKA (uklonjen alat superheroji_presudi). Kad zadnji igrač izabere, Python pokrene resolve_round u pozadini; model prvo brzo potvrdi ime i kaže da razmišlja, rezultat stigne preko notify_model. Ako traje >8s -> filler. Pamćenje dvoboja: pored Ela sada se u heroes.json (matchups) bilježe konkretni ishodi sa razlogom, po cijelom skupu likova i po parovima. Kad se isti dvoboj ponovi -> čita se iz baze BEZ poziva LLM-u (dosljedno + brzo). Admin tab prikazuje "Zabilježene dvoboje"; reset briše i njih. Sekvenciranje odgovora (_wait_idle) da se izbjegne conversation_already_has_active_response. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LzKpYaEsuWDevuNnvSjcFW
This commit is contained in:
@@ -217,8 +217,9 @@ def superheroji():
|
||||
store = gamestore.HeroStore()
|
||||
store.heroes = {}
|
||||
store.aliases = {}
|
||||
store.matchups = {}
|
||||
store.save()
|
||||
flash("Pamćenje jačina heroja je obrisano.")
|
||||
flash("Pamćenje jačina i dvoboja je obrisano.")
|
||||
return redirect(url_for("superheroji"))
|
||||
|
||||
store = gamestore.HeroStore()
|
||||
@@ -228,6 +229,7 @@ def superheroji():
|
||||
min_rounds=gamestore.MIN_ROUNDS,
|
||||
max_rounds=gamestore.MAX_ROUNDS,
|
||||
heroes=store.leaderboard(),
|
||||
matchups=store.matchup_list(),
|
||||
active_page="superheroji",
|
||||
)
|
||||
|
||||
|
||||
@@ -56,11 +56,36 @@
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
<form method="post" onsubmit="return confirm('Obrisati sve zapamćene jačine heroja? Ovo se ne može poništiti.');" style="margin-top:16px;">
|
||||
<input type="hidden" name="action" value="reset">
|
||||
<button type="submit" class="danger">Obriši pamćenje</button>
|
||||
</form>
|
||||
{% else %}
|
||||
<p class="empty">Još nema odigranih borbi. Rang-lista se puni kako djeca igraju.</p>
|
||||
{% endif %}
|
||||
|
||||
<h2 style="font-size:16px; margin: 26px 0 4px;">Zabilježeni dvoboji</h2>
|
||||
<p class="sub">Konkretni ishodi sa razlogom. Kad se isti dvoboj ponovi, Idriz čita odavde i ne pita LLM ponovo.</p>
|
||||
{% if matchups %}
|
||||
<table>
|
||||
<thead>
|
||||
<tr><th>Pobjednik</th><th>Gubitnik</th><th>Razlog</th><th class="num">Puta</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for m in matchups %}
|
||||
<tr>
|
||||
<td><strong>{{ m.winner }}</strong></td>
|
||||
<td>{{ m.loser }}</td>
|
||||
<td>{{ m.reason }}</td>
|
||||
<td class="num">{{ m.count }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% else %}
|
||||
<p class="empty">Još nema zabilježenih dvoboja.</p>
|
||||
{% endif %}
|
||||
|
||||
{% if heroes or matchups %}
|
||||
<form method="post" onsubmit="return confirm('Obrisati sve zapamćene jačine i dvoboje? Ovo se ne može poništiti.');" style="margin-top:18px;">
|
||||
<input type="hidden" name="action" value="reset">
|
||||
<button type="submit" class="danger">Obriši pamćenje</button>
|
||||
</form>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
Reference in New Issue
Block a user