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>
JS写的数字拼图小游戏代码[学习参考]
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@