六角格棋盤距離計算的一種思路
六角格棋盤廣泛應用于戰(zhàn)棋游戲中。比起四角格棋盤,六角格棋盤的距離計算更加復雜。關于六角格的距離計算,有非常多的思路和解決方案,本文僅從數學的角度簡單介紹一種方法。
一、如何定義六角格棋盤的距離
在平面上,與某點距離相同的點集合是一個圓。在六角格棋盤中,與某格距離相同的格集合是個“六邊形”,如圖1所示,用相同顏色表示距離相同的格。

二、六角格棋盤的坐標
????1. 四角格棋盤的坐標
先來分析較為簡單的四角格,如圖2所示。

在四角格中,由某一格向相鄰的格移動時,有四個運動方向:i,-i,j,-j
從格經過若干次運動到達某一格,每次運動的向量和,即為該格的坐標。由此繪制四角格棋盤的坐標,如圖3所示。

????2. 六角格棋盤的坐標
在六角格中,由某一格向相鄰的格移動時,有六個運動方向:i,-i,j,-j,k,-k
如圖4所示。

從格經過若干次運動到達某一格,每次運動的向量和,即為該格的坐標。
但是這樣會帶來一個問題:我們都知道平面上的一點只需要兩個坐標就可以確定了,現在我們用了三個坐標,必然有一個是不獨立的。由? 可知,坐標
……
……
描述的是同一個格。
因此,我們設法舍掉一個坐標。對于坐標來說,
是同一個格。將第三個坐標變?yōu)?并舍去,每個格就有了統(tǒng)一的坐標
。如圖5所示。

不難看出,用兩個坐標想要直觀計算六角格棋盤的距離還是太困難,在推導中仍將采用三坐標進行計算,最后再將結果雙坐標化表示。
三、六角格棋盤的距離計算
????1. 四角格棋盤的距離
易知,四角格棋盤中格與格
的距離
為
推導過程如下:
假設我們從格出發(fā),走任意路徑到達格
,設我們進行
運動的次數是
,
運動的次數是
,
運動的次數是
,
運動的次數是
,那么我們走過的路程
為
且有
定義
則
取等條件或
同理有
定義所有路徑中路程最小值為距離,則有
對于更一般的情況,格與格
的距離
為
????2. 六角格棋盤的距離
根據對四角格的討論,我們得到路程和距離
有以下結論:
在六角格中,假如我們從出發(fā),走任意路徑到達
,類比易得如下結論:
那么
是否也成立呢?
答案是不成立,因為,
,
三個坐標并不是唯一的。根據對六角格棋盤坐標的討論,我們可以得到:
……
……
在這些右式中的最小值才是距離。
如何求得這個最小值,關鍵是找到對應的。在數軸上,
對應
與
的距離,
對應
與
的距離,
對應
與
的距離。不妨假設
,那么:
取等時
取等時
即
以上為三坐標下六角格的距離。
若以雙坐標進行表示:
假如我們從出發(fā),走任意路徑到達
→假如我們從
出發(fā),走任意路徑到達
即的特殊情況,有
對于更一般的情況,格與格
的距離
為
此式即為六角格棋盤中任意兩格的距離。