Stage 17 (#14): raise robot early-move band [1,5] -> [3,10] min (slower openings)
CI / changes (pull_request) Successful in 2s
CI / unit (pull_request) Successful in 8s
CI / integration (pull_request) Successful in 11s
CI / ui (pull_request) Successful in 27s
CI / gate (pull_request) Successful in 0s
CI / deploy (pull_request) Successful in 1m1s
CI / changes (pull_request) Successful in 2s
CI / unit (pull_request) Successful in 8s
CI / integration (pull_request) Successful in 11s
CI / ui (pull_request) Successful in 27s
CI / gate (pull_request) Successful in 0s
CI / deploy (pull_request) Successful in 1m1s
This commit is contained in:
@@ -31,8 +31,8 @@ const (
|
||||
// delays near the band's floor — an active player). The result is clamped to
|
||||
// [delayHardMinMinutes, delayHardMaxMinutes]. The numbers are deliberate estimates,
|
||||
// to be retuned once real play statistics arrive (docs/ARCHITECTURE.md §7).
|
||||
delayEarlyLoMinutes = 1.0
|
||||
delayEarlyHiMinutes = 5.0
|
||||
delayEarlyLoMinutes = 3.0
|
||||
delayEarlyHiMinutes = 10.0
|
||||
delayLateLoMinutes = 10.0
|
||||
delayLateHiMinutes = 90.0
|
||||
delaySkew = 4.0
|
||||
|
||||
@@ -57,8 +57,8 @@ func TestMoveDelayGrowsWithMoveCount(t *testing.T) {
|
||||
return xs[n/2]
|
||||
}
|
||||
for s := int64(1); s <= 500; s++ {
|
||||
if d := moveDelay(s, 0).Minutes(); d < 1 || d > 5 {
|
||||
t.Fatalf("first-move delay %.2f out of [1,5] for seed %d", d, s)
|
||||
if d := moveDelay(s, 0).Minutes(); d < 3 || d > 10 {
|
||||
t.Fatalf("first-move delay %.2f out of [3,10] for seed %d", d, s)
|
||||
}
|
||||
if d := moveDelay(s, 40).Minutes(); d < 10 || d > 90 {
|
||||
t.Fatalf("late-move delay %.2f out of [10,90] for seed %d", d, s)
|
||||
|
||||
@@ -321,7 +321,7 @@ English game the Latin pool.
|
||||
refill it, else passes.
|
||||
- **Timing**: the per-move delay is **move-number-aware** — a right-skewed sample
|
||||
(exponent k=4, short delays frequent) from a band that interpolates from
|
||||
**[1, 5] min** at the first move to **[10, 90] min** by ~28 moves, so openings are
|
||||
**[3, 10] min** at the first move to **[10, 90] min** by ~28 moves, so openings are
|
||||
quick and the endgame can run long, clamped to **[1, 90] minutes**; it
|
||||
**sleeps 00:00–07:00** anchored to the **opponent's** profile timezone with a
|
||||
per-game drift of **±3 h** (fallback UTC), so its night overlaps the human's
|
||||
|
||||
Reference in New Issue
Block a user