diff --git a/src/hooks/useCurrentMove.ts b/src/hooks/useCurrentMove.ts index b6dc3b6..441dab5 100644 --- a/src/hooks/useCurrentMove.ts +++ b/src/hooks/useCurrentMove.ts @@ -56,7 +56,7 @@ export const useCurrentMove = (engineName?: EngineName) => { } setCurrentMove(move); - }, [gameEval, board, game, engine, depth, multiPv]); + }, [gameEval, board, game, engine, depth, multiPv, setCurrentMove]); return currentMove; }; diff --git a/src/hooks/useEngine.ts b/src/hooks/useEngine.ts index c0218f5..65cc93e 100644 --- a/src/hooks/useEngine.ts +++ b/src/hooks/useEngine.ts @@ -1,20 +1,10 @@ import { Stockfish16 } from "@/lib/engine/stockfish16"; import { UciEngine } from "@/lib/engine/uciEngine"; -import { engineMultiPvAtom } from "@/sections/analysis/states"; import { EngineName } from "@/types/enums"; -import { useAtomValue } from "jotai"; import { useEffect, useState } from "react"; export const useEngine = (engineName: EngineName | undefined) => { const [engine, setEngine] = useState(null); - const multiPv = useAtomValue(engineMultiPvAtom); - - const pickEngine = (engine: EngineName): UciEngine => { - switch (engine) { - case EngineName.Stockfish16: - return new Stockfish16(multiPv); - } - }; useEffect(() => { if (!engineName) return; @@ -27,7 +17,14 @@ export const useEngine = (engineName: EngineName | undefined) => { return () => { engine.shutdown(); }; - }, []); + }, [engineName]); return engine; }; + +const pickEngine = (engine: EngineName): UciEngine => { + switch (engine) { + case EngineName.Stockfish16: + return new Stockfish16(); + } +}; diff --git a/src/lib/engine/stockfish16.ts b/src/lib/engine/stockfish16.ts index 681e026..629c9cb 100644 --- a/src/lib/engine/stockfish16.ts +++ b/src/lib/engine/stockfish16.ts @@ -2,14 +2,14 @@ import { EngineName } from "@/types/enums"; import { UciEngine } from "./uciEngine"; export class Stockfish16 extends UciEngine { - constructor(multiPv: number) { + constructor() { const isWasmSupported = Stockfish16.isWasmSupported(); const enginePath = isWasmSupported ? "engines/stockfish-wasm/stockfish-nnue-16-single.js" : "engines/stockfish.js"; - super(EngineName.Stockfish16, enginePath, multiPv); + super(EngineName.Stockfish16, enginePath); } public static isWasmSupported() { diff --git a/src/lib/engine/uciEngine.ts b/src/lib/engine/uciEngine.ts index 9582458..b0ab525 100644 --- a/src/lib/engine/uciEngine.ts +++ b/src/lib/engine/uciEngine.ts @@ -10,12 +10,10 @@ export abstract class UciEngine { private worker: Worker; private ready = false; private engineName: EngineName; - private multiPv: number; + private multiPv = 3; - constructor(engineName: EngineName, enginePath: string, multiPv: number) { + constructor(engineName: EngineName, enginePath: string) { this.engineName = engineName; - this.multiPv = multiPv; - this.worker = new Worker(enginePath); console.log(`${engineName} created`); diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 855154a..fb044f2 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -32,7 +32,7 @@ export default function GameReport() { setBoardOrientation(true); gameActions.setPgn(new Chess().pgn()); } - }, [gameId]); + }, [gameId, boardActions, gameActions, setEval, setBoardOrientation]); return ( { const bestLine = currentMove?.eval?.lines[0]; if (!bestLine) return; - const evalBar = getEvaluationBarValue(bestLine, board.turn() === "w"); + const evalBar = getEvaluationBarValue(bestLine, isWhiteToPlay); setEvalBar(evalBar); - }, [currentMove, board.turn()]); + }, [currentMove, isWhiteToPlay]); return (