1

我想做一个益智配对游戏,但算法有问题。

这是我的游戏 - 一个棋盘,例如 4x4 - 16 个包含 8 对字母的单元。字母被打乱了。

要求是:

  • 没有被其他字母阻挡的字母对应该连接在一起
  • 一对字母加入后会消失
  • 您应该首先选择最近的一对字母加入

示例图片:

我应该使用什么最有效的算法来匹配一对字母

4

1 回答 1

3

我不想写代码,也不想讲太多细节,所以这里只是一个算法的粗略草图。遍历所有字母:

  1. 取一封信
  2. 找到它的所有邻居。
  3. 如果邻居是同一个字母,那么您找到了匹配项。
  4. 如果邻居是空白空间,则递归地查找其邻居以寻找匹配项。
  5. 如果您找到匹配项,请记住路径(尤其是路径长度)

迭代时您对最短路径感兴趣,因此您必须始终迭代直到结束,或者如果您找到了可能的最短路径(相邻对)。

于 2013-11-12T11:14:06.207 回答