Javascript条件返回false。为什么?

时间:2012-03-01 18:09:24

标签: javascript

http://jsfiddle.net/dXL2v/< ---- K我认为教师给我们的整个代码,功能中的大部分杂乱的代码都由我完成,所以是的..但问题仍然是一样的,即使值相同,条件也会返回false。

这些是一个较大代码的几个小片段我应该为一个tic tac toe游戏编程,它应该检查每行或者col是否有3个相同的图像,如果有,那么你显示一个消息说当前玩家赢了...我遇到麻烦的是“topRow [0] == player”条件返回false所以其他人甚至没有得到比较... topRow [0]的值设置为图像的相对路径(“Images / x.gif”)

我有两个玩家,var PLAYER_X设置为“Images / x.gif”,PLAYER_O设置为“Images / o.gif” 所以根据上面的代码,我想如果我是玩家x并且我已经在主板上有2个X,如果我点击主板并且它通过代码并发现对于topRow数组中的每个插槽都有值“Images / x.gif”它将输出消息说玩家X赢了..而不是它输出错误信息...当我用断点运行firebug并粘贴在快递“topRow [0] == player”时它返回false ..我检查了值,我不知道这是不是问题,但topRow数组内的值显示为“lmages / x.gif”,而播放器的值显示为“Images / x.gif” “但我已经检查了我的所有拼写,案件是相同的,所以我很难过......

编辑:

我添加了checkCol函数,对不起这个东西的新手......教师定义了所有函数,并且要传递的参数应该根据他的程序使东西工作

2 个答案:

答案 0 :(得分:1)

我不确定你在问什么,这就是为什么我重新编写你的代码来检查tic-tac-toe行中的胜利。找出如何检查列中的胜利,我留给你或其他人......

var o = "Images/o.gif";
var x = "Images/x.gif";

var board = [[o,null,x],[x,x,x],[o,null,o]]; //for example

var currentPlayer = o;

function checkForVictory(currentPlayer){
    //check the rows
    for( var row = 0; row < 3; row++ )
    { 
       if( checkRowForVictory(board[row], currentPlayer) )
       {
         return true;
       }
    }
    return false;
}

function checkRowForVictory(row, player){
   for(var col = 0; col < row.length; col++ )
   { 
      if( row[col] != player ) return false;
   }
   return true;
}

答案 1 :(得分:0)

没有函数checkColForVictory。