JS写的数字拼图小游戏代码[学习参考]


Posted in Javascript onOctober 29, 2008
<html> <head> 
<title>拼图</title> 
<style> 
td.numTd{ 
width : 20px ; 
height : 20px ; 
} 
div.numDiv{ 
width : 100% ; 
height : 100% ; 
background-color : #000 ; 
color : #FFF ; 
text-align : center ; 
vertical-align : middle ; 
} 
</style> 
<script> 
var currPos = 9; 
function move(event){ 
switch(event.keyCode){ 
case 37 : 
// 左键 
if (currPos % 3 != 0){ 
var currTd = document.getElementById("numTd_" + currPos); 
var nextTd = document.getElementById("numTd_" + (currPos + 1)); 
var temp = nextTd.innerHTML; 
nextTd.innerHTML = " "; 
currTd.innerHTML = temp; 
currPos ++ ; 
} 
break; 
case 38 : 
// 上键 
if (currPos < 7){ 
var currTd = document.getElementById("numTd_" + currPos); 
var nextTd = document.getElementById("numTd_" + (currPos + 3)); 
var temp = nextTd.innerHTML; 
nextTd.innerHTML = " "; 
currTd.innerHTML = temp; 
currPos += 3; 
} 
break; 
case 39 : 
// 右键 
if (currPos % 3 != 1){ 
var currTd = document.getElementById("numTd_" + currPos); 
var nextTd = document.getElementById("numTd_" + (currPos - 1)); 
var temp = nextTd.innerHTML; 
nextTd.innerHTML = " "; 
currTd.innerHTML = temp; 
currPos -- ; 
} 
break; 
case 40 : 
// 下键 
if (currPos > 3){ 
var currTd = document.getElementById("numTd_" + currPos); 
var nextTd = document.getElementById("numTd_" + (currPos - 3)); 
var temp = nextTd.innerHTML; 
nextTd.innerHTML = " "; 
currTd.innerHTML = temp; 
currPos -= 3; 
} 
break; 
default : 
break; 
} 
if (isWin()){ 
alert("恭喜你,过关了!"); 
initNums(); 
} 
} 
function isWin(){ 
for (i = 1; i < 9; i ++ ){ 
var numTd = document.getElementById("numTd_" + i); 
var numDiv = numTd.getElementsByTagName("div"); 
if (i != numTd.innerText){ 
return false; 
} 
} 
return true; 
} 
function initNums(){ 
var numArr = new Array(1, 2, 3, 4, 5, 6, 7, 8, 9); 
var newnewNumArr = new Array(); 
do{ 
var tempStr = ""; 
for(i in numArr){ 
var flag = true; 
do{ 
tempNum = numArr[parseInt(Math.random() * 100) % 9]; 
if (tempStr.search(tempNum) == -1){ 
newNumArr[i] = tempNum; 
tempStr += tempNum; 
flag = false; 
} 
} 
while(flag); 
} 
}while(inverNum(newNumArr) % 2 == 0); 

var len = newNumArr.length; 
for(j = 0; j < len; j ++ ){ 
if (newNumArr[j] != 9){ 
document.getElementById("numTd_" + (j + 1)).innerHTML = "<div id='numDiv_"+newNumArr[j]+"' class='numDiv'>" + newNumArr[j] + "</div>"; 
} 
else{ 
document.getElementById("numTd_" + (j + 1)).innerHTML = " "; 
currPos = j + 1; 
} 
} 
// document.getElementById("output").innerText = newNumArr; 
} 
function inverNum(numArr){ 
var len = numArr.length; 
var count = 0; 
for(i = 0; i < len - 1; i ++ ){ 
for(j = i + 1; j < len; j ++ ){ 
if (numArr[j] > numArr[i]){ 
count ++ ; 
} 
} 
} 
// alert("逆序数: "+count); 
return count; 
} 
</script> 
</head> 
<body onkeyup="move(event);" onload="initNums();"> 
<table align="center"> 
<tr> 
<td id="numTd_1" class="numTd"> 
</td> 
<td id="numTd_2" class="numTd"> 
</td> 
<td id="numTd_3" class="numTd"> 
</td> 
</tr> 
<tr> 
<td id="numTd_4" class="numTd"> 
</td> 
<td id="numTd_5" class="numTd"> 
</td> 
<td id="numTd_6" class="numTd"> 
</td> 
</tr> 
<tr> 
<td id="numTd_7" class="numTd"> 
</td> 
<td id="numTd_8" class="numTd"> 
</td> 
<td id="numTd_9" class="numTd"> 
</td> 
</tr> 
</table> 
<table> 
<tr> 
<td id="output"></td> 
</tr> 
</table> 
</body> 
</html>
Javascript 相关文章推荐
js函数中onmousedown和onclick的区别和联系探讨
May 19 Javascript
javascript 函数及作用域总结介绍
Nov 12 Javascript
jquery ajax对特殊字符进行转义防止js注入使用示例
Nov 21 Javascript
JS使用for循环遍历Table的所有单元格内容
Aug 21 Javascript
Node.js中调用mysql存储过程示例
Dec 20 Javascript
js控制TR的显示隐藏
Mar 04 Javascript
JavaScript中push(),join() 函数 实例详解
Sep 06 Javascript
玩转NODE.JS(四)-搭建简单的聊天室的代码
Nov 11 Javascript
解决Extjs下拉框不显示的问题
Jun 21 Javascript
JS点击缩略图整屏居中放大图片效果
Jul 04 Javascript
Angular6使用forRoot() 注册单一实例服务问题
Aug 27 Javascript
vue element 中的table动态渲染实现(动态表头)
Nov 21 Javascript
JavaScript函数、方法、对象代码
Oct 29 #Javascript
js身份证验证超强脚本
Oct 26 #Javascript
javascript引导程序
Oct 26 #Javascript
javascript笔试题目附答案@20081025_jb51.net
Oct 26 #Javascript
Div自动滚动到末尾的代码
Oct 26 #Javascript
Firefox getBoxObjectFor getBoundingClientRect联系
Oct 26 #Javascript
js判断变量是否空值的代码
Oct 26 #Javascript
You might like
PHP Opcache安装和配置方法介绍
2015/05/28 PHP
PHP5.3新特性小结
2016/02/14 PHP
ThinkPHP框架使用redirect实现页面重定向的方法实例分析
2018/04/12 PHP
学习ExtJS form布局
2009/10/08 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(二)人物行走的实现
2013/01/23 Javascript
js动态给table添加/删除tr的方法
2013/08/02 Javascript
Jquery 实现表格颜色交替变化鼠标移过颜色变化实例
2013/08/28 Javascript
动态加载脚本提升javascript性能
2014/02/24 Javascript
关于JS中prototype的理解
2015/09/07 Javascript
javascript和jquery实现用户登录验证
2016/05/04 Javascript
使用JavaScriptCore实现OC和JS交互详解
2017/03/28 Javascript
Vue.js 2.0学习教程之从基础到组件详解
2017/04/24 Javascript
es6学习笔记之Async函数基本教程
2017/05/11 Javascript
详解vue 组件之间使用eventbus传值
2017/10/25 Javascript
vue如何进行动画的封装
2018/09/26 Javascript
微信小程序canvas开发水果老虎机的思路详解
2020/02/07 Javascript
Vue.js 中制作自定义选择组件的代码附演示demo
2020/02/28 Javascript
linux环境下安装pyramid和新建项目的步骤
2013/11/27 Python
python基础教程之获取本机ip数据包示例
2014/02/10 Python
python通过wxPython打开一个音频文件并播放的方法
2015/03/25 Python
influx+grafana自定义python采集数据和一些坑的总结
2018/09/17 Python
python图片二值化提高识别率代码实例
2019/08/24 Python
Python socket实现的文件下载器功能示例
2019/11/15 Python
pytorch查看torch.Tensor和model是否在CUDA上的实例
2020/01/03 Python
使用 PyTorch 实现 MLP 并在 MNIST 数据集上验证方式
2020/01/08 Python
手把手教你安装Windows版本的Tensorflow
2020/03/26 Python
python的help函数如何使用
2020/06/11 Python
基于Django快速集成Echarts代码示例
2020/12/01 Python
利物浦足球俱乐部官方网上商店:Liverpool FC Official Store
2018/01/13 全球购物
资深财务管理人员自我评价
2013/09/22 职场文书
餐饮收银员岗位职责
2014/02/07 职场文书
大学生优秀自荐信范文
2014/02/25 职场文书
会计核算科岗位职责
2014/03/19 职场文书
我的中国梦演讲稿小学篇
2014/08/19 职场文书
教导主任个人总结
2015/03/03 职场文书
Vue自定义铃声提示音组件的实现
2022/01/22 Vue.js