渣渣用JavaScript开发的消消乐,由于没有按照正规消消乐形式生成,是随机产生图形,所以存在一个算法bug,具体看下面,高手想到可以告诉我
2017-01-18 13:58
871 查看
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script style="text/javascript"> var t; //先声明一维 var div; var k1=0;//记录点击动物上方和改动物相同的个数 var k2=0;//记录点击动物下方和改动物相同的个数 var k3=0;//记录点击动物左方和改动物相同的个数 var k4=0;//记录点击动物右方和改动物相同的个数 var a=new Array(4); var b=new Array(4); var c=new Array(4); var i1=0; var j1=0; var t1=0; var k=false;//记录点击每次都保证查找了上下左右 var d=document.getElementsByTagName('img'); var time=0,time1; function Startgame(){ fun1(); for(var j=0;j<12;j++) for(var i=0;i<18;i++) { t=true; div=document.createElement("div"); div.style.position="absolute"; div.style.width="60px"; div.style.height="60px"; div.style.background=getRandomPicture(); div.style.top=((j%12)*60+20)+"px"; div.style.left = ((i%18)*60+20)+"px"; div.style.border= "0px solid #ddd"; div.style.borderRadius="6px"; div.setAttribute('onclick','getMousePos(event,div)'); div.id=""+(j*18+i+1); document.body.appendChild(div); } } function getMousePos(event){ t=false; var i; var j; var e = event || window.event; var j=parseInt((e.clientY-20)/60); var i=parseInt((e.clientX-20)/60); isDisappear(j,i); } function isDisappear(j,i){ var div=document.getElementById(""+(j*18+i+1)); FindUp(j,i,div); //FindDown(j,i,div); //FindLeft(j,i,div); //FindRight(j,i,div); } function FindUp(j,i,div){ var div1=document.getElementById(""+((j-1)*18+i+1)); if(div1!=null&&div1.style.background==div.style.background) { ++k1; isDisappear(j-1,i); } else if(k1!=0) { for(var t=1;t<=k1+1;t++) { document.body.removeChild(document.getElementById(""+((j++)*18+i+1))); clik(); } k1=0; } } function FindDown(j,i,div){ var div1=document.getElementById(""+((j+1)*18+i+1)); if(div1!=null&&div1.style.background==div.style.background) { ++k2; isDisappear(j+1,i); console.log(k2); } else if(k2!=0) { for(var t1=1;t1<=k2+1;t1++) { document.body.removeChild(document.getElementById(""+((j--)*18+i+1))); clik(); } k2=0; } } function FindLeft(j,i,div){ var div1=document.getElementById(""+(j*18+i)); if(div1!=null&&div1.style.background==div.style.background) { ++k3; isDisappear(j,i-1); console.log(k3); } else if(k3!=0){ for(var t2=1;t2<=k3+1;t2++) { document.body.removeChild(document.getElementById(""+(j*18+(i++)+1))); clik(); } k3=0; } } function FindRight(j,i,div){ var div1=document.getElementById(""+(j*18+i+1+1)); if(div1!=null&&div1.style.background==div.style.background) { ++k4; isDisappear(j,i+1); console.log(k4); } else if(k4!=0){ for(var t3=1;t3<=k4+1;t3++) { document.body.removeChild(document.getElementById(""+(j*18+(i--)+1))); clik(); } k4=0; } } function getRandomPicture() { var cArray = ['0','1','2','3','4','5']; var cIndex = Math.round(Math.random()*5); var src='url("img/filehelper_14844657'+cArray[cIndex]+'.jpg")'; return src; } function setnumber(n){ if(n<10) return '0'+'0'+n; else if(n>=10&&n<=99) return '0'+n; else return ''+n; } function clik(){ time=setnumber(time); for(var i=0;i<d.length;i++){ d[i].src='img/'+time.charAt(i)+'.png'; } time++; } function fun1(){ clik(); }; </script> </head> <body style="width:100%;height:100%;background: gray;position: absolute;"> <button style="left: 1130px;width: 100px;height: 50px;position: absolute" onclick="Startgame()">游戏开始</button> <div style="left: 1130px;width: 200px;height: 100px;top: 100px;position: absolute;font-size: 30px;"> <table> <tr> <td>得分:</td> <td><img src="http://www.cnblogs.com/weixiaoling/p/img/0.png"></td> <td><img src="http://www.cnblogs.com/weixiaoling/p/img/0.png"></td> <td><img src="http://www.cnblogs.com/weixiaoling/p/img/0.png"></td> </tr> </table> </div> </body> </html>
单一从某个方向可以消除,但是用递归全部找到同色时消除就出现bug了。
运行截图
游戏开始
得分: |
相关文章推荐
- 通过一个可以随机产生0和1的随机数生成产生0到n的随机数
- java项目中普遍存在的一个bug,用户直接可以通过url访问本人没有权限的页面
- 优先队列,由于优先队列的树形结构是完全二叉树,所以可以使用数组的形式去存储,我的上一个博客是用二叉树的形式去存储优先队列的
- 你就是一个画家!你现在想绘制一幅画,但是你现在没有足够颜色的颜料。为了让问题简单,我们用正整数表示不同颜色的颜料。你知道这幅画需要的n种颜色的颜料,你现在可以去商店购买一些颜料,但是商店不能保证能供应所有颜色的颜料,所以你需要自己混合一些颜料。混合两种不一样的颜色A和颜色B颜料可以产生(A XOR B)这种颜色的颜料(新产生的颜料也可以用作继续混合产生新的颜色,XOR表示异或操作)。本着勤俭节约的
- javascript随机生成字符串,可以用来生成随机密码
- 基础算法测试——生成一个1-10之间的随机整数组合
- 我的一个模拟内存分配的小程序,还存在些Bug,希望高手能够指点!
- 基础算法测试——生成一个1-10之间的随机整数组合
- 基础算法测试——生成一个1-10之间的随机整数组合
- DMP文件的生成和使用(转),由于须要取得用户出现问题的信息,所以须要取得demp信息,可以通过本方法获取。
- 下面是一个残缺的程序,不过大体功能是可以看出来的,我实在是改不了了,急啊!!望高手指点!!!
- 最近常用的一个算法(生成不重复的随机数组)
- 产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。自己写的算法
- 基础算法测试——生成一个1-10之间的随机整数组合
- 修改magento页面的title,description等------------进而可以写一个descroption数组,让description随机生成-----方便seo,节省在添加产品的时候添加descrition浪费时间
- js做拼图游戏存在随机生成的图形,有时不可还原的问题
- javascript -- 发现之前开发的paypal跳转伪装下单站的程序存在重大的BUG
- 一个无聊男人的疯狂《数据结构与算法分析-C++描述》学习笔记 用C++/lua/python/bash的四重实现(7)习题2.8 随机数组的三种生成算法
- 基础算法测试——生成一个1-10之间的随机整数组合
- 图形界面应用展示一个立方体和球体 -可以将java3d图形生成图片文件