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 相关文章推荐
北京奥运官方网站幻灯切换效果flash版打包下载
Jan 30 Javascript
javascript实现的像java、c#之类的sleep暂停的函数代码
Mar 04 Javascript
Jquery + Ajax调用webService实例代码(asp.net)
Aug 27 Javascript
IE6、IE7中setAttribute不支持class/for/rowspan/colspan等属性
Aug 28 Javascript
动态创建script标签实现跨域资源访问的方法介绍
Feb 28 Javascript
JQuery的Ajax中Post方法传递中文出现乱码的解决方法
Oct 21 Javascript
2014年50个程序员最适用的免费JQuery插件
Dec 15 Javascript
javascript表单验证大全
Aug 12 Javascript
基于Bootstrap重置输入框内容按钮插件
May 12 Javascript
js剪切板应用clipboardData实例解析
May 29 Javascript
jQuery针对input的class属性写了多个值情况下的选择方法
Jun 03 Javascript
详解vue-element Tree树形控件填坑路
Mar 26 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 3行代码的分页算法(求起始页和结束页)
2009/10/21 PHP
PHP加密扩展库Mcrypt安装和实例
2013/11/10 PHP
php选择排序法实现数组排序实例分析
2015/02/16 PHP
php中关于长度计算容易混淆的问题分析
2016/05/27 PHP
thinkphp5.1 框架导入/导出excel文件操作示例
2020/05/25 PHP
js实现简单模态窗口,背景灰显
2008/11/14 Javascript
学习ExtJS(一) 之基础前提
2009/10/07 Javascript
JavaScript Array扩展实现代码
2009/10/14 Javascript
js 控制下拉菜单刷新的方法
2013/03/03 Javascript
jQuery 滑动方法slideDown向下滑动元素
2014/01/16 Javascript
jQuery源码分析之jQuery中的循环技巧详解
2014/09/06 Javascript
javascript中this的四种用法
2015/05/11 Javascript
Angular2内置指令NgFor和NgIf详解
2016/08/03 Javascript
js数字滑动时钟的简单实现(示例讲解)
2017/08/14 Javascript
深入理解webpack process.env.NODE_ENV配置
2020/02/23 Javascript
vue vant中picker组件的使用
2020/11/03 Javascript
python网络编程学习笔记(四):域名系统
2014/06/09 Python
Python内置的字符串处理函数详细整理(覆盖日常所用)
2014/08/19 Python
Python+matplotlib+numpy实现在不同平面的二维条形图
2018/01/02 Python
tensorflow建立一个简单的神经网络的方法
2018/02/10 Python
Python中pandas dataframe删除一行或一列:drop函数详解
2018/07/03 Python
Linux下python3.7.0安装教程
2018/07/30 Python
python matplotlib画图库学习绘制常用的图
2019/03/19 Python
python将字典列表导出为Excel文件的方法
2019/09/02 Python
深入浅析python的第三方库pandas
2020/02/13 Python
python-sys.stdout作为默认函数参数的实现
2020/02/21 Python
Python Sqlalchemy如何实现select for update
2020/10/12 Python
关于webview适配H5上传照片或者视频文件的方法
2020/11/04 HTML / CSS
计算机专业学生的自我评价
2013/12/15 职场文书
社区优秀志愿者材料
2014/02/02 职场文书
超市开店计划书
2014/04/26 职场文书
土建施工员岗位职责
2014/07/16 职场文书
做一个有道德的人活动实施方案
2014/08/23 职场文书
学用政策心得体会
2014/09/10 职场文书
2015年医院后勤工作总结
2015/05/20 职场文书
2016教师给学生的毕业寄语
2015/12/04 职场文书