gpt4 book ai didi

javascript - 如果语句没有执行正确的代码?

转载 作者:行者123 更新时间:2023-11-30 15:29:54 25 4
gpt4 key购买 nike

因此,我正在尝试使用 javascript 开发一款用于练习的 Tic Tac Toe 游戏,但我遇到了障碍。我有一个应该返回 true 的 if 语句,但事实并非如此。这是一个示例。

var game = true;
var x = 'X';
var o = 'O';
var blank = '';

var turn = x;
var board = [blank, blank, blank,
blank, blank, blank,
blank, blank, blank];

function write() {

$('td').click(function() {
//Making sure that the block that was clicked can only be clicked once
var id = $(event.target).attr('id');
var digit = parseInt(id.slice(-1));
//check to see of the block has been clicked on
if (board[digit] = blank) {
board[digit] = turn;
$(board[digit]).html(turn.toUpperCase());
if (turn = x) {
turn = o;
} else if (turn = o) {
turn = x;
}

} else {
alert("That box has already been clicked on!")
}
});

}

最佳答案

乍一看,您有两个问题。

首先,event 是未定义的。在您的 .click 调用中将其定义为函数参数。

 $('td').click(function(event) { /* rest of the code */ }

其次,正如 Pointy 评论的那样,= 用于赋值,===== 用于比较。因此

if (board[digit] = blank) { /**/ }

需要

if (board[digit] === blank) { /**/ }

关于===== 之间的区别,您可以在这里获得更多信息 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness

简短版本,首选 === 除非你绝对确定你知道你在做什么并且想明确地使用 ==

关于javascript - 如果语句没有执行正确的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42398996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com