全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

JS实现的走迷宫小游戏完整实例

本文实例讲述了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>JS打造的走迷宫游戏</title>
</head>
<body>
<SCRIPT>
function ShowMenu(bMenu) {
document.all.idFinder.style.display = (bMenu) ? "none" : "block"
document.all.idMenu.style.display = (bMenu) ? "block" : "none"
idML.className = (bMenu) ? "cOn" : "cOff"
idRL.className = (bMenu) ? "cOff" : "cOn"
return false
}
</SCRIPT>
<STYLE>
<!--
A.cOn {text-decoration:none;font-weight:bolder}
#article {font: 12pt Verdana, geneva, arial, sans-serif; background: white; color: black; padding: 10pt 15pt 0 5pt}
#article P.start {text-indent: 0pt}
#article P {margin-top:0pt;font-size:10pt;text-indent:12pt}
#article #author {margin-bottom:5pt;text-indent:0pt;font-style: italic}
#pageList P {padding-top:10pt}
#article H3 {font-weight:bold}
#article DL, UL, OL {font-size: 10pt}
-->
</STYLE>
<SCRIPT>
<!--
function addList(url,desc) {
if ((navigator.appName=="Netscape") || (parseInt(navigator.appVersion)>=4)) {
var w=window.open("","_IDHTML_LIST_","top=0,left=0,width=475,height=150,history=no,menubar=no,status=no,resizable=no")
var d=w.document
if (!w._init) {
d.open()
d.write("<TITLE>Loading...</TITLE><EM>Loading...</EM>")
d.close()
w.opener=self
window.status="Personal Assistant (Adding): " + desc
} else {
window.status=w.addOption(url,desc)
w.focus()
}
}
else
alert("Your browser does not support the personal assistant.")
return false
}
// -->
</SCRIPT>
<STYLE TYPE="text/css">
#board TD {width: 15pt; height: 15pt; font-size: 2pt; }
TD.foot {font-size: 10pt;}
#board TD.start {font-size: 8pt; border-left: 2px black solid; background:yellow; border-top: 2px black solid;text-align: center; color: red}
#board TD.end {font-size: 8pt; text-align: center; color: green}
#message {margin: 0pt; padding: 0pt; text-align: center}
</STYLE>
<SCRIPT LANGUAGE="JavaScript">
var maze = new Array()
var sides = new Array("Border-Top", "Border-Right")
for (var rows=0; rows<13; rows++)
maze[rows] = new Array()
maze[0][0] = new Array(1,1,1,1,1,1,1,1,1,1,1,1)
maze[0][1] = new Array(0,0,1,0,1,0,0,0,0,1,0,1)
maze[1][0] = new Array(1,0,0,0,1,0,1,1,1,0,1,1)
maze[1][1] = new Array(0,1,1,0,0,1,1,0,0,1,0,1)
maze[2][0] = new Array(1,0,1,0,1,0,0,1,1,0,1,1)
maze[2][1] = new Array(0,0,0,0,1,1,1,0,0,0,0,1)
maze[3][0] = new Array(0,1,1,1,1,1,0,0,0,0,1,1)
maze[3][1] = new Array(1,0,0,1,0,0,0,1,1,0,0,1)
maze[4][0] = new Array(0,0,0,0,0,0,1,1,1,1,1,1)
maze[4][1] = new Array(1,1,1,1,1,0,0,0,0,0,1,1)
maze[5][0] = new Array(0,0,0,0,1,0,1,1,1,1,0,0)
maze[5][1] = new Array(1,1,1,1,1,1,0,0,0,1,0,1)
maze[6][0] = new Array(0,0,0,0,0,0,1,1,0,1,0,1)
maze[6][1] = new Array(1,1,1,1,1,1,0,0,0,1,0,1)
maze[7][0] = new Array(1,0,1,0,0,0,1,0,1,1,0,1)
maze[7][1] = new Array(1,1,1,0,1,0,0,1,0,1,1,1)
maze[8][0] = new Array(0,0,0,1,0,0,1,1,0,0,0,0)
maze[8][1] = new Array(0,1,0,1,1,0,0,0,1,1,0,1)
maze[9][0] = new Array(0,0,0,0,0,1,1,1,1,0,1,1)
maze[9][1] = new Array(1,1,1,1,0,0,0,0,0,1,1,1)
maze[10][0] = new Array(0,0,0,0,0,1,1,1,1,1,0,0)
maze[10][1] = new Array(1,1,1,0,1,0,0,0,0,1,0,1)
maze[11][0] = new Array(0,0,1,1,1,1,1,1,1,0,0,0)
maze[11][1] = new Array(1,0,1,0,0,0,0,0,0,0,1,1)
maze[12][0] = new Array(0,0,0,0,0,1,1,1,1,0,1,0)
maze[12][1] = new Array(1,1,0,1,0,0,0,1,0,0,1,1)
function testNext(nxt) {
if ((board.rows[start.rows].cells[start.cols].style.backgroundColor=="yellow") && (nxt.style.backgroundColor=='yellow')) {
message.innerText="I see you changed your mind."
board.rows[start.rows].cells[start.cols].style.backgroundColor=""
return false
}
return true
}
function moveIt() {
if (!progress) return
switch (event.keyCode) {
case 37: // left
if (maze[start.rows][1][start.cols-1]==0) {
if (testNext(board.rows[start.rows].cells[start.cols-1]))
message.innerText="Going west..."
start.cols--
document.all.board.rows[start.rows].cells[start.cols].style.backgroundColor="yellow"
} else
message.innerText="Ouch... you can't go west."
break;
case 38: // up
if (maze[start.rows][0][start.cols]==0) {
if (testNext(board.rows[start.rows-1].cells[start.cols]))
message.innerText="Going north..."
start.rows--
document.all.board.rows[start.rows].cells[start.cols].style.backgroundColor="yellow"
} else
message.innerText="Ouch... you can't go north."
break;
case 39: // right
if (maze[start.rows][1][start.cols]==0) {
if (testNext(board.rows[start.rows].cells[start.cols+1]))
message.innerText="Going east..."
start.cols++
document.all.board.rows[start.rows].cells[start.cols].style.backgroundColor="yellow"
}
else
message.innerText="Ouch... you can't go east."
break;
case 40: //down
if (maze[start.rows+1]==null) return
if (maze[start.rows+1][0][start.cols]==0) {
if (testNext(board.rows[start.rows+1].cells[start.cols]))
message.innerText="Going south..."
start.rows++
document.all.board.rows[start.rows].cells[start.cols].style.backgroundColor="yellow"
} else
message.innerText="Ouch... you can't go south."
break;
}
if (document.all.board.rows[start.rows].cells[start.cols].innerText=="end") {
message.innerText="You Win!"
progress=false
}
}
</SCRIPT>
<P ALIGN=center>请使用键盘上的→←↑↓键进行游戏</P><BR>
<p><TABLE ID=board ALIGN=CENTER CELLSPACING=0 CELLPADDING=0>
<SCRIPT LANGUAGE="JavaScript">
for (var row = 0; row<maze.length; row++) {
document.write("<TR>")
for (var col = 0; col<maze[row][0].length; col++) {
document.write("<TD STYLE='")
for (var cell = 0; cell<2; cell++) {
if (maze[row][cell][col]==1)
document.write(sides[cell]+": 2px black solid;")
}
if ((0==col) && (0!=row))
document.write("border-left: 2px black solid;")
if (row==maze.length-1)
document.write("border-bottom: 2px black solid;")
if ((0==row) && (0==col))
document.write(" background-color:yellow;' class=start>start</TD>")
else
if ((row==maze.length-1) && (col==maze[row][0].length-1))
document.write("' class=end>end</TD>")
else
document.write("'> </TD>")
}
document.write("</TR>")
}
var start = new Object
start.rows = 0
start.cols = 0
progress=true
document.onkeydown = moveIt;
</SCRIPT>
</TABLE>
<P ID="message"> </P>
<br />
</body>
</html>

PS:这里再为大家推荐另一款本站的迷宫在线游戏供大家参考,同样是基于JS实现的:

在线迷宫小游戏:
http://tools./games/migong

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数据结构与算法技巧总结》、《JavaScript数学运算用法总结》、《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》及《JavaScript遍历算法与技巧总结》

希望本文所述对大家JavaScript程序设计有所帮助。


# JS  # 走迷宫  # 小游戏  # Three.js 再探 - 写一个微信跳一跳极简版游戏  # 利用原生js实现html5小游戏之打砖块(附源码)  # 原生js编写2048小游戏  # 原生js实现Flappy Bird小游戏  # AngularJS实现的2048小游戏功能【附源码下载】  # 基于JavaScript+HTML5 实现打地鼠小游戏逻辑流程图文详解(附完整代码)  # JavaScript用200行代码制作打飞机小游戏实例  # 20行js代码实现的贪吃蛇小游戏  # JavaScript实现打地鼠小游戏  # js猜数字小游戏的简单实现代码  # 原生JS实现的跳一跳小游戏完整实例  # 相关内容  # 遍历  # 感兴趣  # 数据结构  # 请使用  # 给大家  # 更多关于  # 所述  # 先来  # 程序设计  # 在线游戏  # 再为  # 讲述了  # 是基于  # serif  # background  # geneva  # arial  # sans 


相关文章: 建站之星多图banner生成与模板自定义指南  网站制作说明怎么写,简述网页设计的流程并说明原因?  GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?  如何生成腾讯云建站专用兑换码?  专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?  实例解析Array和String方法  如何在阿里云香港服务器快速搭建网站?  大同网页,大同瑞慈医院官网?  如何在万网开始建站?分步指南解析  建站之星与建站宝盒如何选择最佳方案?  模具网站制作流程,如何找模具客户?  如何用已有域名快速搭建网站?  金*站制作公司有哪些,金华教育集团官网?  建设网站制作价格,怎样建立自己的公司网站?  大学网站设计制作软件有哪些,如何将网站制作成自己app?  如何在自有机房高效搭建专业网站?  建站之星后台密码遗忘或太弱?如何重置与强化?  如何在阿里云ECS服务器部署织梦CMS网站?  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  b2c电商网站制作流程,b2c水平综合的电商平台?  php8.4新语法match怎么用_php8.4match表达式替代switch【方法】  如何用虚拟主机快速搭建网站?详细步骤解析  大连网站制作公司哪家好一点,大连买房网站哪个好?  一键制作网站软件下载安装,一键自动采集网页文档制作步骤?  如何用腾讯建站主机快速创建免费网站?  微信小程序制作网站有哪些,微信小程序需要做网站吗?  建站之星官网登录失败?如何快速解决?  广平建站公司哪家专业可靠?如何选择?  建站之星如何实现五合一智能建站与营销推广?  济南网站建设制作公司,室内设计网站一般都有哪些功能?  如何实现建站之星域名转发设置?  建站之星备案流程有哪些注意事项?  如何在香港服务器上快速搭建免备案网站?  广东专业制作网站有哪些,广东省能源集团有限公司官网?  香港服务器建站指南:免备案优势与SEO优化技巧全解析  深圳 网站制作,深圳招聘网站哪个比较好一点啊?  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  详解jQuery中基本的动画方法  北京企业网站设计制作公司,北京铁路集团官方网站?  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  如何在Golang中指定模块版本_使用go.mod控制版本号  建站之星图片链接生成指南:自助建站与智能设计教程  杭州银行网站设计制作流程,杭州银行怎么开通认证方式?  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  h5网站制作工具有哪些,h5页面制作工具有哪些?  青岛网站建设如何选择本地服务器?  在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?  潮流网站制作头像软件下载,适合母子的网名有哪些?  广州营销型建站服务商推荐:技术优势与SEO优化解析  建站之星如何通过成品分离优化网站效率? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。