fix : improve great move classification
This commit is contained in:
@@ -34,9 +34,7 @@ export const getChessComUserRecentGames = async (
|
|||||||
}
|
}
|
||||||
|
|
||||||
const gamesToReturn = games
|
const gamesToReturn = games
|
||||||
.sort((a, b) => {
|
.sort((a, b) => b.end_time - a.end_time)
|
||||||
return b.end_time - a.end_time;
|
|
||||||
})
|
|
||||||
.slice(0, 50);
|
.slice(0, 50);
|
||||||
|
|
||||||
return gamesToReturn;
|
return gamesToReturn;
|
||||||
|
|||||||
@@ -147,14 +147,31 @@ const isBrilliantMove = (
|
|||||||
);
|
);
|
||||||
if (!isPieceSacrifice) return false;
|
if (!isPieceSacrifice) return false;
|
||||||
|
|
||||||
const isNotLosing = isWhiteMove
|
if (
|
||||||
? positionWinPercentage >= 50
|
isLosingOrAlternateCompletelyWinning(
|
||||||
: positionWinPercentage <= 50;
|
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
|
const isAlternateCompletelyWinning = isWhiteMove
|
||||||
? lastPositionAlternativeLineWinPercentage > 70
|
? lastPositionAlternativeLineWinPercentage > 70
|
||||||
: lastPositionAlternativeLineWinPercentage < 30;
|
: lastPositionAlternativeLineWinPercentage < 30;
|
||||||
|
|
||||||
return isNotLosing && !isAlternateCompletelyWinning;
|
return isLosing || isAlternateCompletelyWinning;
|
||||||
};
|
};
|
||||||
|
|
||||||
const isGreatMove = (
|
const isGreatMove = (
|
||||||
@@ -179,6 +196,15 @@ const isGreatMove = (
|
|||||||
)
|
)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
if (
|
||||||
|
isLosingOrAlternateCompletelyWinning(
|
||||||
|
positionWinPercentage,
|
||||||
|
lastPositionAlternativeLineWinPercentage,
|
||||||
|
isWhiteMove
|
||||||
|
)
|
||||||
|
)
|
||||||
|
return false;
|
||||||
|
|
||||||
const hasChangedGameOutcome = getHasChangedGameOutcome(
|
const hasChangedGameOutcome = getHasChangedGameOutcome(
|
||||||
lastPositionWinPercentage,
|
lastPositionWinPercentage,
|
||||||
positionWinPercentage,
|
positionWinPercentage,
|
||||||
@@ -217,5 +243,5 @@ const getIsTheOnlyGoodMove = (
|
|||||||
const winPercentageDiff =
|
const winPercentageDiff =
|
||||||
(positionWinPercentage - lastPositionAlternativeLineWinPercentage) *
|
(positionWinPercentage - lastPositionAlternativeLineWinPercentage) *
|
||||||
(isWhiteMove ? 1 : -1);
|
(isWhiteMove ? 1 : -1);
|
||||||
return winPercentageDiff > 5;
|
return winPercentageDiff > 10;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user