|
一个Javascript小游戏(二) |
| -->接续 function MovePiece() //移动棋子 { amov++; if(amov>=49) //移动到位 { document.all('b'+curpic).style.left=toX; document.all('b'+curpic).style.top=toY; if(comoved) //计算机移动结束,等待输入 { if(K>0) //显示移动步骤,并判断胜负 { whmove.innerHTML+='<BR>'+curpic+','+pa[curpic].col+','+pa[curpic].row; if(pa[1].row==n-1&&pa[2].row==n-1)gameover=true; } else { bkmove.innerHTML+='<BR>'+curpic+','+pa[curpic].col+','+pa[curpic].row; if(pa[0].row==0)gameover=true; } if(gameover){} else { comoved=false; moved=false; } } else //计算机移动 { if(K>0) { bkmove.innerHTML+='<BR>'+curpic+','+pa[curpic].col+','+pa[curpic].row; if(pa[0].row==0)gameover=true; } else { whmove.innerHTML+='<BR>'+curpic+','+pa[curpic].col+','+pa[curpic].row; if(pa[1].row==n-1&&pa[2].row==n-1)gameover=true; } if(gameover){} else { comoved=true; ComMove(); } } } else //继续移动 { var tm=(amov<40)?10:50-amov; setTimeout('MovePiece()',tm); curX+=mX; curY+=mY; document.all('b'+curpic).style.left=curX; document.all('b'+curpic).style.top=curY; } } function qiex(bal,wal1,wal2) //切西指数 { return bal.row*2-bal.col-wal1.col-wal1.row-wal2.col-wal2.row; } function ComMove() //计算机移动棋子 { var i,j,k=0,kt=0; var atnd=qiex(pa[0],pa[1],pa[2]); var btnd1=pa[0].row-pa[1].row; var btnd2=pa[0].row-pa[2].row; var toP=new PIECE(0,0); curpic=-1; if(K>0) //电脑执白 { for(var t_l=1;t_l<=2;t_l++) for(i=-1;i<=1;i++) for(j=-1;j<=1;j++) if((i!=0||j!=0)&&(pa[t_l].col+i==0||pa[t_l].col+i==1)&&pa[t_l].row+j>=0&&pa[t_l].row+j<=n) if(pa.CheckMoveTo(t_l,pa[t_l].col+i,pa[t_l].row+j)) { canmov[k].col=pa[t_l].col+i; canmov[k].row=pa[t_l].row+j; canmov[k].sel=t_l; if(canmov[k].row==n&&canmov[k].col==1)canmov[k].col=0; if(t_l==1)canmov[k].qiexn=qiex(pa[0],canmov[k],pa[2]); else canmov[k].qiexn=qiex(pa[0],pa[1],canmov[k]); k++; } if(btnd1<=0||btnd2<=0) { if(btnd1<btnd2)curpic=1; else if(btnd1>btnd2)curpic=2; var gowalk=-n*2; for(i=0;i<k;i++) if(curpic==canmov[i].sel||curpic<0) if(gowalk<canmov[i].qiexn) { gowalk=canmov[i].qiexn; kt=i; } if(cursel<0)cursel=canmov[kt].sel; toP.col=canmov[kt].col; toP.row=canmov[kt].row; } --------------------------------------------------------------------- 待续…… |