我正在编写一个类似于Boggle的游戏,游戏玩家应该在随机字母组成的大字符串中找到单词。
例如,有五个数组,其中包含像这样的字符串。五行,每行六个字母:
AMSDNS
MASDOM
ASDAAS
DSMMMS
OAKSDO
因此,游戏的用户应该使用可用的字母,并考虑以下限制和规则:
我想知道如何通过所有字符串来制作单词。要知道我将使用带有单词的txt文件的单词。
我不知道如何设计能够执行搜索的算法,特别是考虑找到单词和尊重限制所需的不稳定运动。
我已经实现了用户体验,投掷骰子和填充棋盘游戏的逻辑,以及六个字母骰子的所有逻辑。
但这部分并不容易,我想阅读你对这个有趣挑战的建议。
我在这个游戏中使用Python是因为我使用的语言代码和我最喜欢的语言。但是算法本身的解释或建议也应该很好,与语言无关。
答案 0 :(得分:4)
您可能会发现Trie有用 - 将所有词典单词放入Trie,然后从Boggle网格中制作另一个Trie,只要您与词典Trie匹配。
即。字典特里:
S->T->A->C->K = stack
\->R->K = stark
\->T = start
网格:(简化)
STARKX
XXXTXX
XXXXXX
网格特里:(仅显示从S开始 - 也从A开始用于ART等)
S->X (no matches in dict Trie, so it stops)
\->T->X
\->A-R->K (match)
| |->T (match)
| \->X
\->C->K (match)
\->X
您可以使用GraphViz(例如this)来显示您的尝试。