附件是一个小的JavaScript的程序游戏,但是有点错误。请大家帮忙看看。谢谢!

解决方案 »

  1.   

    1 52行最后添加“)”
    2 全部abc改为play
    3 this.Form改为this.form暂时是这些
      

  2.   

    这是一个井字游戏,就是小时候,我们都玩过的那个呀!我也不知道,什么地方错了!
    全部abc改为play,这个我知道的。
    52行少了“)”我加上了,可是,还是不行呀!哪里错了呢!
      

  3.   

    <html>
    <head>
    <TITLE>Listing 7.4</TITLE>
    <script language="JavaScript">
    var row=0;
    var col=0;
    var playerSymbol="X";
    var computerSymbol="O";
    board=new createArray(3,3);
    //////////////////////////////////
    function createArray(row,col)
    {
    var index=0;
    this.length=(row*10)+col;
    for(var x=1;x<=row;x++)
    {
        for(var y=1;y<=col;y++)
      {
        index=(x*10)+y;
        this[index]="";
              }
    }}
    /////////////////////////////////
    function buildBoard(form)
    {
    var index=0;
    for(var field=0;field<=8;field++)
            {
      index=eval(form.elements[field].name);
      form.elements[field].value=board[index];
    }
    }
    ////////////////////////////////////////////////
    function clear(form)
    {
    var index=0;
    for(var field=0;field<=8;field++)
    {
    form.elements[field].value="";
    index=eval(form.elements[field].name);
    board[index]="";
    }
    }
    ////////////////////////////////////////
    function win(index)
    {
    var win=false;
    //check rows///////////////////////////////////////////////
    if((board[index]==board[(index<30)?index+10:index-20])&&
    (board[index]==board[(index>20)?index-10:index+20]))
    {
    win=true;
    }
    //check columns/////////////////////////////////////////////
    if((board[index]==board[(index%10<3)?index+1:index-2])&&
    (board[index]==board[(index%10>1)?index-1:index+2]))
    {
    win=true; 
    }
    //check diagonals
    if(Math.round(index/10)==index%10)
    {
    if((board[index]==board[(index<30)?index+11:index-22])&&
       (board[index]==board[(index>11)?index-11:index+22]) )
    {
    win=true;
    }
    if(index==22)
    {
    if((board[index]==board[13])&&(board[index]==board[31]))
    {
    win=true;
    }
    }
    }
    if((index==31)||(index==13))
    {
    if((board[index]==board[(index<30)?index+9:index-18])&&
       (board[index]==board[(index>11)?index-9:index+18]) )
    {
    win=true;
    }
    }
    return win;}
    function play(form,field)
    {
    alert("test");
    var index=eval(field.name);
    var playIndex=0;
    var winIndex=0;
    var done=false;
    field.value=playerSymbol;
    board[index]=playerSymbol;
    //check for player win
    if(win(index))
    {
    alert("Good Play! You Win!")
    clear(form);
    }
    else
    {
    for(row=1;row<=3;row++)
    {
    for(col=1;col<=3;col++)
    {
      index=(row*10)+col;
      if(board[index]=="")
      {
       board[index]=computerSymbol;
       if(win(index))
         {
    playIndex=index;
    done=true;
    board[index]="";
    break;
         }
        board[index]="";
      }
    }
        if(done)
           break;
    }
    //check if computer can win
        if(done)
          {
    board[playIndex]=computerSymbol;
            buildBoard(form);
    alert("Computer Just Won!");
    clear(form);
          }
         else
    {
    for(row=1;row<=3;row++)
    {
    for(col=1;col<=3;col++)
    {
      index=(row*10)+col;
      if(board[index]=="")
      {
       board[index]=playerSymbol;
       if(win(index))
         {
    playIndex=index;
    done=true;
    board[index]="";
    break;
         }
        board[index]="";
      }
    }
        if(done)
           break;
    }
    if(done)
    {
    board[playIndex]=computerSymbol;
    buildBoard(form);
    }else
    {
      for(row=1;row<=3;row++)
      {
    for(col=1;col<=3;col++)
    {
    index=(row*10)+col;
    if(board[index]=="")
    {
    playIndex=index;
    done=true;
    break;
    }
    }
        if(done)
    break;
      }
      board[playIndex]=computerSymbol;
      buildBoard(form);
    }
    }
        }
    }</script>
    </head>
    <body>
    <Form method=post>
    <Table>
    <TR>
    <TD>
    <input type=text size=3 name="11" onFocus="if(this.value!=''){blur();}" onChange="play(this.form,this);">
    </TD>
    <TD>
    <input type=text size=3 name="12" onFocus="if(this.value!=''){blur();}" onChange="play(this.form,this);">
    </TD>
    <TD>
    <input type=text size=3 name="13" onFocus="if(this.value!=''){blur();}" onChange="play(this.form,this);">
    </TD>
    </TR>
    <TR>
    <TD>
    <input type=text size=3 name="21" onFocus="if(this.value!=''){blur();}" onChange="play(this.form,this);">
    </TD>
    <TD>
    <input type=text size=3 name="22" onFocus="if(this.value!=''){blur();}" onChange="play(this.form,this);">
    </TD>
    <TD>
    <input type=text size=3 name="23" onFocus="if(this.value!=''){blur();}" onChange="play(this.form,this);">
    </TD>
    </TR>
    <TR>
    <TD>
    <input type=text size=3 name="31" onFocus="if(this.value!=''){blur();}" onChange="play(this.form,this);">
    </TD>
    <TD>
    <input type=text size=3 name="32" onFocus="if(this.value!=''){blur();}" onChange="play(this.form,this);">
    </TD>
    <TD>
    <input type=text size=3 name="33" onFocus="if(this.value!=''){blur();}" onChange="play(this.form,this);">
    </TD>
    </TR>
    </TABLE>
    <Input Type=button value="I'm Done-Your Go">
    <Input Type=button value="Start Over" onClick="clear(this.form);">
    </body>
    </html>能玩