2012-03-01 4 views
-3

http://jsfiddle.net/dXL2v/ < ---- K 강사가 우리에게 준 코드 전체를 생각해 봤는데, 함수 안에있는 지저분한 코드의 대부분은 나에 의해 수행되었습니다. 그렇지만 질문은 여전히 ​​동일하게 유지됩니다. 값은 동일합니다.자바 스크립트 조건이 false를 반환합니다. 왜?

이들은 tic tac toe 게임을 위해 프로그래밍해야하는 큰 코드 im의 몇 가지 작은 발췌문으로, 각 행이나 col에 동일한 이미지가 3 개 있는지 확인하고, 그 다음에 u 표시 현재 플레이어가 승리했다는 메시지 ... 무슨 문제가있는 것이 "topRow [0] == player"조건이 false를 반환하면 다른 플레이어도 비교되지 않습니다 ... topRow [0]의 값이 설정됩니다. 이미지의 상대 경로 ("Images/x.gif")

두 플레이어가 있습니다. var PLAYER_X는 "Images/x.gif"로 설정되고 PLAYER_O는 "Images/o.gif" 이므로 위의 코드에서 플레이어 x 인 경우 보드에 2 X가 이미 있다고 생각했습니다. 보드를 클릭하면 코드를 통해 각 slo T는 topRow 배열에 "Images/x.gif"라는 값이 있습니다. 플레이어 X가 말한 메시지를 출력합니다 .. 대신 잘못된 메시지를 출력합니다 ... 내가 중단 점을 가지고 방화 광구를 실행하고 익스프레스 "topRow [0] == 플레이어 "그 false를 반환합니다 .. 나는 값을 확인하고 이것이 문제인지 아닌지는 모르겠지만 topRow 배열 내부의 값은"lmages/x.gif "로 나타나며 플레이어의 값은 "이미지/x.gif"로 표시하지만, 필자는 내 모든 맞춤법 검사와 경우는 동일하므로 메신저 난처한 상황에 빠진 ....되어있다

편집 : 나는이 물건에 checkCol 기능, 죄송 새로운 추가

.. 강사가 모든 기능을 정의했고 통과해야 할 매개 변수가 그의 프로그램을 기반으로 물건을 만들기로되어 있었다.

+0

시도 ===, JS는 그 방법을 비교하는 방법에 관해서 특히 씁니다. 더 나은 설명을 보려면이 부분을 참조하십시오. 특정 문제를 해결할 수는 없지만 JS에 대해 알아두면 좋습니다. http://stackoverflow.com/questions/359494/javascript-vs-does-it-matter-which-equal-operator-i-use –

+0

숙제 인 경우 태그를 추가하십시오. 또한, 당신은'checkRow ... '를 보여주고 있지만, 당신은'checkCol ...'을 호출하고있다. 혼란 스럽네. – mindandmedia

+0

topRow [0] 및 player 인 console.log()를 사용해 보셨습니까? – MyStream

답변

0

function checkColForVictory가 없습니다.

+0

큰 블록의 코드가 있습니다. 여기에 방금 남았습니다. –

+0

추가하십시오 우리는 테스트 할 수 있습니다. 문제를 보여주는 jsfiddle을 만들면 더 좋습니다. – Asken

+0

전체 코드 블록이있는 jsfiddle 페이지에 대한 링크를 추가했습니다. –

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; 
} 
+0

감사합니다. 알아 냈습니다. –

관련 문제