Anleitung 2, Gamepad, große Schrift, Profil-Reset, Würfel-Limit, Tipp nach Spielverlauf, KI-Zeitbudget, Deck-Warnung, Gischtläufer, Kampfbildschirm aufgeteilt

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QPgKvy5W9WRNFHjkm5QsHx
This commit is contained in:
Team3
2026-09-16 16:27:59 +02:00
parent 0dbc98b456
commit 4246d7e970
22 changed files with 728 additions and 164 deletions

View File

@@ -95,6 +95,7 @@ static func map_target(g2: Game, game: Game, t):
const FOLLOW_UPS := 10 # Folgeschritte je Kandidat in der zweiten Suchstufe
static var time_budget_ms := 150 # Zeitbudget je Entscheidung; danach der beste bisherige Zug
## Mulligan der KI: teure Karten im ersten Zug zurücklegen.
@@ -111,7 +112,12 @@ static func choose_action(game: Game, p: Game.Player) -> Dictionary:
return {"type": "mulligan", "cards": mulligan_cards(p)}
var best := {"type": "end"}
var best_score := evaluate(game, p) + 0.01
var t0 := Time.get_ticks_msec()
var examined := 0
for action in candidate_actions(game, p):
if examined > 0 and Time.get_ticks_msec() - t0 > time_budget_ms:
break
examined += 1
var g2 := game.clone_for(p)
apply_on_clone(g2, game, action)
var p2: Game.Player = g2.players[game.current_idx]
@@ -119,7 +125,7 @@ static func choose_action(game: Game, p: Game.Player) -> Dictionary:
if g2.winner == "":
var count := 0
for f in candidate_actions(g2, p2):
if count >= FOLLOW_UPS:
if count >= FOLLOW_UPS or Time.get_ticks_msec() - t0 > time_budget_ms:
break
count += 1
var g3 := g2.clone_for(p2)