亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JS寫的數字拼圖小游戲代碼[學習參考]

 更新時間:2008年10月29日 15:42:19   作者:  
昨天沒事做,就用JS寫了個數字拼圖的小游戲,自娛自樂。 可惜關于逆序數的問題還沒解決,現在有時是拼不成的,大家見諒了。
復制代碼 代碼如下:

<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>

相關文章

  • 微信小程序常見頁面跳轉操作簡單示例

    微信小程序常見頁面跳轉操作簡單示例

    這篇文章主要介紹了微信小程序常見頁面跳轉操作,結合簡單實例形式總結分析了微信小程序保留頁面跳轉、關閉頁面跳轉、返回上一級頁面等各種常見的跳轉操作實現技巧,需要的朋友可以參考下
    2019-05-05
  • JavaScript輸出斐波那契數列的實現方法

    JavaScript輸出斐波那契數列的實現方法

    斐波那契數列來源于兔子繁殖問題,所以也叫兔子序列,下面這篇文章主要給大家介紹了關于JavaScript輸出斐波那契數列的實現方法,需要的朋友可以參考下
    2021-06-06
  • Javascript原型鏈及instanceof原理詳解

    Javascript原型鏈及instanceof原理詳解

    這篇文章主要介紹了Javascript原型鏈及instanceof原理詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-05-05
  • 《javascript設計模式》學習筆記七:Javascript面向對象程序設計組合模式詳解

    《javascript設計模式》學習筆記七:Javascript面向對象程序設計組合模式詳解

    這篇文章主要介紹了Javascript面向對象程序設計組合模式,結合實例形式分析了《javascript設計模式》中Javascript面向對象組合模式相關概念、原理、定義、用法及操作注意事項,需要的朋友可以參考下
    2020-04-04
  • 如何用js獲取當前域名、Url、相對路徑和參數

    如何用js獲取當前域名、Url、相對路徑和參數

    這篇文章主要給大家介紹了關于如何用js獲取當前域名、Url、相對路徑和參數的相關資料,用Javascript可以單獨獲取當前域名、Url相對路徑和參數,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-11-11
  • Web技術實現移動監(jiān)測的介紹

    Web技術實現移動監(jiān)測的介紹

    移動偵測,一般也叫運動檢測,常用于無人值守監(jiān)控錄像和自動報警。通過攝像頭按照不同幀率采集得到的圖像會被 CPU 按照一定算法進行計算和比較,當畫面有變化時,如有人走過,鏡頭被移動,計算比較結果得出的數字會超過閾值并指示系統(tǒng)能自動作出相應的處理
    2017-09-09
  • js中易弄混淆的"位置"相關屬性詳解

    js中易弄混淆的"位置"相關屬性詳解

    js中有各種位置相關的屬性,平時用起來比較混亂,特此整理一下,下面這篇文章主要給大家介紹了關于js中易弄混淆的“位置”相關屬性的相關資料,需要的朋友可以參考下
    2022-04-04
  • js實現數據雙向綁定(訪問器監(jiān)聽)

    js實現數據雙向綁定(訪問器監(jiān)聽)

    這篇文章主要為大家詳細介紹了采用訪問器監(jiān)聽的方式實現簡單數據雙向綁定,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 基于zepto.js簡單實現上傳圖片

    基于zepto.js簡單實現上傳圖片

    這篇文章主要介紹了基于zepto.js簡單實現上傳圖片的相關資料,需要的朋友可以參考下
    2016-06-06
  • JavaScript使用canvas實現錨點摳圖功能

    JavaScript使用canvas實現錨點摳圖功能

    在日常的圖片處理中,我們經常會遇到需要摳圖的情況,無論是為了美化照片、制作海報,還是進行圖片合成,摳圖對于我們來說也是一種很常用的功能了,今天就讓我們一起來看下怎么使用canvas來實現一個錨點摳圖功能
    2024-03-03

最新評論