const path = require("path"); | |
const { Engine } = require("node-uci"); | |
require("dotenv").config(); | |
const engine = new Engine(path.join(__dirname, process.env.CHESS_ENGINE_PATH || "engine/stockfish16.exe")); | |
engine | |
.init() | |
.then((eng) => { | |
return eng.setoption("UCI_LimitStrength", true); | |
}) | |
.then((eng) => { | |
eng.setoption("UCI_Elo"); | |
}) | |
.catch((err) => { | |
console.error(err); | |
}); | |
const nextMove = async ({ position }) => { | |
await engine.isready(); | |
console.log("Chess engine ready"); | |
engine.position(position); | |
const result = await engine.go({ depth: 10 }); | |
console.log("Best move or position", position, "is", result.bestmove); | |
return result.bestmove; | |
}; | |
module.exports = { nextMove }; | |