Stop calling "passed you" while the ball is still on its way to him

Oliver's v366 log: a LOST "passed you" with no swing. The match gave the
CPU the point the moment its ball crossed 0.3 m behind the baseline — a
line from when the player stood inside it. Since step 1 he waits up to
2.2 m behind the line for deep balls, and a ball going by ~1.5 m beside
him only enters his reach just in front of him, so the point was called
before it was ever playable. In the match "past you" now means past his
reach. The swing log's hits also say whether the timing was early or
late. v367.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
wuwiandClaude Opus 5.5 committed 2026-10-14 13:03:30 +02:00
1 parent 5bbde720ad
commit dfdb699f9d
4 files changed
+73 -4

No files matched your search

+21
View File
@@ -5445,6 +5445,27 @@ Oliver: *"bitte bau nochmal die Funktion ein die protokolliert warum ich einen B
the bounce will land inside the swing window. Otherwise it digs the ball out as a half-volley, capped
below the tape. His 48.14 s MISS was exactly this.
### "passed you" called before the ball reached him (2026-10-14, v367) — a step-1 regression
Oliver's v366 log vs THE BRUTE, first loss:
1. A 29 m/s topspin drive landed 3.7 m to his left.
2. He reached it at the edge of his reach (q 0.09).
3. The Brute came in behind the weak reply and hit 3 m to his left.
4. LOST "passed you", with no swing at all.
The match awards the CPU the point the moment its ball crosses `COURT.L + 0.3`. That line was
written when the player stood INSIDE his baseline. Since step 1 he waits up to `rallyBehind` (2.2 m)
BEHIND it, deepest against heavy topspin. A ball passing ~1.5 m beside him only enters his reach about
0.5 m in front of him (the reach ellipse is shallow off-centre), so the point was called before the
ball was ever playable. A late-but-legal tap was cut off the same way. **In the match, "past you" now
means past your reach:** `max(L + 0.3, P.z + reach·matchReach + 0.3)`. The duel keeps the old line;
classic was never affected (it calls the second bounce). Test: a deep, slightly wide topspin ball
against a player held 1.8 m behind his line. Without the fix it reproduces his exact log line
(`LOST passed you`); with it he returns it. The "never swung, it came within X m" annotation is pinned
in the same test.
The swing log's HIT line now also says which way the timing missed: `late 40ms` (the ball was already
there when the window opened) or `early 40ms`. That was the question his first loss could not answer.
# OPEN — leftovers, in rough priority order
Nothing here is broken; these are known gaps and unverified risks.