fix : forced move classification

This commit is contained in:
GuillaumeSD
2025-05-08 01:38:41 +02:00
parent 4c5f953b7b
commit 5cfac7700c
5 changed files with 11 additions and 12 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -337,6 +337,7 @@ export const getLineEvalLabel = (
export const moveClassificationColors: Record<MoveClassification, string> = { export const moveClassificationColors: Record<MoveClassification, string> = {
[MoveClassification.Book]: "#d5a47d", [MoveClassification.Book]: "#d5a47d",
[MoveClassification.Forced]: "#d5a47d",
[MoveClassification.Brilliant]: "#26c2a3", [MoveClassification.Brilliant]: "#26c2a3",
[MoveClassification.Great]: "#4099ed", [MoveClassification.Great]: "#4099ed",
[MoveClassification.Best]: "#3aab18", [MoveClassification.Best]: "#3aab18",

View File

@@ -13,7 +13,7 @@ export const getMovesClassification = (
fens: string[] fens: string[]
): PositionEval[] => { ): PositionEval[] => {
const positionsWinPercentage = rawPositions.map(getPositionWinPercentage); const positionsWinPercentage = rawPositions.map(getPositionWinPercentage);
let currentOpening: string | undefined = undefined; let currentOpening: string = "Unknown opening";
const positions = rawPositions.map((rawPosition, index) => { const positions = rawPositions.map((rawPosition, index) => {
if (index === 0) return rawPosition; if (index === 0) return rawPosition;
@@ -30,7 +30,8 @@ export const getMovesClassification = (
} }
const prevPosition = rawPositions[index - 1]; const prevPosition = rawPositions[index - 1];
if (prevPosition.bestMove && prevPosition.lines.length <= 1) {
if (prevPosition.lines.length === 1) {
return { return {
...rawPosition, ...rawPosition,
opening: currentOpening, opening: currentOpening,
@@ -39,11 +40,9 @@ export const getMovesClassification = (
} }
const playedMove = uciMoves[index - 1]; const playedMove = uciMoves[index - 1];
const bestMove = rawPositions[index - 1].bestMove;
const lastPositionAlternativeLine: LineEval | undefined = rawPositions[ const lastPositionAlternativeLine: LineEval | undefined =
index - 1 prevPosition.lines.filter((line) => line.pv[0] !== playedMove)?.[0];
].lines.filter((line) => line.pv[0] !== playedMove)?.[0];
const lastPositionAlternativeLineWinPercentage = lastPositionAlternativeLine const lastPositionAlternativeLineWinPercentage = lastPositionAlternativeLine
? getLineWinPercentage(lastPositionAlternativeLine) ? getLineWinPercentage(lastPositionAlternativeLine)
: undefined; : undefined;
@@ -93,7 +92,7 @@ export const getMovesClassification = (
}; };
} }
if (playedMove === bestMove) { if (playedMove === prevPosition.bestMove) {
return { return {
...rawPosition, ...rawPosition,
opening: currentOpening, opening: currentOpening,

View File

@@ -48,6 +48,7 @@ export default function MoveInfo() {
const bestMoveLabel = const bestMoveLabel =
moveClassification === MoveClassification.Best || moveClassification === MoveClassification.Best ||
moveClassification === MoveClassification.Book || moveClassification === MoveClassification.Book ||
moveClassification === MoveClassification.Forced ||
moveClassification === MoveClassification.Brilliant || moveClassification === MoveClassification.Brilliant ||
moveClassification === MoveClassification.Great moveClassification === MoveClassification.Great
? null ? null
@@ -97,6 +98,7 @@ export default function MoveInfo() {
const moveClassificationLabels: Record<MoveClassification, string> = { const moveClassificationLabels: Record<MoveClassification, string> = {
[MoveClassification.Book]: "a book move", [MoveClassification.Book]: "a book move",
[MoveClassification.Forced]: "forced",
[MoveClassification.Brilliant]: "brilliant !!", [MoveClassification.Brilliant]: "brilliant !!",
[MoveClassification.Great]: "a great move !", [MoveClassification.Great]: "a great move !",
[MoveClassification.Best]: "the best move", [MoveClassification.Best]: "the best move",

View File

@@ -74,11 +74,7 @@ export default function MoveItem({ san, moveClassification, moveIdx }: Props) {
}} }}
/> />
)} )}
<Typography <Typography color={color} fontSize="0.9rem" lineHeight="0.9rem">
color={getMoveColor(moveClassification)}
fontSize="0.9rem"
lineHeight="0.9rem"
>
{san} {san}
</Typography> </Typography>
</Grid> </Grid>
@@ -99,4 +95,5 @@ const getMoveColor = (moveClassification?: MoveClassification) => {
const moveClassificationsToIgnore: MoveClassification[] = [ const moveClassificationsToIgnore: MoveClassification[] = [
MoveClassification.Good, MoveClassification.Good,
MoveClassification.Excellent, MoveClassification.Excellent,
MoveClassification.Forced,
]; ];