Files
gogobee/cmd/holdem-seed/main.go
prosolis c7c1b76589 Add adventure plugin, holdem CFR fixes, and wordle plugin
Adventure: Complete v1 daily idle RPG with DM-driven gameplay, equipment
shop, treasure system, TwinBee NPC, streak/grudge/party mechanics,
flavor text, and scheduled morning/evening/midnight tickers.

Holdem CFR: Fix three critical training bugs (fold not forfeiting pot,
free calls after raises, training/runtime key mismatch). Add performance
optimizations (preflop lookup table, zero-alloc equity, integer keys,
raise cap, regret pruning). Enrich abstraction with 12 equity buckets,
board texture dimension, and 6-char action history. Replace validation
with proper multi-street simulation.

Also includes wordle plugin, holdem seed tooling, and schema additions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 10:09:57 -07:00

37 lines
895 B
Go

//go:build training
package main
import (
"fmt"
"log/slog"
"os"
"gogobee/internal/plugin"
)
// Creates a minimal seed policy so the bot can start without a trained policy.
// Run: go run -tags training ./cmd/holdem-seed/
func main() {
slog.SetDefault(slog.New(slog.NewTextHandler(os.Stdout, &slog.HandlerOptions{Level: slog.LevelInfo})))
data := &plugin.CFRData{
Regrets: make(plugin.RegretTable),
Strategy: make(plugin.RegretTable),
Meta: plugin.CFRTrainingMeta{
Iterations: 0,
Seed: 42,
Date: "seed-policy",
},
}
os.MkdirAll("data", 0o755)
if err := plugin.SaveCFRData("data/policy.gob", data); err != nil {
fmt.Fprintf(os.Stderr, "Error: %v\n", err)
os.Exit(1)
}
slog.Info("Seed policy created", "path", "data/policy.gob")
slog.Info("Train a real policy with: go run -tags training ./cmd/holdem-train/ --iterations 1000000 --workers 8")
}