ヘックスマップ上の最短経路自動作成の前提条件

この間書いた「ヘックスへの最短経路の自動計算」の話で、真上のヘックスに対してジグザグに進んでいく案を示したのだが、それに対して「移動するヘックス数は同じでも、それでは運動量が大きくなりすぎるので最短経路とはいえない」という意見をいただいた。

この手のヘックスマップの場合、例えば右横に行こうとすると「右に必要なだけ回転して進路を変える」という動作が必要になる。そして、ジグザグに動くということは、「右に向きを変える」「1つヘックスを進む」「左に向きを変える」「1つヘックスを進む」という具合に、間に向きを変える動きが入るので、最短経路とはいえないということだ。
なぜかというと、「向きを変える」という動きに、例えば「1ヘックス進む」という動きと同じ運動量が想定されている場合が多い。
つまり、ジグザグに「右、左」と進んだ時は、2移動量ではなく4移動量分の運動量が消費されるというわけだ。

なるほど。

例えば、前回の話で使用したマップであれば、6-5-7 から 2-3-5 に向かうのに、

6-5-7→5-5-6→(L)→4-4-6→(R)→3-4-5→(L)→2-3-5

と進む場合、移動量は4ではなく(5-5-6 へのまっすぐ進んだとして)間に3回の方向転換を含むので、7である・・・という考え方やね。(L は左転換、R は右転換)
なので、本当の最短経路は、できるだけ斜めに突っ切って、途中で方向転換してまた斜めに目標に向かう、

6-5-7→5-5-6→4-5-5→(L)→3-4-5→2-3-5

であると。これであれば、4-5-5 から 3-4-5 に進む時に1回だけ方向転換をすればいいので、移動量は5ですむと。

これは、「大戦略」などのメジャーなゲームで採用されているパターンのようだ。つまり「コマの向き」がヘックスの「辺」に向かっているということだね。
いや、俺も Windows 3.1 の頃に「大戦略」買ってやったことあるけど(IIIかなあ?)、すぐ飽きちゃったので記憶にまったく残ってないのだ(^^;なので、上記のような指摘をいただいた時、「???」なのであった。

今回、俺が想定しているゲームは、国際通信社から出ている「WORLD TANK BATTLES」(ワールド タンク バトルズ~小さな戦車の大戦車戦!~)である。

20141223_hex1.jpg

このゲームは、上の図のように「コマの向き」がヘックスの「頂点」なのだ。そして、その頂点の左右にあるヘックスには「方向転換無し」で進めるのである。(青い矢印)
後退の場合も、同じように後ろの頂点の左右には「方向転換無し」で進める。(黄色い矢印)
つまり、

6-5-7→5-5-6→4-4-6→3-4-5→2-3-5

も、

6-5-7→5-5-6→4-5-5→3-4-5→2-3-5

も、同じ「移動量4(運動量4)」なのである。(L や R の転換がない)

もちろん、上の図で言うと、3-4-19 から 3-5-18 に向かおうとすると、右に1頂点分回転しないといけないので、そこで+1移動量となるが。

この前提を提示していなかったので色々混乱を呼んでしまった。
ただ、「可能な限り斜めに向かい、1回だけ方向転換して更に斜めに目標地点に向かう」という経路の取り方は、障害物の迂回経路を自動作成するのに使えそうである。

ということで、次回はこの斜めコースの自動作成方法について考えてみよう。

トラックバック(0)

このブログ記事を参照しているブログ一覧: ヘックスマップ上の最短経路自動作成の前提条件

このブログ記事に対するトラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/3244

コメントする

このブログ記事について

このページは、shinodaが2014年12月23日 10:33に書いたブログ記事です。

ひとつ前のブログ記事は「ボンネットの塗装がばっくり剥げちゃった(^^;」です。

次のブログ記事は「正月の暇つぶし用にヤマト・メカコレクションシリーズを購入」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら