你们中的一些人可能熟悉称为“BOGGLE"”的游戏。
基本上游戏会显示这样的混乱字母:
asdf
wcrq
nwoa
erdf
然后你需要在董事会中寻找所有可能的答案 但是我试图开发一个移动游戏 所以这就是我的计划:
我会要求玩家在给定的混乱字母中查找单个单词。
示例:在这些字母中查找单词CROWN
:
asdf
wcrq
nwoa
erdf
然后我需要"追踪"这些混乱的字母中的答案CROWN
但我不知道应该如何实施。
我的问题是:
注意:
玩家可以追踪他想要的任何方向,只要他不会跳到一封信中去寻找这个词。"
你能建议算法和方法或数据结构来实现吗?
我正在寻找使用HTML5,JavaScript和CSS的解决方案。
示例图片:
答案 0 :(得分:1)
好吧,我会做iterative deepening分支截止。例如:
1 2 3 4
5 6 7 8
9 0 A B
C D E F
有16个深度1节点[1, 2, 3, 4, 5, 6, 7, 8, 9, 0, A, B, C, D, E, F]
,您可以从其中任何一个访问邻居。例如,如果选择1:
* 2 3 4
5 6 7 8
9 0 A B
C D E F
深度2节点列表为[[1, 2], [1, 6], [1, 5]]
,然后检查您的词典是否包含以其中任何一个开头的单词。如果他们没有那么你可以削减分支!这很重要,因为否则会有太多工作要做。假设[1, 2]
不存在,您选择了[1, 6]
:
* 2 3 4
5 * 7 8
9 0 A B
C D E F
深度2节点列表为[[1, 6, 2], [1, 6, 3], [1, 6, 7], [1, 6, A], [1, 6, 0], [1, 6, 9], [1, 6, 5]]
。就像之前一样,直到你到达一个没有下一步行动的节点。让我们假设它是[1, 6, 2, 5]
。现在你有4个字母长的最长字。之后你会检查你是否得到更长的词。
根据您正在播放的版本,您可能需要调整所拍摄的结果。例如,在某些版本中,如果您的单词长度超过8个字母,则不会获得额外的分数 - 例如:如果您找到前8个字母单词,则无需进一步查看。
我希望这会让你开始。