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:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user