迷宫

<html>

       <head>

              <style>

                     body{

                     font-size:12px;

                     }

              </style>

              <scripttype="text/javascript">

                                          var isinit = false;

                     var_width = 200;

                     var_height = 200;

                     var_perlen = 20;

                     var_ctborder = 2;

                     varclickObj;

                     varlastclickobj;

                     vardiscolorstate ={none:"gainsboro",msover:"oldlace",msclick:"red"};

                     var_ds;         

                     vart;      

                     varcolarr = new Array(_height/_perlen);

                     for(vari=0,j=_height/_perlen;i<j;i++){

                            colarr[i]=new Array(_width/_perlen);

                     }

                    

                     varcolarrData = new Array(_height/_perlen);

                     for(vari=0,j=_height/_perlen;i<j;i++){

                            colarrData[i]=new Array(_width/_perlen);

                     }

                    

                     varc_onclick = function(e){

                            var _x,_y;

                            var e = e || event || window.event;

                            var srcE = e.target || e.srcElement;

                           

                            if(/^\d+::\d+/.test(srcE.id)){

                                   if(!lastclickobj){

                                          if(srcE.id!=(_height/_perlen-1)+"::"+(_width/_perlen-1)){

                                                 alert("请从入口进入。");

                                                 return;

                                          }else if(isinit){

                                                 _ds.innerHTML= "游戏开始。您用时0秒。";

                                                 opertime();

                                          }

                                   }

                                   if(lastclickobj){

                                                 if(srcE.id==lastclickobj.id){

                                                        srcE.style.backgroundColor=discolorstate.msover;

                                                        lastclickobj = srcE.beforeObj;

                                                        return;

                                                 }

                                   }

                                   if(lastclickobj&&isinit){

                                                 if(!checkLine(srcE)){

                                                        alert("路线错误。");

                                                        return;

                                       }

                                                 if(srcE.id=="0::0"){

                                                 srcE.style.backgroundColor=discolorstate.msclick;

                                                 alert("成功走出。");

                                                 window.clearInterval(t);

                                                 return;

                                          }

                                   }

                                  

                            if(isinit&&lastclickobj){

                                   if(!checkLine(srcE)){

                                                 alert("路线错误。");

                                                 return;

                                   }

                            }

                                   srcE.style.backgroundColor=discolorstate.msclick;

                                   srcE.beforeObj= lastclickobj;

                                   lastclickobj= srcE;

                            }

                     };

                    

                     varcheckLine = function(obj){

                                   var_b = false;

                                   vartempArr = obj.id.split("::");

                                   var_t1=parseInt(tempArr[0]);

                                   var_t2=parseInt(tempArr[1]);

 

                                   vartempobj = colarrData[_t1][_t2].split(",");

 

                                   for(vari=0;i<4;i++){

                                         

                                   if(tempobj[i]==1&& colarr[_t1][_t2]==1){

                                                 if(i==0){

                                                               if(lastclickobj.id==(_t1-1)+"::"+_t2){

                                                                             returntrue;

                                                               }

                                                 }elseif(i==1){

                                                               if(lastclickobj.id==_t1+"::"+(_t2+1)){

                                                                             returntrue;

                                                               }

                                                 }elseif(i==2){

                                                               if(lastclickobj.id==(_t1+1)+"::"+_t2){

                                                                             returntrue;

                                                               }

                                                 }else{

                                                               if(lastclickobj.id==_t1+"::"+(_t2-1)){

                                                                             returntrue;

                                                               }

                                                 }

                                          }

                                   }

                                  

                                   returnfalse;

                     };

                    

                     varopertime = function(){

                                   t=setInterval("displaytime()",1000);

                     };

                    

                     vardisplaytime = function(){

                            var ts = _ds.innerHTML;

                                   _ds.innerHTML=ts.replace(/\d+/,function(msg){ 

                                                 return(parseInt(msg)+1)+"";

                                   });

                     };

                     varc_onmousemove = function(e){

                                   vare = e || event || window.event;

                                   varsrcE = e.target || e.srcElement;

                                  

                                   if(srcE.style.backgroundColor==discolorstate.msclick){

                                          if(clickObj &&clickObj.id!=srcE.id&&clickObj.style.backgroundColor!=discolorstate.msclick){

                                                 clickObj.style.backgroundColor= discolorstate.none;

                                                 clickObj==null;

                                          }

                                          return;

                                   }

                                  

                                   if(clickObj&&clickObj.style.backgroundColor!=discolorstate.msclick&&clickObj.id!=srcE.id){

                                          clickObj.style.backgroundColor =discolorstate.none;

                                   }

 

                                   clickObj= srcE;

                                   srcE.style.backgroundColor= discolorstate.msover;

                     };

                    

                     varinit = function(){

                                   _ds= document.getElementById("display");

                                   varct = document.getElementById("content");

                                   ct.style.width  = (_width+_ctborder*2)+"px";

                                   ct.style.height= (_height+_ctborder*2)+"px";

                                   ct.style.borderWidth= _ctborder;

                                   var_hv = _height/_perlen;

                                   var_wv = _width/_perlen;

                                  

                                   for(vari=0;i<_hv;i++){

                                          for(var j=0;j<_wv;j++){

                                                 vardesktop = document.createElement("div");

                                                 desktop.style.position="absolute";

                                                 desktop.style.width  = _perlen+"px";

                                                 desktop.style.height= _perlen+"px";

                                                 desktop.style.top  = (_ctborder+i*_perlen)+"px";

                                                 desktop.style.left= (_ctborder+j*_perlen)+"px";

                                                 desktop.style.backgroundColor= discolorstate.none;

                                                 desktop.id= i+"::"+j;

                                                 desktop.onmousemove= c_onmousemove;

                                                 desktop.onclick= c_onclick;

                                                 if(i==0&&j==0){

                                                               desktop.innerHTML= "to";

                                                 }

                                                 if(i==(_hv-1)&&j==(_wv-1)){

                                                               desktop.innerHTML= "in";

                                                 }

                                                 ct.appendChild(desktop);

                                          }

                                   }      

                                  

                                  

                                  

                                  

                                   varmakeline = function(e){

                                  

                                   vare = e || event || window.event;

                                   varsrcE = e.target || e.srcElement;

 

                                   for(vari=0;i<_height/_perlen;i++){

                                          for(var h=0;h<_width/_perlen;h++){

                                                 varobj = document.getElementById(i+"::"+h);

                                                        colarr[i][h] = (obj.style.backgroundColor== discolorstate.msclick?"1":"0");

                                          }

                                   }

                                  

 

                                  

                                   for(vard=0,q=_height/_perlen;d<q;d++){

                                          for(var h=0,k=_width/_perlen;h<k;h++){

                                                        var t1 = (d==0?    "0":colarr[d-1][h]);

                                                   var t2 =(h==(k-1)?"0":colarr[d][h+1]);

                                                        var t3 =(d==(q-1)?"0":colarr[d+1][h]);

                                                        var t4 = (h==0?    "0":colarr[d][h-1]);

                                                        colarrData[d][h] =t1+","+t2+","+t3+","+t4;

                                          }

                                   }

 

                                   init();

                                   isinit= true;

                                   lastclickobj=null;

                                   clickObj=null;

 

                                   _ds.innerHTML= "路线已生成,请从入口进入游戏开始。";

 

                                   };

                                   vargl = document.getElementById("getLine");

                                   gl.onclick= makeline;

                                   varry = document.getElementById("replay");

                                   ry.onclick= function(){

                                                 window.location.href= window.location.href;

                                   };

                     };

                     window.onload= init;

              </script>

       </head>

       <bodystyle="margin:0;padding:0">

              <div id="content"style="position:static;border: solid black;"></div>

              <div id="display"style="margin:5 5 20 5">

                     玩法介绍:<br/>

                     1.在画面点出迷宫路线,in表示入口,to表示出口。按录制按钮生成迷宫路线<br/>

                     3.从入口进入,游戏开始,如果路线错误,回退。<br/>

                     4.走到出口,出迷宫。<br/>

                     (作者:周小虎anbangzhiguo@163.com )

              <div>

              <input type="button"value="录制路线"id="getLine"/>

 

              <input type="button"value="重来"id="replay"/>

       </body>

</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值