[英]if (true || true || false) statement is true in javascript?
[英]JavaScript If-Statement Proved True But Outputs False
我正在通過編寫第一個游戲(一個簡單的激光鏡類型的游戲)來學習JavaScript。 游戲在網格中運行,我想確定一個單元是否有障礙物。 因此,我將此函數稱為:
function updateGrid () {
for (let i = 0; i < cols; i++) {
for (let j = 0; j < rows; j++) {
for (let o = 0; o < obstacles.length; o++) {
if (grid[i][j].x === obstacles[o].x && grid[i][j].y === obstacles[o].y) {
grid[i][j].obstacle = true;
} else if (grid[i][j].x != obstacles[o].x && grid[i][j].y != obstacles[o].y) {
//grid[i][j].obstacle = false;
}
}
for (let m = mirrors.length - 1; m >= 0; m--) {
if (grid[i][j].x + cellOffset.x== mirrors[m].x && grid[i][j].y + cellOffset.y == mirrors[m].y) {
grid[i][j].mirror = true;
} else {
grid[i][j].mirror = false;
}
}
if (grid[i][j].x + cellOffset.x == target.x && grid[i][j].y + cellOffset.y == target.y) {
grid[i][j].target = true;
} else {
grid[i][j].target = false;
}
if (grid[i][j].x == laserPen.x && grid[i][j].y + (rowH / 2) - (cellOffset.y / 4) == laserPen.y) {
grid[i][j].pen = true;
} else {
grid[i][j].pen = false;
}
}
}
}
但是,確定單元格是否包含障礙物的if語句似乎不起作用。
這有效(將grid [i] [j] .obstacle設置為true ):
for (let o = 0; o < obstacles.length; o++) {
if (grid[i][j].x === obstacles[o].x && grid[i][j].y === obstacles[o].y) {
grid[i][j].obstacle = true;
} else if (grid[i][j].x != obstacles[o].x && grid[i][j].y != obstacles[o].y) {
//grid[i][j].obstacle = false;
}
}
這不是(將grid [i] [j] .obstacle設置為false ):
for (let o = 0; o < obstacles.length; o++) {
if (grid[i][j].x === obstacles[o].x && grid[i][j].y === obstacles[o].y) {
grid[i][j].obstacle = true;
} else if (grid[i][j].x != obstacles[o].x && grid[i][j].y != obstacles[o].y) {
grid[i][j].obstacle = false;
}
}
我實際上添加了else(如果只是為了安全起見),但是它也無法通過簡單的else語句來工作。
我正在使用p5.js庫,對這里發生的任何見解將不勝感激。 謝謝!
經過測試后發現該錯誤。 我正在遍歷同一網格單元上的所有障礙(即,對於grid [2] [2]來說是測試障礙[0],對於grid [2] [2]來說是測試障礙[1])。 這意味着,如果數組中的第一個障礙被證明是正確的,而其他障礙物被證明是錯誤的,則整個grid [2] [2] .obstacle將會變為錯誤。 或直觀地進行映射:
grid[2][1] ...
grid[2][2].obstacle = true!
grid[2][2].obstacle = false.
grid[2][2].obstacle = false.
grid[2][3] ...
輸出:
grid[2][2].obstacle is false :(
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.