读书人

js五子棋(没有写完)

发布时间: 2013-11-08 17:52:01 作者: rapoo

js五子棋(没写完)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><title>1</title><meta http-equiv="Content-type" content="text/html; charset=utf-8" /><style type="text/css">    *{margin:0;padding:0}    body{width:600px;margin:40px auto;}    td{width:50px;height:50px;border:solid 1px #000000;text-align: center;cursor:pointer;}</style></head><body>    <a href="javascript:reset();">reset</a>    <div id="main"></div>    <script>    var status;//状态    var p1='player1';     var p2='player2';    var pcrt=p1; //默认1先手    reset();         // ------------------------------------------------------------------    // 人机对战    function cpt(){             }     // ------------------------------------------------------------------    // 下子    function down(tid,i,j){         if(status==1)            return 0;        if(tid.innerHTML!='')            return 0;        if(pcrt==p1){            tid.innerHTML='#';            pcrt=p2;        }        else{            tid.innerHTML='@';            pcrt=p1;        }        document.getElementById('msg').innerHTML='current:'+pcrt;  //显示        pd(i,j,tid.innerHTML,pcrt);//执行判断    }     // ------------------------------------------------------------------    // 判断    function pd(i,j,inner,pcrt){        if(checkx(i,j,inner)){            done(pcrt);        }        else if(checky(i,j,inner)){            done(pcrt);        }        else if(checko(i,j,inner)){            done(pcrt);        }        else if(checkp(i,j,inner)){            done(pcrt);        }        else            return 0;    }     // ------------------------------------------------------------------    // 开始    function reset(){        status=0;        document.getElementById('main').innerHTML='';        z='<div id="msg">current:player1 </div><table cellspacing=0 border=1>';        // ------------------------------------------------------------------       // 动态生成表格        for(ii=1;ii<14;ii++){        z=z+'<tr>';        for(jj=1;jj<14;jj++)        z=z+'<td id="t'+ii+jj+'" onclick="down(this,'+ii+','+jj+')"></td>';        z=z+"</tr>";    }       z=z+"</table>";       document.getElementById('main').innerHTML=z;    }     // ------------------------------------------------------------------    // 结束    function done(winner){        status=1;        alert(winner+' win the game');    }     // ------------------------------------------------------------------    //  获取表格内容    function value(ni,nj){        if(ni>0&&nj>0&&ni<13&&nj<13)            return document.getElementById('t'+ni+nj).innerHTML;        else            return '!';    }    // ------------------------------------------------------------------    // 判断x方向    function checkx(xi,xj,c){        if(value(xi+1,xj)==c&&value(xi+2,xj)==c&&value(xi+3,xj)==c&&value(xi+4,xj)==c)            return 1;        else if(value(xi+1,xj)==c&&value(xi+2,xj)==c&&value(xi+3,xj)==c&&value(xi-1,xj)==c)            return 1;        else if(value(xi+1,xj)==c&&value(xi+2,xj)==c&&value(xi-1,xj)==c&&value(xi-2,xj)==c)            return 1;        else if(value(xi+1,xj)==c&&value(xi-1,xj)==c&&value(xi-2,xj)==c&&value(xi-3,xj)==c)            return 1;        else if(value(xi-4,xj)==c&&value(xi-1,xj)==c&&value(xi-2,xj)==c&&value(xi-3,xj)==c)            return 1;        else            return 0;    }     // ------------------------------------------------------------------    // 判断y方向    function checky(yi,yj,c){        if(value(yi,yj+1)==c&&value(yi,yj+2)==c&&value(yi,yj+3)==c&&value(yi,yj+4)==c)            return 1;        else if(value(yi,yj+1)==c&&value(yi,yj+2)==c&&value(yi,yj+3)==c&&value(yi,yj-1)==c)            return 1;        else if(value(yi,yj+1)==c&&value(yi,yj+2)==c&&value(yi,yj-1)==c&&value(yi,yj-2)==c)            return 1;        else if(value(yi,yj+1)==c&&value(yi,yj-1)==c&&value(yi,yj-2)==c&&value(yi,yj-3)==c)            return 1;        else if(value(yi,yj-4)==c&&value(yi,yj-1)==c&&value(yi,yj-2)==c&&value(yi,yj-3)==c)            return 1;        else            return 0;    }     // ------------------------------------------------------------------    // 判断左对角线    function checko(oi,oj,c){        if(value(oi+1,oj+1)==c&&value(oi+2,oj+2)==c&&value(oi+3,oj+3)==c&&value(oi+4,oj+4)==c)            return 1;        else if(value(oi+1,oj+1)==c&&value(oi+2,oj+2)==c&&value(oi+3,oj+3)==c&&value(oi-1,oj-1)==c)            return 1;        else if(value(oi+1,oj+1)==c&&value(oi+2,oj+2)==c&&value(oi-1,oj-1)==c&&value(oi-2,oj-2)==c)            return 1;        else if(value(oi+1,oj+1)==c&&value(oi-1,oj-1)==c&&value(oi-2,oj-2)==c&&value(oi-3,oj-3)==c)            return 1;        else if(value(oi-4,oj-4)==c&&value(oi-1,oj-1)==c&&value(oi-2,oj-2)==c&&value(oi-3,oj-3)==c)            return 1;        else            return 0;    }     // ------------------------------------------------------------------    // 判断又对角线    function checkp(pi,pj,c){        if(value(pi-1,pj+1)==c&&value(pi-2,pj+2)==c&&value(pi-3,pj+3)==c&&value(pi-4,pj+4)==c)            return 1;        else if(value(pi+1,pj-1)==c&&value(pi-1,pj+1)==c&&value(pi-2,pj+2)==c&&value(pi-3,pj+3)==c)            return 1;        else if(value(pi+1,pj-1)==c&&value(pi+2,pj-2)==c&&value(pi-1,pj+1)==c&&value(pi-2,pj+2)==c)            return 1;        else if(value(pi-1,pj+1)==c&&value(pi+1,pj-1)==c&&value(pi+2,pj-2)==c&&value(pi+3,pj-3)==c)            return 1;        else if(value(pi+4,pj-4)==c&&value(pi+1,pj-1)==c&&value(pi+2,pj-2)==c&&value(pi+3,pj-3)==c)            return 1;        else            return 0;    }</script></body></html>
 

读书人网 >JavaScript

热点推荐