有什么办法可以循环通过这些数字:-1 0、1 0、0 -1、0 1

令人讨厌的

我目前正在编写一个国际象棋程序,试图遍历所有菜鸟的动作。为此,我需要获取以下一组数字: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;
            }
        }
 }

它工作正常,但看起来有点丑陋且难以阅读。有什么方法可以使这种清洁剂更好?

妮娜·斯科茨(Nina Scholz)

只需获取一组偏移量并将这些值添加到索引中即可。

var adjacent = [[1, 0], [-1, 0], [0, 1], [0 -1]];

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章