W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
自己做了一個拼圖小游戲,大概如下:
1 2 3
4 5 6
7 8 0
0是空白位置,每次按照隨機的順序重新排列,但是不是每次排列后都可能被還原,例如:
1 2 3
4 5 6
8 7 0
這樣是復原不了的
----------------------割----------------------------
第一種解決辦法:
后來查了一些方法,其中有提到“反序數(shù)”的概念,通過兩個矩陣的反敘述奇偶是否相同,可以判斷兩個矩陣,其中一個矩陣是否可以通過相鄰位置的對象兩兩互換位置后調整成另外一個矩陣。
(反序數(shù))
但是親測后發(fā)現(xiàn)只用反敘數(shù)判斷還是沒能成功,因為拼圖游戲只能通過“0”位(空白位置)和其相鄰的位置進行互換。
這里判斷還需要加上兩個矩陣空白位置所在矩陣的行列數(shù)進行判斷。
以上面的矩陣為例子,
第一個矩陣空白塊所在位置為 a[2][2]. 反序數(shù)為0
和為: sum = 2 + 2 + 0 ; sum = 4;
第二個矩陣空白塊所在位置是 a[2][2],反序數(shù)為3
和為:sum = 2 +2 + 3 = 7;
0 為偶數(shù),3為奇數(shù),所以第二個矩陣是不能轉換成第一個矩陣的,也就是如果拼圖打亂成這個順序是不能被還原的。
第二種解決辦法:
讓空白格隨機和周邊的方塊交換位置,這樣這樣走幾十步就可以了,而且一定可以復原。
參考文檔:
一群大神的舌槍唇戰(zhàn),可以參考,但是沒有什么實際性的作用;
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: