javascript雷区,JavaScript ??

js实现网页版扫雷,新手,如何实现除显示当周边无雷时将周边的无雷区全部显示出来。

用递归啊。你肯定已经做了一个方法用来检测当前点周边8个点是否无雷了吧?对于无雷的点逐个再次调用该方法。

创新互联公司专业为企业提供宣城网站建设、宣城做网站、宣城网站设计、宣城网站制作等企业网站建设、网页设计与制作、宣城企业网站模板建站服务,10余年宣城做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

以下是伪码示例. isBad是用来检测指定的点是否是雷的方法

function checkRimPoint(x, y) {

var points = [[x-1,y-1],[x,y-1],[x+1,y-1],[x-1,y],[x+1,y],[x-1,y+1],[x,y+1],[x+1,y+1];

for(var i = 0; i points.length; i++) {

if (! isBad(points[i][0], points[i][1])) {

showPoint(points[i][0], points[i][1]));//这个不是雷,调用方法显示这个点

checkRimPoint(points[i][0], points[i][1])); //对该点递归处理

}

}

}

以上只是个思路,没有实际价值哦,我记得展开后的效果一种可能是到边界了,另一种可能就是显示周围有几个雷的那种数字框。不过核心就是递归处理。

如果有帮助的话望采纳

jQuery怎样实现扫雷

1)jquery.tableGen.js,这段js的作用是产生一个表格,表格中显示数字和雷区,调用的方法很简单,如下:

var options ={

rows:5,

cols:5,

percent:0.1

};

$("table").tableGen(options);  

思路是:根据table的单元格的数目随机产生percent的雷,并填充td。然后遍历所有的td,查找周围雷的个数来填充单元格的数字

[javascript] view plain copy

var neigUp = new Array();

var neig = new Array();

var neigDw = new Array();

var cols,rows;

var table,tds;

var colors =["black","blue","red","orange","yellow","green","black","black"];   var mineNum ;

function($){

var randoms = function(max,percent){

// General digital between 0 and max num times

if(!max)max =100;

if(!percent) percent =0.1;

num = max*percent;

var i=0;

var arr = new Array();

while(inum)   arr[i++]=Math.floor(Math.random()*max);

return arr;

}

$.fn.tableGen = function(options){

var setting = $.extend({

rows:10,

cols:10,

percent:0.1

},options || {}

);

rows = setting.rows;

cols = setting.cols;

neigUp = [-(cols+1),-cols,-(cols-1)];

neig =[-1,1];

neigDw =[cols-1,cols,cols+1];  

var str = "";

for(var j=0;jsetting.rows;j++){

str+="tr";

for(var i=0;isetting.cols;i++){

str+="td"+i+"/td";

}

str+="/tr";

}

this.empty();

this.append(str);

$("td",this).addClass("org");       // orginal color

//fill

var arr = randoms(setting.rows*setting.cols,setting.percent);

tds = $("td",this);

mineNum = arr.length;

for(var i=0;iarr.length;i++){

$(tds[arr[i]]).addClass("mine").html("span"+"*"+"/span").find("span").css("opacity",0);

}

// add tips number to regular cells

var $this =this;

tds.each(function(i){

if($(this).text() == "*") return;

var cnt = 0;

var seq = i;

for(var i=0;ineig.length;i++){

var p = neig[i]+seq;

if(tds[p]Math.floor(p/cols) == Math.floor(seq/cols)  $(tds[p]).text() == "*") cnt++;

}

for(var i=0;ineigUp.length;i++){

var p = neigUp[i]+seq;

if(tds[p]Math.floor(p/cols)+1 == Math.floor(seq/cols ) $(tds[p]).text() == "*") cnt++;

}

for(var i=0;ineigDw.length;i++){

var p = neigDw[i]+seq;

if(tds[p]Math.floor(p/cols)-1 == Math.floor(seq/cols)  $(tds[p]).text() == "*") cnt++;

}

if(!cnt)    { cnt = ""; colors[""]="";}

$(this).html("span"+cnt+"/span").css("color",colors[cnt]).find("span").css("opacity",0);

});

tds.addClass("mark");

} // tableGen Fn end

)(jQuery);

2)jquery.fill.js。这段代码的作用是定义点击事件,每次点击根据点击的内容来显示周围的区域或者提示成功失败

[javascript] view plain copy

(function($){

neig =[-1,1];

neigDw =[cols];

neigUp = [-cols];

var recover =function(td,table){

if(!td)       return;

if(!td.attr)  td = $(td);

if(!td.hasClass("mark")){

return;

}

if(td.text() == ""){

td.removeClass("mark").find("span").css("opacity",1);

}

else if(td.text() !="*"){

td.removeClass("mark").find("span").css("opacity",1);

return;

}

else if(td.text() == "*"){

return;

}

var seq = td.index("td",table);

tds = table.filter("td");

/*----------------------------*/

for(var i=0;ineig.length;i++){

var p = neig[i]+seq;

if(tds[p]Math.floor(p/cols) == Math.floor(seq/cols)  $(tds[p]).text() != "*") {

recover($(tds[p]),table);

}

}

for(var i=0;ineigUp.length;i++){

var p = neigUp[i]+seq;

if(tds[p]Math.floor(p/cols)+1 == Math.floor(seq/cols ) $(tds[p]).text() != "*") {

recover($(tds[p]),table);

}

}

for(var i=0;ineigDw.length;i++){

var p = neigDw[i]+seq;

if(tds[p]Math.floor(p/cols)-1 == Math.floor(seq/cols)  $(tds[p]).text() != "*") {

recover($(tds[p]),table);

}

}

}

$.fn.fill = function(){

table = $(this);

tds =$("td",table);

var mineCnt = 0;

tds.click(function(event){

if($(this).text() != "*"){

if(event.altKey){

tds.removeClass("mark").find("span").css("opacity",1);

var rs = confirm("No Bomb here !Bad Luck,Try Again?");

if(rs){

table.tableGen(options).fill();

}

return;

}

}

if($(this).text() == "*"){

$(this).removeClass("mark").find("span").css("opacity",1);

var event = event || window.event;

if(event.altKey){

mineCnt++;

if(mineCnt == mineNum){

var rs = confirm("congratulations!Try Again?");

if(rs){

table.tableGen(options).fill();

}

return;

}

return;

}

// Game over

tds.removeClass("mark").find("span").css("opacity",1);

var rs = confirm("Bomb!Bad Luck,Try Again?");

if(rs){

table.tableGen(options);

table.fill();

}

}

else if($(this).text() !="*"  $(this).text() !=""){

$(this).removeClass("mark").find("span").css("opacity",1);

}

else

recover($(this),tds);

});

};

})(jQuery);

[html] view plain copy

!-- !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" ""

head

script type="text/javascript" src="jquery.js"/script

script type="text/javascript" src="jquery.table.js"/script

script type="text/javascript" src="jquery.fill.js"/script

titleMine/title

style type="text/css"

table{

table-layout: fixed;

}

.org {

border:1px solid black;

background-color:white;

overflow: hidden;

width: 10px;

height:10px;

}

.mine{

}

.mark{

background-color: orange;

}

.flag{

background: url(flag.png);

background-color: blue;

}

/style

/head

body

h3Mine Game/h3

table colspan='4'

/table

script type="text/javascript" 

var options ={

rows:5,

cols:5,

percent:0.1

};

$("table").tableGen(options);

$("table").fill();

/script

/body

/html --

web前端开发培训机构哪个好

比较好的web前端开发培训机构推荐千锋教育,千锋教育以成为一个有情怀、有良心、有品质的一流教育机构为企业愿景,以帮助更多迷茫的学生实现他们的梦想为企业使命。

随着时代的发展,网络已经成为人们的生活、工作的必需品。随着新兴行业的兴起和发展,越来越多的人青睐web前端开发的学习,web前端开发前景广阔,薪资高,就业率高,入门也是很简单的,吸引了越来越多的人入门前端行业。web前端作为近几年新兴的软件开发语言,更是得到了多人一致的好评和青睐。既然web前端这么受欢迎,学习这门课程当然前景更可观。目前市面上的web前端开发学习,一般在4-6个月左右。学习方式一般有两种,一种是面授,一种是线上学习。欢迎咨询千锋教育。

想要了解更多关于web前端开发的相关信息,推荐咨询千锋教育。千锋企合作部整合大量企业客户资源,紧抓当下企业需求,将技术和项目完美结合千锋课程体系,力求培养更多优质人才服务企业,不断提升学员竞争力,链接企业用人标准的培训课程及实战项目,让企业招聘用人的技术要求与千锋学员的技术充分对接。近年来不断引进阿里钉钉小程序技术、红帽认证、腾讯云、亚马逊等,通过与企业的深度融合实现千锋教研和就业服务的迭代升级,专业性值得信赖。

当前标题:javascript雷区,JavaScript ??
网页路径:https://www.cdcxhl.com/article14/dsisjde.html

成都网站建设公司_创新互联,为您提供网站设计服务器托管企业建站移动网站建设企业网站制作动态网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

网站优化排名