Chess.com Move Suggester

Chess.com move suggestion bot using Stockfish

  1. // ==UserScript==
  2. // @license MIT
  3. // @description Chess.com move suggestion bot using Stockfish
  4. // @name Chess.com Move Suggester
  5. // @namespace https://your-unique-namespace.com
  6. // @match https://www.chess.com/*
  7. // @run-at document-end
  8. // @grant none
  9. // @version 1.0
  10. // ==/UserScript==
  11.  
  12. (async function() {
  13. const stockfish = new Worker("https://raw.githubusercontent.com/official-stockfish/Stockfish-scripts/main/stockfish.js");
  14. let boardFEN = "";
  15. function getBoardFEN() {
  16. const fenElement = document.querySelector("[data-cy='board-controls']");
  17. return fenElement ? fenElement.getAttribute("data-fen") : null;
  18. }
  19. function suggestMove(fen) {
  20. return new Promise((resolve) => {
  21. stockfish.postMessage("uci");
  22. stockfish.postMessage("position fen " + fen);
  23. stockfish.postMessage("go depth 15");
  24. stockfish.onmessage = (event) => {
  25. if (event.data.includes("bestmove")) {
  26. resolve(event.data.split(" ")[1]);
  27. }
  28. };
  29. });
  30. }
  31. function createButton() {
  32. const button = document.createElement("button");
  33. button.innerText = "Suggest Move";
  34. button.style.position = "fixed";
  35. button.style.bottom = "10px";
  36. button.style.right = "10px";
  37. button.style.padding = "10px";
  38. button.style.background = "blue";
  39. button.style.color = "white";
  40. button.style.border = "none";
  41. button.style.cursor = "pointer";
  42. button.onclick = async () => {
  43. boardFEN = getBoardFEN();
  44. if (boardFEN) {
  45. const bestMove = await suggestMove(boardFEN);
  46. alert("Best move: " + bestMove);
  47. } else {
  48. alert("Could not retrieve board state.");
  49. }
  50. };
  51. document.body.appendChild(button);
  52. }
  53. createButton();
  54. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址