玩過數字華容道的都知道,隨機數是由原來的順序排列通過隨機移動塊產生的,但是如果把塊扣出來重新組合就會導致可能永遠不會回到初始狀態
例如:1 2 3 1 2 3
4 5 6 4 5 6
7 8 8 7
正常結果只能是左邊這個,而右邊這個肯定是錯誤的,是乙個永遠也回不去的方法,所以避免這種情況發生,我特意寫了乙個類來產生滿足遊戲規則的隨機數
package shuzihuarongdao;
/** *
* @author xgl
* 用於生成n*n宮格隨機數排表,末尾值為0或者為空(待定)
*/public class shuzhihuadaoshuzhi else
} /**
* 呼叫此方法需要設定引數a的值
*/public shuzhihuadaoshuzhi()
/*不能建立string的構造方法,防止呼叫者修改string的資料*/
/*setter,getter方法*/
/*** 獲取生成**的大小 a*a;
* @return a的值
*/public int geta()
/*** 設定**的大小 a*a
* @param a
*/public void seta(int a) else
} /*不能建立string的setter方法,防止呼叫者修改string的資料*/
/***
* @return 乙個字串,此字串用於宮格隨機數正常排列
* 例如:array[3][3]的九個數產生的隨機數是437561280;末尾值始終產生0;防止錯誤
* 那麼 string返回的值也是437561280,然後再利用其它方式將這個字串拆分放入到乙個宮格裡面
*/public string getshuju()
/*** 此方法用於實現隨機資料的生成,本方法不給使用者實現,用於當前呼叫
* @return 乙個字串
*/private string shuzhi()
} shuju = "";
for(int j=0;j=0)}}
} private void right()
}} }
private void bottom()
}
感謝**
我的官網
華容道演算法之效能優化
上篇文章講解了華容道演算法基本演算法知識,也是最簡單的,效率也是最低的。這篇文章講解高效率演算法。從下篇文章開始主要分析linux 驅動 以及嵌入式相關設計知識。本次編碼採用棋子在棋盤中的位置編碼,順序是從左往右 從上到下。以橫刀立馬舉例說明。正方形的應該是1 記得從0開始計算 橫方塊值是0x80 ...
hdu 6620 數字華容道定理
沒玩過數字華容道,網上找的,判斷兩張圖能不能相等,把1234行按順序插到前一行結尾,計算除0外的逆序對數,判斷兩張圖0所在的行差和逆序數的奇偶性,相同就能到,而且其他部落格都說80步,4 4的圖就可到 include include include include include include i...
華容道3x3的技巧 數字華容道 無上限解題技巧
之前就聽過數字華容道,但是一直沒有上手,今天發現室友再玩,我就下了乙個,試了一下3x3 26秒,挺簡單的 有玩了下5x5 說實話,前面3行很順利,但是最後2行就比較 碰運氣 以及燒腦了。真不是謙虛,我完成了,但我知道我真的靠運氣,緊接著玩8x8 到最後兩行擺弄了20分鐘,直接放棄,我實在不想破壞上一...