这是一个有趣的问题。让我们再次回顾一下规则。球员
- 鸡:走最短路径到场(可能有多个最短路径)和远离鹰(在最短路径中最大化自身与鹰之间的距离)。
- 鹰:走最短路径到鸡
为了解决这个问题,我们必须假设它是轮流玩的:先是鸡,然后是老鹰,依此类推。游戏结束时:
- 老鹰吃鸡。
- 鸡在场上。
这是距离的技巧:
更新
您想要的距离称为切比雪夫距离。您可以轻松计算它:
distance = max of(difference of corresponding coordinates between the two points)
对于 (1,1) 和 (2,3) 距离 = max(|1-2|,|2-3|) = 2
对于 (2,3) 和 (4,7) 距离 = 4
对于 (4,5,6) 和 (1,1,1) 距离 = 5
如果需要,您可以忽略较旧的答案。
老的
distance = Manhattan distance - length of longest 45 deg diagonal
曼哈顿距离很容易理解。查看它的维基。举一些例子:
---/F
--/-|
-/--|
C---X
manhattan distance = 7
length of max diagonal = 3
distance = 7-3 = 4
另一个
---/-F
--/--|
-/---|
C----X
distance = 8-3 = 5
警告:请记住,可能有许多最短路径。例如。
---F
--/F
-/-F
C--F
-\-F
--\F
---F
3个动作可以去很多地方。使用距离计算器选择离鹰最远的一个。此外,如果鹰和鸡之间的距离在任何时候都小于鸡和场,那么鹰会赢得其他鸡。只需模拟动作,您就会知道。