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:
co-authored by
Claude Opus 5.5
parent
3ae1f23938
commit
9dce965164
@@ -73,6 +73,7 @@ export const PHRASE_KEYS: readonly string[] = [
|
||||
"coup.douteux",
|
||||
"coup.mauvais",
|
||||
"coup.tres-mauvais",
|
||||
"coup.tres-mauvais.loin",
|
||||
"fait.frappe",
|
||||
"fait.frappe-plusieurs",
|
||||
"fait.point",
|
||||
@@ -131,7 +132,6 @@ function moveWords(phrases: MasterPhrases, advice: MoveAdvice): MasterWords {
|
||||
best: advice.best.notation,
|
||||
played: advice.played.notation,
|
||||
rank: String(advice.rank),
|
||||
count: String(advice.moveCount),
|
||||
roll: `${advice.roll[0]}-${advice.roll[1]}`,
|
||||
};
|
||||
const fill = (key: string, extra: Readonly<Record<string, string>> = {}) =>
|
||||
@@ -149,7 +149,9 @@ function moveWords(phrases: MasterPhrases, advice: MoveAdvice): MasterWords {
|
||||
good: "coup.proche",
|
||||
doubtful: "coup.douteux",
|
||||
bad: "coup.mauvais",
|
||||
veryBad: "coup.tres-mauvais",
|
||||
// Une grosse erreur ne cite son rang que s'il est proche (2e ou
|
||||
// 3e choix) ; plus loin, le classement est dans les chiffres.
|
||||
veryBad: advice.rank <= 3 ? "coup.tres-mauvais" : "coup.tres-mauvais.loin",
|
||||
}[verdict];
|
||||
base = fill(key);
|
||||
fact = differenceFact(phrases, advice);
|
||||
|
||||
@@ -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));
|
||||
|
||||
+11
-3
@@ -34,7 +34,6 @@ mots entre accolades sont remplis avec les données du moteur :
|
||||
| `{played}` | votre coup, même notation |
|
||||
| `{move}` | le coup dont parle le fait (le vôtre ou celui du maître) |
|
||||
| `{rank}` | le rang de votre coup dans le classement du moteur (2, 3…) |
|
||||
| `{count}` | le nombre de coups possibles avec ce jet |
|
||||
| `{points}` | « votre point 5 » ou « vos points 5 et 7 » |
|
||||
| `{roll}` | le jet, « 3-1 » |
|
||||
| `{hits}` | le nombre de pions frappés, en chiffres |
|
||||
@@ -89,7 +88,16 @@ Tout ce qui précède la première section `## mot.…` n'est pas lu.
|
||||
|
||||
## coup.tres-mauvais
|
||||
|
||||
- J'aurais joué {best}. Votre {played} était le {rank}e choix sur {count}.
|
||||
Votre coup est le 2e ou le 3e choix du moteur.
|
||||
|
||||
- J'aurais joué {best}. Votre {played} était le {rank}e choix.
|
||||
|
||||
## coup.tres-mauvais.loin
|
||||
|
||||
Votre coup est plus loin dans le classement : le rang n'est pas dit ici, il
|
||||
se lit dans « Voir les chiffres du moteur ».
|
||||
|
||||
- J'aurais joué {best}.
|
||||
|
||||
## fait.frappe
|
||||
|
||||
@@ -109,7 +117,7 @@ Tout ce qui précède la première section `## mot.…` n'est pas lu.
|
||||
|
||||
## fait.maitre-frappe
|
||||
|
||||
- Mon coup frappe un pion, le vôtre non.
|
||||
- Mon coup frappe un pion.
|
||||
|
||||
## fait.maitre-point
|
||||
|
||||
|
||||
Reference in New Issue
Block a user