Javascript 数组不能与if-else语句一起正常工作
我正在做一个井字游戏,但由于某些原因,设置赢的条件会导致棋盘完全翻转,并将计算机的选择放在左边的所有方格上,我相信这很好,因为我没有在赢的时候为游戏写一个重置,但问题是我相信它会在没有赢的情况下导致赢。一如既往,我们非常感谢您的帮助! 警告不要按原样运行,因为FOR循环涉及的问题会使浏览器崩溃 具体代码。整个应用程序如下所示:Javascript 数组不能与if-else语句一起正常工作,javascript,Javascript,我正在做一个井字游戏,但由于某些原因,设置赢的条件会导致棋盘完全翻转,并将计算机的选择放在左边的所有方格上,我相信这很好,因为我没有在赢的时候为游戏写一个重置,但问题是我相信它会在没有赢的情况下导致赢。一如既往,我们非常感谢您的帮助! 警告不要按原样运行,因为FOR循环涉及的问题会使浏览器崩溃 具体代码。整个应用程序如下所示: 函数checkWin(){ for(设i=0;i checkWin(); if(rowWin === true || columnWin === true || diag
函数checkWin(){
for(设i=0;i
您正在对行和列进行迭代,这很好。
但是你没有板长对角线。所以你在那里做的没有意义
如何检查对角线?
(这看起来像是家庭作业,所以不会告诉答案)您正在迭代行和列,这很好。 但是你没有板长对角线。所以你在那里做的没有意义 如何检查对角线?
(这看起来像是家庭作业,所以不会告诉答案)你的主要问题不是赢(正如@aepure提到的,没有正确检查),而是计算机填充了所有左边的字段。它做到了,因为您有一个对
tttGame
的无限递归调用(不在问题代码中)。我建议只在player2.turn
的情况下调用computerAI
,并在游戏结束后将player1.turn
和player2.turn
转到false
。这是“以某种方式”起作用的(消除了递归循环,所以计算机一次只使用一个点),但并不能解决“丢失”部分的代码缺失问题,也不能解决游戏结束检查条件无效的问题。当然,游戏仍然缺少重置,但至少它停止挂起。你的主要问题不是赢(正如@aepure所提到的,没有正确检查),而是计算机填充了所有左边的字段。它做到了,因为您有一个对tttGame
的无限递归调用(不在问题代码中)。我建议只在player2.turn
的情况下调用computerAI
,并在游戏结束后将player1.turn
和player2.turn
转到false
。这是“以某种方式”起作用的(消除了递归循环,所以计算机一次只使用一个点),但并不能解决“丢失”部分的代码缺失问题,也不能解决游戏结束检查条件无效的问题。当然,游戏仍然缺少重置,但至少它停止挂起。首先,你有一个无限循环,所以我建议我们先去掉它。
看看你不断让电脑转动的代码,这就是无限循环位。checkWin也不起作用。。但是首先让我们把无限循环放在一边
这一点->
checkWin();
if(rowWin === true || columnWin === true || diagonalWin === true) {
$(".teal").text("You win");
}
// else { //comment out this else part, so at least play return to you.
player1.turn = true;
player2.turn = false;
// }
首先,你有一个无限循环,所以我建议我们先去掉它。 看看你不断让电脑转动的代码,这就是无限循环位。checkWin也不起作用。。但是首先让我们把无限循环放在一边 这一点->
checkWin();
if(rowWin === true || columnWin === true || diagonalWin === true) {
$(".teal").text("You win");
}
// else { //comment out this else part, so at least play return to you.
player1.turn = true;
player2.turn = false;
// }
您的检查对角线逻辑有问题 e、 g即使只有一个单元板[0][0]=X,则对角线温=真
检查胜利的更好方法是只检查最近移动的行、列和对角线检查对角线逻辑有问题 e、 g即使只有一个单元板[0][0]=X,则对角线温=真
检查胜利的更好方法是只检查最新移动的行、列和对角线我只是在最后一个
else
中放了一个控制台.log(“dun-dun!”,I,j)
,然后运行游戏,它似乎永远不会增加I
。你一定有一个很糟糕的情况,我只是在最后一个else
中放了一个console.log(“dun-dun!”,i,j)
,然后运行了这个游戏,它似乎从来没有增加过i
。你一定有一个很糟糕的情况,谢谢你,我不确定是什么导致了无限循环。啊,谢谢你,我不确定是什么导致了无限循环。可能是我一整天都在努力的地方,但肯定看到了对角线的问题,那就是它实际上只检查了一个对角线点,就赢了,哎哟。可能是我一整天都在努力的地方,但我确实看到了对角线的问题,那就是它实际上只检查1个对角线点就赢了,哎哟。