feat : add move classification icons

This commit is contained in:
GuillaumeSD
2024-03-07 00:28:32 +01:00
parent c93983fa1f
commit 99a90def9c
23 changed files with 170 additions and 122 deletions

View File

@@ -3,7 +3,7 @@ import {
EvaluateGameParams,
EvaluatePositionWithUpdateParams,
GameEval,
MoveEval,
PositionEval,
} from "@/types/eval";
import { parseEvaluationResults } from "./helpers/parseResults";
import { computeAccuracy } from "./helpers/accuracy";
@@ -108,11 +108,11 @@ export abstract class UciEngine {
await this.sendCommands(["ucinewgame", "isready"], "readyok");
this.worker.postMessage("position startpos");
const moves: MoveEval[] = [];
const positions: PositionEval[] = [];
for (const fen of fens) {
const whoIsCheckmated = getWhoIsCheckmated(fen);
if (whoIsCheckmated) {
moves.push({
positions.push({
lines: [
{
pv: [],
@@ -125,19 +125,19 @@ export abstract class UciEngine {
continue;
}
const result = await this.evaluatePosition(fen, depth);
moves.push(result);
positions.push(result);
}
const movesWithClassification = getMovesClassification(
moves,
const positionsWithClassification = getMovesClassification(
positions,
uciMoves,
fens
);
const accuracy = computeAccuracy(moves);
const accuracy = computeAccuracy(positions);
this.ready = true;
return {
moves: movesWithClassification,
positions: positionsWithClassification,
accuracy,
settings: {
engine: this.engineName,
@@ -148,7 +148,10 @@ export abstract class UciEngine {
};
}
private async evaluatePosition(fen: string, depth = 16): Promise<MoveEval> {
private async evaluatePosition(
fen: string,
depth = 16
): Promise<PositionEval> {
console.log(`Evaluating position: ${fen}`);
const lichessEval = await getLichessEval(fen, this.multiPv);