fix : improve great move classification

This commit is contained in:
GuillaumeSD
2024-04-17 01:36:00 +02:00
parent b171edb8ad
commit dd2265288f
2 changed files with 32 additions and 8 deletions

View File

@@ -147,14 +147,31 @@ const isBrilliantMove = (
);
if (!isPieceSacrifice) return false;
const isNotLosing = isWhiteMove
? positionWinPercentage >= 50
: positionWinPercentage <= 50;
if (
isLosingOrAlternateCompletelyWinning(
positionWinPercentage,
lastPositionAlternativeLineWinPercentage,
isWhiteMove
)
)
return false;
return true;
};
const isLosingOrAlternateCompletelyWinning = (
positionWinPercentage: number,
lastPositionAlternativeLineWinPercentage: number,
isWhiteMove: boolean
): boolean => {
const isLosing = isWhiteMove
? positionWinPercentage < 45
: positionWinPercentage > 55;
const isAlternateCompletelyWinning = isWhiteMove
? lastPositionAlternativeLineWinPercentage > 70
: lastPositionAlternativeLineWinPercentage < 30;
return isNotLosing && !isAlternateCompletelyWinning;
return isLosing || isAlternateCompletelyWinning;
};
const isGreatMove = (
@@ -179,6 +196,15 @@ const isGreatMove = (
)
return false;
if (
isLosingOrAlternateCompletelyWinning(
positionWinPercentage,
lastPositionAlternativeLineWinPercentage,
isWhiteMove
)
)
return false;
const hasChangedGameOutcome = getHasChangedGameOutcome(
lastPositionWinPercentage,
positionWinPercentage,
@@ -217,5 +243,5 @@ const getIsTheOnlyGoodMove = (
const winPercentageDiff =
(positionWinPercentage - lastPositionAlternativeLineWinPercentage) *
(isWhiteMove ? 1 : -1);
return winPercentageDiff > 5;
return winPercentageDiff > 10;
};