我建设VB.NET中一个惊奇的游戏。现在,我的骰子是作为2D阵列(0,0 0,1)等...

我希望它做的是,因为我打字的话,那它突出了它在使用button(x,y).doclick子其中突出的电路板上。现在我发现执行的第一个字母,然后不停地尝试每一个字母,直到它符合8个角条件(即它是邻居到最后一个),但这并不总是奏效。如果有说2“G”的在黑板上,我想下一个,这是不行的。有人能给我需要做些什么伪代码的一个例子。我已经难倒近6小时试图弄清楚这一点。感谢

有帮助吗?

解决方案

如果我理解正确的话,给你希望通过该字符串匹配的骰子要突出一个路径的字符串。有时有几种可能的选择,因此增加一个字母可能会完全改变什么突出显示。这可能是这里一个很好的方法,以保持结果从以前的字符串,所以我们不必从头开始。然后一个合理的事情是计算所有可能的路径。

对于给定的字符串的答案s就的路径的列表,其中,一个路径是网格坐标的列表。每个路径是你可以合理地突出,所以你只要选中第一个。当增加一个字母的字符串,你会发现你可以扩展路径和删除您不能展开的。

我害怕,我不知道怎么写VB代码。既然你问了伪代码,这里的一些粗略的蟒蛇般的伪代码代替。我编码惊奇格为16项的列表。邻居(x)函数返回相邻位置的列表(除了边缘情况下,这将是[X-1,X + 1,X-4中,x + 4])。

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

如果玩家类型“走”,例如,然后 (一)播放器类型的“G”,代码调用firstletter(“G”),并获取在他们身上有“G”在网格中的位置的列表“答案”。亮点,比方说,第一个。 (B)播放器类型“O”,代码调用addletter(回答,“O”),并得到在说“走出去”的电网的路径列表。再次,突出显示的第一个。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top