2016-11-20 100 views
1

我不確定爲單詞搜索拼圖遊戲創建矩陣的規則。我能夠創建一個初始值爲0的矩陣。生成單詞搜索拼圖矩陣

是否正確我會隨機選擇一個詞的起點(座標)和隨機方向(水平方向,垂直方向,&,對角線)然後管理它是否會與矩陣中的另一個單詞重疊?如果確實如此,請檢查角色是否相同(儘管只有一點機會),那麼如果沒有,我將在那裏指定它。問題就在於我減少了重疊的機會。

我也讀過,我需要首先檢查具有相同字符的單詞。但是,如果是這樣的話,我想要放在矩陣中的詞語總是重疊的。

回答

0

我寧願看看那些已經存在的單詞,然後從適合的單詞中隨機選擇一個單詞。 當然,你可能不會像這樣填滿整個矩陣。如果你把某個單詞放在某個地方阻止了所有其他單詞(沒有其他單詞適合),那麼你可能不得不倒退,但是這會損害運行時間。

如果你真的想填滿整個矩陣,我會遍歷所有可能的起始位置,看看有多少單詞適合那裏,然後考慮候選人數最少的起始位置的可能性。這將導致您的程序識別並提前離開「死路一條」,從而大大縮短運行時間。這是來自固定參數算法的強大技術,我喜歡稱之爲分支矢量最小化。

0

從最長的單詞開始。 首先你必須找到所有的點和方向,這個詞可能適合。例如,當第一個pos有NULL或W,第二個pos NULL或O,第三個NULL或R以及第四個NULL或D時,例如單詞'WORD'可能適合。然後您應該組合它的位置沒有NULLS,有一個NULL,有兩個NULL等等。

然後從具有最小NULLS量的組中選擇隨機位置。如果沒有可能的位置,請跳過這個詞。

這種嘗試將允許您放置更多的單詞並防止出現隨機搜索找不到合適位置(只有少數幾個)的情況。