我遇到以下问题。我试图这样做,但它不起作用:
highlight(){
if (this.firstClick && this.firstMove){
grid[this.i][this.j+1].toHighlight = true;
grid[this.i][this.j+2].toHighlight = true;
} else if (!this.firstClick && this.firstMove) {
grid[this.i][this.j+1].toHighlight = false;
grid[this.i][this.j+2].toHighlight = false;
} else if (this.firtClick && !this.firstMove){
grid[this.i][this.j+1].toHighlight = true;
grid[this.i][this.j+2].toHighlight = false;
} else if (!this.firstClick && !this.firstMove){
grid[this.i][this.j+1].toHighlight = false;
grid[this.i][this.j+2].toHighlight = false;
}
}
如果我第一次在第一个地方更改布尔值,如果它表示grid [] []。toHighlight未定义,那么它就会变为真。
您可以查看我的github上的完整代码以及它在托管页面上的工作方式。我在黑棋子上使用过它。白色的背后有不同的逻辑,我尝试了不同的东西。
您可以在此处找到完整代码: https://github.com/GreedyCoding
答案 0 :(得分:0)
如果声明
,其他第二个拼写错误else if (this.firtClick && !this.firstMove){
它应该 firstClick 不确定这是否是原因,但希望它有所帮助。
答案 1 :(得分:0)
检查你的if / else if块 - 显然可以做一些清理工作
基本上划分两个基本分区 - 基于是否firstClick然后在每个分区内 - 确定它是否是第一个移动 有一些共同的值可以应用于每个条件 - 而不是在第一个if块中使用三元方程(在第二个块中根本不需要它。
highlight(){
if (this.firstClick){
grid[this.i][this.j+1].toHighlight = true;
this.firstMove
? grid[this.i][this.j+2].toHighlight = true
: grid[this.i][this.j+2].toHighlight = false;
} else {
grid[this.i][this.j+1].toHighlight = false;
grid[this.i][this.j+2].toHighlight = false;
}
}