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 相关文章推荐
自己开发Dojo的建议框架
Sep 24 Javascript
让任务管理器中的CPU跳舞的js代码
Nov 01 Javascript
javascript EXCEL 操作类代码
Jul 30 Javascript
使用jQuery简化Ajax开发 Ajax开发入门
Oct 14 Javascript
js添加table的行和列 具体实现方法
Jul 22 Javascript
javascript实现十六进制颜色值(HEX)和RGB格式相互转换
Jun 20 Javascript
浅谈javascript基础之客户端事件驱动
Jun 10 Javascript
浅析JavaScript函数的调用模式
Aug 10 Javascript
JS 事件绑定、事件监听、事件委托详细介绍
Sep 28 Javascript
javascript中的try catch异常捕获机制用法分析
Dec 14 Javascript
layui实现点击按钮给table添加一行
Aug 10 Javascript
解决angularjs service中依赖注入$scope报错的问题
Oct 02 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
咖啡豆分级制度 咖啡豆等级分类 咖啡豆是按口感分类的吗?
2021/03/05 新手入门
十天学会php之第二天
2006/10/09 PHP
PHP完整的日历类(CLASS)
2006/11/27 PHP
PHP 危险函数全解析
2009/09/09 PHP
php 创建以UNIX时间戳命名的文件夹(示例代码)
2014/03/08 PHP
php的SimpleXML方法读写XML接口文件实例解析
2014/06/16 PHP
yii2 页面底部加载css和js的技巧
2016/04/21 PHP
基于Swoole实现PHP与websocket聊天室
2016/08/03 PHP
用JQuery调用Session的实现代码
2010/10/29 Javascript
myEvent.js javascript跨浏览器事件框架
2011/10/24 Javascript
非html5实现js版弹球游戏示例代码
2013/09/22 Javascript
jquery validate添加自定义验证规则(验证邮箱 邮政编码)
2013/12/04 Javascript
js统计页面的来访次数实现代码
2014/05/09 Javascript
每天一篇javascript学习小结(RegExp对象)
2015/11/17 Javascript
跟我学习javascript的循环
2015/11/18 Javascript
你不知道的高性能JAVASCRIPT
2016/01/18 Javascript
基于JS实现弹出一个隐藏的div窗口body页面变成灰色并且不可被编辑
2016/12/14 Javascript
Javascript中的 “&amp;” 和 “|” 详解
2017/02/02 Javascript
AngularJs导出数据到Excel的示例代码
2017/08/11 Javascript
Python标准异常和异常处理详解
2015/02/02 Python
Python中的高级数据结构详解
2015/03/27 Python
详解python3百度指数抓取实例
2016/12/12 Python
Python中Django 后台自定义表单控件
2017/03/28 Python
Python操作csv文件实例详解
2017/07/31 Python
python使用生成器实现可迭代对象
2018/03/20 Python
python统计中文字符数量的两种方法
2019/01/31 Python
Python 获取 datax 执行结果保存到数据库的方法
2019/07/11 Python
python中树与树的表示知识点总结
2019/09/14 Python
基于Python中的yield表达式介绍
2019/11/19 Python
解决Keras中循环使用K.ctc_decode内存不释放的问题
2020/06/29 Python
python上selenium的弹框操作实现
2020/07/13 Python
解决python打开https出现certificate verify failed的问题
2020/09/03 Python
CSS3 :default伪类选择器使用简介
2018/03/15 HTML / CSS
意大利奢侈品零售商:ilDuomo Novara
2019/09/11 全球购物
环境建设实施方案
2014/03/14 职场文书
创业计划书之少年玩具店
2019/09/05 职场文书