地址
方案
1.新建文件夹Horse
2.打开Horse,新建脚本文件horse.js,内容如下
"use strict";
let map = [];
let over = false;
let direct = [
[1, 2],
[-1, 2],
[1, -2],
[-1, -2],
[2, 1],
[-2, 1],
[2, -1],
[-2, -1]
];
function initMap() {
map = [];
for (let i = 0; i < 8; i++) {
map.push([]);
for (let j = 0; j < 8; j++) {
map[i].push(0);
}
}
}
function nextCount(i, j) {
let c = 0;
for (let k = 0; k < 8; k++) {
let x = i + direct[k][0];
let y = j + direct[k][1];
if (x < 0 || y < 0 || x >= 8 || y >= 8) {
continue;
}
if (map[i][j] == 0) {
c++;
}
}
return c;
}
function bfs(i, j, num) {
if (map[i][j] != 0) {
return;
}
map[i][j] = num;
if (num >= 64) {
over = true;
return;
}
let nextPos = [];
for (let k = 0; k < 8; k++) {
let x = i + direct[k][0];
let y = j + direct[k][1];
if (x < 0 || y < 0 || x >= 8 || y >= 8) {
continue;
}
if (map[x][y] != 0) {
continue;
}
let c = nextCount(x, y);
nextPos.push({
pos: [x, y],
c: c
});
}
nextPos.sort((p1, p2) => {
return p1.c - p2.c
});
for(let k=0;k<nextPos.length;k++){
let x=nextPos[k].pos[0];
let y=nextPos[k].pos[1];
if (x < 0 || y < 0 || x >= 8 || y >= 8) {
continue;
}
bfs(x,y,num+1);
if(over){
break;
}else{
map[x][y]=0;
}
}
}
document.oncontextmenu=(e)=>{
e.preventDefault();
over=false;
initMap();
bfs(0,0,1);
let cells=[];
for(let i=0;i<64;i++){
cells.push(document.querySelector("#cell"+i));
}
for(let i=1;i<=64;i++){
let flag=false;
for(let x=0;x<8;x++){
for(let y=0;y<8;y++){
if(map[x][y]==i){
let index=x*8+y;
cells[index].click();
flag=true;
break;
}
}
if(flag){
break;
}
}
}
};
3.在Horse文件夹下新建配置文件manifest.json,内容如下
{
"name": "horse",
"version": "1.0",
"description": "单击鼠标右键求解马踏棋盘",
"manifest_version": 2,
"content_scripts": [{
"matches": [
"https://yzyx.info/mtqp.html"
],
"js": [
"horse.js"
]
}]
}
4.如果你的操作无误,现在Horse文件夹下应该是这样的
5.把我们的Horse文件夹拖入Edge(这是我的浏览器)的扩展中
至此,插件安装完毕
测试
打开游戏网址,待游戏加载完毕后,点击鼠标右键,即可自动求解。
初始
鼠标右键点击后