2007年11月15日 星期四

哎啊 ...

<> 狀態顯示
放 Label 去改變 Caption 屬性的內容來顯示 1~9
每次移動 Image 後就進行一次 showLabel(int)

showLabel(int) 會把傳入參數的 Image 做更改 Caption 的動作
這樣顯示的數字就會變了



<> 搜尋路徑
如果要用樹的結構
我想到的是每個節點要有一個 item 用來紀錄空白 Image 的位置
然後每產生一個節點( 也就是移動一次 Image )
就做 Image1~9 的判斷,看是否都有擺對
可是這樣的演算法很糟,樹的深度可能會是很可怕的極大值

接著想到如果給每個 Image 都做一棵樹
先從 Image1 開始,用樹找出把 Image1 搬回位置 1 的最短路徑
然後再做 Image2 的樹找出把 Image2 搬回位置 2 的最短路徑
看起來越後面的 Image 樹的深度會越小,不過實際上這是不可行的方法
原因還滿多的 而且都很不好處理 ... ...

<> 遊戲初始打亂演算法
我是想用 for loop 去移動 Image9 n 次
跑多了總會亂掉
可是不知道要怎麼讓 Image9 繞回 8 puzzle 右下的位置

而參照 seles 發現的規則
就是等到 Image9 停在奇數格上時,再跟右下的圖片對掉就行了

沒有留言:

張貼留言