我目前正在编写一个国际象棋程序,试图遍历所有菜鸟的动作。为此,我需要获取以下一组数字:1 0(右),-1 0(左),0 1(上),0 -1(下)。我想出了这行代码:
if (this.piece == "rook" || this.piece == "queen") {
for (var dir = -3; dir <= 3; dir += 2) {
let checkChar = pposChar, checkNum = pposNum, m1, m2;
for (var i = 0; i < this.step; i++) {
if (dir == 1 || dir == -1) {
m1 = 0, m2 = dir;
} else {
m1 = dir/Math.abs(dir), m2 = 0;
}
if (isLegal(checkChar, checkNum, m1, m2)) {
this.moves.push(isLegal(checkChar, checkNum, m1, m2));
checkChar += m1;
checkNum += m2;
} else
break;
}
}
}
它工作正常,但看起来有点丑陋且难以阅读。有什么方法可以使这种清洁剂更好?
只需获取一组偏移量并将这些值添加到索引中即可。
var adjacent = [[1, 0], [-1, 0], [0, 1], [0 -1]];
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句