2016-02-05 18 views
1

我希望有人能指出我在這個問題的正確方向。字謎 - 如何解決它走出的道路?

對於我在學校的項目,我們需要製作一個「字謎」求解器。所以有一個帶有一個「網格」字母的.txt文件,以及這個網格下面的實際文字,這個謎題需要查找並查看它們是否存在於謎題中。

example: 
4 4 
s e l f 
w t r g 
a o o v 
g x q e 
frog 
swag 
self 

4 4代表拼圖將4個字母寬,4個字母高。

我遇到的問題是,如果,例如,我們正在尋找「青蛙」。我的程序找到'f',然後轉到單詞'r'中的下一個字符。它找到'r',然後移到'o'上。這是我的問題所在。我的程序設計的方式使用了一堆if語句來檢查當前位置的上下左右字母是否包含我們要查找的下一個字母。

所以會發生的是,它會選擇錯誤的'o',然後嘗試找到移到'o的位置後'g',但它不能因爲它走錯了路徑。

我的問題是這樣的:有沒有人有關於如何解決這個問題的想法?如果可能的話,我不想直接編碼的答案,因爲這是一個學術任務,我不想作弊,但如果有人能帶領我走向正確的方向,我會欣喜若狂!

謝謝。

編輯:這裏是代碼:http://pastebin.com/SJ4EePk7

+1

代碼共享將爲您節省時間來描述您的問題並快速獲得關注。 –

+0

這真的取決於你的「路徑」算法。如果該「子串」包含在某些主要字詞列表中,您是不是想要從初始字符的所有方向檢查一段距離? –

+0

*「沒有人有關於如何解決這個問題的想法嗎?」*它看起來像你的代碼是檢查搜索到的每封信件字段,並停止看它是否找到一個,也許有一個'break'。在這種情況下,你不能/不應該中斷搜索,所以'break'語句應該被刪除。這可能是唯一需要解決的問題,但沒有代碼就很難說。 – Tom

回答

0

他們的4個方向中的任何你的話可以發現。

  1. 水平(4行)
  2. 立式(4行)
  3. 對角線1 - 左上到bottomright(7行)
  4. 對角線2 - topright到BOTTOMLEFT(7行)

創建程序從所有這些方向獲取字符串

s e l f 
w t r g 
a o o v 
g x q e 
  1. 水平: [selfwtrgaoovgxqe]
  2. 垂直: [swagetoxlroqfgve]
  3. 對角線1: [sewltafroggoxvqe]
  4. 對角線2: [flgervstoewoqaxg]

我們檢查,如果你的字符串在這些字符串中您可以使用String.contains(...)功能。

+0

這並不能保證這個單詞從下到上如xote(如果它是一個真正的單詞)開始。 – smttsp

+0

然後你將不得不採取兩個更多的方向(1額外爲水平,1爲垂直) – afzalex