例えば戦争もののシミュレーションゲームをやってる人であれば、ヘックスマップは馴染みがあるだろう。
あの、六角形のマス目が続くやつね。
そうそう。俺はドラクエも FF も全然やらないんだけど、昔の RPG ゲームなんかもヘックスマップやったよね。
ちょっと今、友人と戦車戦のボードゲームを楽しむために、そのサポートプログラム的なものを作ってる。
要は、ルールを覚えるのが面倒なので、パソコンに
・・・「はい、カード引いて」「どのカードを使う?」「じゃあ、どの戦車でどの戦車を攻撃するの?」「もう一回サイコロ振って、当たり判定して」
みたいに、ゲームの進行にそってやることを逐一教えてもらおうかと(笑)
いや、パソコンに操られているなんて思わないでほしい!(笑)要は、細かいルールを覚える暇があれば、戦略・戦術立案に使いたいということだ(笑)
その中で、「この場所の戦車で、あの場所の戦車を攻撃します」ってときにそれが射程距離内なのかどうかも判定させたい。
なにせ、戦車ごとに射程距離が違うから、それをいちいち調べては自分たちで判定するのも面倒だし。
そこで、マップ上のヘックス(六角マス)間のマス数(距離)の計算方法を考えてみた。
その距離がわからないと、当然、攻撃の射程距離内なのか?とか、1回のフェーズで移動可能な距離なのか?という判定できんからね。(まあ、自分たちで距離を数えて入力する方法であれば計算は必要ないんだけど。もしかしたら、座標位置をいちいち入力するより、そのほうが使い勝手もいいかもしれないんだけど(^^;)
とりあえず今考えているのは、六角形なので 60度/120度で交わる座標軸になってしまうんだけど、X軸、Y軸を引いて、その差分で計算する方法。
このメモの写真(ホントにさっき色々考えながら書いたものなんで汚いんだけど(^^;すまん)を見てもらうとわかりやすいと思うけど、青い線が X軸、赤い線が Y軸だ。
こうすると、例えば 14 のマス(X=1,Y=4)から 32のマス(X=3,Y=2)間の距離は、X軸、Y軸のそれぞれの差の絶対値の足し算でいけるかなと。つまり、X軸の差の絶対値 2、Y軸の差の絶対値 2で、足し算すれば 4が距離。
合ってる(笑)
25(X=2,Y=5)から 11(X=1,Y=1)への距離は、1 + 4 で 5。これも合ってる!!
・・・いや、合ってない(^^; 4 にならんといかんのに・・・
25(X=2,Y=5)から 22(X=2,Y=2)への移動であれば、差の絶対値が X=0 と Y=3 だから 0 + 3 で 3 だ。あれ?これは合ってる。
この計算方法、いけた!と思ったのに、全然いけてないな(^^;
数学マスターからのご指摘・ご指導をお待ちしております。
数学マスターからのご指摘・ご指導をお待ちしております。
よろちくび。
<追記1>
これ、一定方向に進む時しか正しい距離でないなあ。やり直し(^^;
<追記2>
正しい答えは、
というエントリーにて。
電気ウナギ的○○
About Backコメント(0)
電気ウナギ的○○