JS写的数字拼图小游戏代码[学习参考]
JS写的数字拼图小游戏代码[学习参考]
发布时间:2016-12-30 来源:查字典编辑
摘要:复制代码代码如下:拼图td.numTd{width:20px;height:20px;}div.numDiv{width:100%;heig...

复制代码 代码如下:

<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]+"'>" + 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">

</td>

<td id="numTd_2">

</td>

<td id="numTd_3">

</td>

</tr>

<tr>

<td id="numTd_4">

</td>

<td id="numTd_5">

</td>

<td id="numTd_6">

</td>

</tr>

<tr>

<td id="numTd_7">

</td>

<td id="numTd_8">

</td>

<td id="numTd_9">

</td>

</tr>

</table>

<table>

<tr>

<td id="output"></td>

</tr>

</table>

</body>

</html>

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类