六角格棋盘距离计算的一种思路
六角格棋盘广泛应用于战棋游戏中。比起四角格棋盘,六角格棋盘的距离计算更加复杂。关于六角格的距离计算,有非常多的思路和解决方案,本文仅从数学的角度简单介绍一种方法。
一、如何定义六角格棋盘的距离
在平面上,与某点距离相同的点集合是一个圆。在六角格棋盘中,与某格距离相同的格集合是个“六边形”,如图1所示,用相同颜色表示距离相同的格。

二、六角格棋盘的坐标
1. 四角格棋盘的坐标
先来分析较为简单的四角格,如图2所示。

在四角格中,由某一格向相邻的格移动时,有四个运动方向:i,-i,j,-j
从格经过若干次运动到达某一格,每次运动的向量和,即为该格的坐标。由此绘制四角格棋盘的坐标,如图3所示。

2. 六角格棋盘的坐标
在六角格中,由某一格向相邻的格移动时,有六个运动方向:i,-i,j,-j,k,-k
如图4所示。

从格经过若干次运动到达某一格,每次运动的向量和,即为该格的坐标。
但是这样会带来一个问题:我们都知道平面上的一点只需要两个坐标就可以确定了,现在我们用了三个坐标,必然有一个是不独立的。由 可知,坐标
……
……
描述的是同一个格。
因此,我们设法舍掉一个坐标。对于坐标来说,
是同一个格。将第三个坐标变为0并舍去,每个格就有了统一的坐标
。如图5所示。

不难看出,用两个坐标想要直观计算六角格棋盘的距离还是太困难,在推导中仍将采用三坐标进行计算,最后再将结果双坐标化表示。
三、六角格棋盘的距离计算
1. 四角格棋盘的距离
易知,四角格棋盘中格与格
的距离
为
推导过程如下:
假设我们从格出发,走任意路径到达格
,设我们进行
运动的次数是
,
运动的次数是
,
运动的次数是
,
运动的次数是
,那么我们走过的路程
为
且有
定义
则
取等条件或
同理有
定义所有路径中路程最小值为距离,则有
对于更一般的情况,格与格
的距离
为
2. 六角格棋盘的距离
根据对四角格的讨论,我们得到路程和距离
有以下结论:
在六角格中,假如我们从出发,走任意路径到达
,类比易得如下结论:
那么
是否也成立呢?
答案是不成立,因为,
,
三个坐标并不是唯一的。根据对六角格棋盘坐标的讨论,我们可以得到:
……
……
在这些右式中的最小值才是距离。
如何求得这个最小值,关键是找到对应的。在数轴上,
对应
与
的距离,
对应
与
的距离,
对应
与
的距离。不妨假设
,那么:
取等时
取等时
即
以上为三坐标下六角格的距离。
若以双坐标进行表示:
假如我们从出发,走任意路径到达
→假如我们从
出发,走任意路径到达
即的特殊情况,有
对于更一般的情况,格与格
的距离
为
此式即为六角格棋盘中任意两格的距离。

