Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net Boggle板上的单词查找算法_Vb.net_Algorithm_Boggle - Fatal编程技术网

Vb.net Boggle板上的单词查找算法

Vb.net Boggle板上的单词查找算法,vb.net,algorithm,boggle,Vb.net,Algorithm,Boggle,我正在用vb.net构建一个boggle游戏。现在,我的骰子是2d数组(0,0,1)等等 我想让它做的是,当我输入单词时,它使用按钮(x,y)在电路板上高亮显示它。doclicksub高亮显示它。现在我的实现找到第一个字母,然后继续尝试每个字母,直到它满足8角条件(即它与最后一个相邻),但这并不总是有效。如果有说2“G”的董事会上,我想底部的一个,这将不起作用。有人能给我一个psuedocode的例子说明需要做什么吗。我已经被难倒了将近6个小时试图弄明白这一点。如果我理解正确,谢谢,给定一个字符

我正在用vb.net构建一个boggle游戏。现在,我的骰子是2d数组(0,0,1)等等


我想让它做的是,当我输入单词时,它使用
按钮(x,y)在电路板上高亮显示它。doclick
sub高亮显示它。现在我的实现找到第一个字母,然后继续尝试每个字母,直到它满足8角条件(即它与最后一个相邻),但这并不总是有效。如果有说2“G”的董事会上,我想底部的一个,这将不起作用。有人能给我一个psuedocode的例子说明需要做什么吗。我已经被难倒了将近6个小时试图弄明白这一点。如果我理解正确,谢谢,给定一个字符串,您希望突出显示与该字符串匹配的骰子中的一条路径。有时有几种可能的选择,因此添加一个字母可能会完全改变突出显示的内容。这可能是一种很好的方法,可以保留前一个子字符串的结果,因此我们不必重新开始。那么,合理的做法是计算所有可能的路径

给定字符串s的答案是路径列表,其中路径是栅格坐标列表。每个路径都是您可以合理地高亮显示的,因此您只需高亮显示第一条路径。向字符串中添加字母时,可以找到可以展开的路径,并删除不能展开的路径

恐怕我不知道怎么写vb代码。既然您要求使用伪代码,下面是一些粗糙的类似python的伪代码。我将boggle网格编码为16项的列表。邻域(x)函数返回邻域位置的列表(除了将成为[x-1,x+1,x-4,x+4]的边情况)

例如,如果玩家键入“go”,则 (a) 玩家输入“g”,代码调用第一个字母(“g”),并获得网格中有“g”的位置的列表“答案”。突出显示,比如说,第一个。
(b) 玩家输入“o”,代码调用addletter(答案是“o”),并获得网格中显示“go”的路径列表。再次突出显示第一个。

@user146780很高兴我能帮忙!
def firstLetter(typed):
  answer = []
  for pos in range(16): if grid[pos]==typed: answer += [pos]
  return answer

def addletter(partialanswer, typed):
  answer2 = []
  for partial in partialanswer:
      for neighbor in neighbors(partial[-1]):
          if grid[neighbor]==typed: 
             # partial+[neighbor] is a list. answer2 is a list of such lists.
             answer2 += partial + [neighbor]
  return answer2