2010-06-20 223 views
1

我有一個任務來創建一個特定的填字遊戲。所有的答案都給出了,但是他們的地方是未知的。程序必須這樣寫的用木板方案文件:填字遊戲的邏輯

0 1 0 0 0 0 0 0 1 0 0 
0 1 0 1 1 1 1 1 1 1 1 
0 1 0 1 0 0 1 0 1 0 1 
0 S 1 1 0 1 1 1 1 0 1 
0 1 0 0 1 0 1 0 1 0 0 
1 1 1 1 1 1 1 S 1 1 0 
0 0 0 0 1 0 1 0 0 0 0 
0 0 0 0 1 0 0 0 0 0 0 

治療者的每列/行作爲一個可能的答案。有沒有什麼辦法通過這個文件解析並且在沒有使用gazilion的情況下給每個領域打分? 其餘的邏輯如下:
- 在解析文件的基礎上創建縱橫文字。
- 用戶從可能性
列表選擇答案 - 用戶點擊應答的第一個塊上,並且如果長度和選定的答案的字母和答案匹配 - 字段更新

遊戲板應被存儲在二維數組我想,每個Answer都應該有字段索引嗎?

回答

3

縱橫字謎建設一般是NP-Complete(即1x和0s的nxn板以及從中挑選答案的給定集合)。看看:http://en.wikipedia.org/wiki/List_of_NP-complete_problems這只是提到這一點。蓋雷和約翰遜的經典着作也提到了這一點,說3套精確覆蓋可以減少到它。

所以,你可能將不得不使用一些回溯/啓發式填充網格。

也許這個來自達特茅斯學院的兩名學生的項目報告會有一些幫助:Crossword Puzzle Generator。它包含一些你可能能夠使用的啓發式方法。

當然,你似乎暗示有一個人參與其中,但是不清楚你是否可以利用這個人來填充網格,以及你的問題基本上是一些UI編程問題,幫助用戶離開。