Phrases du maître : grosse erreur sans « sur N », rang cité seulement s'il est proche ; « Mon coup frappe un pion. »

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Pierre MARTIN
2026-11-10 05:23:48 +01:00
co-authored by Claude Opus 5.5
parent 3ae1f23938
commit 9dce965164
3 changed files with 33 additions and 6 deletions
+18 -1
View File
@@ -165,10 +165,27 @@ test("le coup du maître est nommé, et le fait qui distingue les coups vient du
assert.equal(said.title, "J'aurais joué 8/5 6/5");
assert.equal(
said.phrase,
`J'aurais joué 8/5 6/5. Votre 24/23 13/10 était le ${worst.rank}e choix sur 16. Mon coup fait votre point 5.`,
"J'aurais joué 8/5 6/5. Votre 24/23 13/10 était le 2e choix. Mon coup fait votre point 5.",
);
});
test("grosse erreur : le rang n'est cité que pour un 2e ou 3e choix", async () => {
const engine = await loadNodeEngine();
const worst = (await adviceOn(
engine,
await playOpening(engine, [3, 1], "24/23 13/10"),
)) as MoveAdvice;
for (const rank of [2, 3, 4, 7, 15]) {
const { phrase } = masterWords(phrases, { ...worst, rank });
if (rank <= 3) {
assert.ok(phrase.includes(`était le ${rank}e choix`), phrase);
} else {
assert.ok(!phrase.includes("choix"), phrase);
assert.equal(phrase, "J'aurais joué 8/5 6/5. Mon coup fait votre point 5.");
}
}
});
test("décisions de videau : la décision du maître et le contexte", async () => {
const engine = await loadNodeEngine();
const missed = await adviceOn(engine, await playerRollsWithoutDoubling(engine));