2014-09-13 4 views
1

저는 HTML, CSS 및 Javascript를 사용하여 간단한 tic-tac-toe 게임을 만들려고합니다.Javascript Typerror 변수가 정의되지 않았습니다.

플레이어 이동을위한 아래 기능에서는 JSON 개체의 Typeerror 때문에 ComputerMove 함수를 호출 할 수 없습니다. 여기

function Mymove(idValue) 
{ 
var flag=0; 
var image = document.getElementById(idValue); 
if (image.src.match("blank.png")) { 
image.src = "X.png"; 
flag=Check(); 
if (flag==1) 
    { 
    alert("You Won"); 
    reset(); 
    return; 
    }; 
ComputerMove(); 
}; 
} 
function Check(){ 
    for (var i =0 ; i <= 8;i++) { 
    var image=document.getElementById(winList[i].a); 
    if (!image.src.match("blank.png")) { 
    if(image.src==document.getElementById(winList[i].b).src && image.src==document.getElementById(winList[i].c).src) 
    return 1; 
} 
} 

는 JSON 객체 아래 : -

var winList =[ 
    {a:1,b:2,c:3}, 
    {a:4,b:5,c:6}, 
    {a:7,b:8,c:9}, 
    {a:1,b:4,c:7}, 
    {a:2,b:5,c:8}, 
    {a:3,b:6,c:9}, 
    {a:1,b:5,c:9}, 
    {a:3,b:5,c:7}]; 

기능이 항상 작동 체크, 나는이 오류 발생 ComputerMove 후 발견 디버깅하는 동안

TypeError: winList[i] is undefined 

같은 콘솔 응답 () 함수가 호출되지 않습니다. 도와주세요.

+0

을'flag'가'은'ComputeMove()가'실행되지 않는 1' 경우. 괜찮습니까? –

답변

1

귀하의 winList 배열은 0에서 걸쳐 인덱스로, 8의 길이 - 따라서 스크립트 때 충돌 - 액세스 7.

루프 for (var i =0 ; i <= 8;i++) 시도 undefinedwinList[8]합니다 (i == 8) aundefined (winList[i].a)에 액세스 해보세요.

는 다음에 루프 조건을 변경해보십시오 : for (var i = 0 ; i < 8; i++)

+0

네, 제 문제를 해결했습니다. 감사. – zion

+0

@ zion, 위대한 - 다음 대답으로 표시하십시오 :) – JAM

+0

그것은 3 분이 더 필요합니다 .. 나는 그것을 더 빨리 할 것입니다. :) – zion

관련 문제