色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

javascript九宮格拼圖

沈明麗1年前8瀏覽0評論

在前端網頁制作中,JavaScript被廣泛應用于動畫、數據交互等方面。今天我們來探討一下JavaScript實現的九宮格拼圖。

九宮格拼圖是一種非常受歡迎的游戲,許多人都喜歡玩。通常來說,九宮格拼圖是由一個3x3的方格組成的。每個方格可以表示一個數字或圖片,九個方格被打散,玩家的目標是把被打散的方格重新排列成正確的順序。

var array = [1, 2, 3, 4, 5, 6, 7, 8, 0];
var initArray = array.slice();
var isInit = true;
function init(){
randomArray(array);
while(!checkArray(array)){
randomArray(array);
}
showArray();
}

上述代碼定義了一個長度為9的數組,并將它們打亂,然后通過循環檢查數組是否有序,并在打亂成無序狀態下顯示數組。

function randomArray(a){
var len = a.length;
var b = [];
for(var i = 0;i < len;i ++){
b[i] = a[i];
}
for(var i = 0;i < len;i ++){
// 獲取隨機數,并交換數組元素
var index = Math.floor(Math.random() * b.length);
a[i] = b[index];
b.splice(index, 1);
}
}

以上代碼的randomArray()函數是用來打亂數組順序的。首先將原始數組備份到b數組中,然后通過循環遍歷b數組,獲取隨機數,將原數組的元素與隨機得到的元素進行交換,最后返回打亂的新數組。

function checkArray(a){
var len = a.length;
for(var i = 0;i < len;i ++){
if(a[i] != initArray[i]){
return false;
}
}
return true;
}

checkArray()函數用于檢查數組是否已排序。它對初始數組和當前數組進行逐個比對,若有任意不同,則返回false,即數組未排序;反之,則返回true,表示數組已經排序好了。

至此,九宮格拼圖的核心邏輯已經實現。我們還需要使用HTML和CSS將它們渲染到頁面上。

<div id="wrap">
<div class="box" id="div1" onclick="move(1)"></div>
<div class="box" id="div2" onclick="move(2)"></div>
<div class="box" id="div3" onclick="move(3)"></div>
<div class="box" id="div4" onclick="move(4)"></div>
<div class="box" id="div5" onclick="move(5)"></div>
<div class="box" id="div6" onclick="move(6)"></div>
<div class="box" id="div7" onclick="move(7)"></div>
<div class="box" id="div8" onclick="move(8)"></div>
<div class="box" id="div0" onclick="move(0)"></div>
</div>

上面的代碼定義了一個容器wrapper,并將其中的九個方塊都設置為box類,并指定了它們的ID。我們需要使用CSS來定義它們的樣式:

#wrap{
width: 298px;
height: 298px;
margin: 20px auto;
}
.box{
float: left;
width: 100px;
height: 100px;
background-image: url(imgs/1.jpg);
background-size: 300px 300px;
background-color: #FFF;
margin: 1px 1px 0 0;
cursor: pointer;
font-size: 3em;
line-height: 100px;
text-align: center;
color: #666;
font-weight: bold;
}
#div0{
visibility: hidden;
}

最后我們需要實現move()函數,用于移動方塊。

var blankX = 0;
var blankY = 0;
function move(index){
var div = document.getElementById("div" + index);
var x = div.offsetLeft;
var y = div.offsetTop;
if(x == blankX && y == blankY + 100 || 
x == blankX && y == blankY - 100 || 
x == blankX + 100 && y == blankY || 
x == blankX - 100 && y == blankY)
{
div.style.left = blankX + "px";
div.style.top = blankY + "px";
blankX = x;
blankY = y;
}
}

move()函數定義了兩個變量坐標blankX和blankY,用于表示空白方塊的位置,它們的初始值都為0。當我們點擊一個方塊時,先獲取到該方塊的坐標,通過判斷該方塊是否符合移動條件,如果符合,則將該方塊移動到空白方塊所在的位置,并更新坐標blankX和blankY。

以上就是實現JavaScript九宮格拼圖的全部代碼了。我們可以在一個HTML文件中,使用<script>標簽將上面的代碼引用,即可得到一個完整的九宮格拼圖。