note/てくね の変更点


とりあえず残しておく


----

----
前述のアルゴリズムでは説明できない動きが多かったため、再度検証
移動に法則性が見当たらないため、乱数を使ってる可能性があると判断

配布元から海戦JSのスクリプトをDL
ソースコードをしらみつぶしに読んでいると、hako-turn.cgiに以下のコードを発見

		if($arg > 6) { # 2マス移動の1マスめ
		# 経由点を調べる
			$viaflag1 = random(1); # 2通りの行き方があればランダムで試す

乱数使ってた......

----

乱数使っている前提の下、検証再開

  ШいいんてふがШいいんてふ(1, 8)で移動操縦を発令。スパイダー工作艇(Шいいんてふ)の移動方向を''4時方向''にセットしました。
  Шいいんてふのスパイダー工作艇(Шいいんてふ)が(1, 8)から''(2, 8)'',(3, 9)の順に移動(手動操縦)し到着しました。

  ШいいんてふがШいいんてふ(1, 8)で移動操縦を発令。スパイダー工作艇(Шいいんてふ)の移動方向を''4時方向''にセットしました。
  Шいいんてふのスパイダー工作艇(Шいいんてふ)が(1, 8)から''(2, 9)'',(3, 9)の順に移動(手動操縦)し到着しました。

移動の法則性なんてなかった

----

しかし移動する方向に偏りがある可能性がある
有意差検定等の統計的手法を用いて、確率的に予測するのも面白いかもしれない

----

上記の通り移動しなかった場合
対象ユニット、対象座標、目標座標、そのときの状況を書いてください

- 目標を2HEXより遠くに設定した場合と、2HEXの場合で動き方に差があるか検証していただきたいです -- [[てくね]] &new{2013-02-10 (日) 16:21:02};
- 今確認しましたが結構バラバラに動いているようですね -- [[てくね]] &new{2013-02-10 (日) 16:19:35};
- 関係あるかわかりませんが、18,3には陸地、18,2には浅瀬がありました。索敵順通りなら19,2を経由すると思っていたのですが、誤解などありましたら教えていただきたいです。 -- [[葉月]] &new{2013-02-10 (日) 11:49:27};
- 〆【非公式】初心者~中級者指導用の『僕は神山満月ちゃん!!』(〆【非公式】初心者~中級者指導用:スパイダー工作艇)が(19, 1)から(18, 2),(19, 3)の順に移動(自動操縦)し到着しました。 対象座標が19,1で目標座標が19,3 -- [[葉月]] &new{2013-02-10 (日) 11:42:17};
- 前言ってたやつですねwwすげー!www -- [[なちゅらる]] &new{2013-02-10 (日) 07:19:16};

----
----

ユニットの移動ルーチン(目的地指令)
1 指定したユニットと目的地の座標を取得
2 目的地の座標からその座標へ、何HEX離れているかを表した距離MAPを作成

距離MAPの例

&ref(http://hakojoy.net/~bbs/cgi/navyimg/img/1489.png);

※目的地から目的地への距離は0HEX

3 ユニットの座標の距離を距離MAPから取得

&ref(http://hakojoy.net/~bbs/cgi/navyimg/img/1490.png);

ユニットから目的地への距離は2HEX

4 索敵順に周囲1HEXの距離を全て取得

右上:距離3
右  :距離3
右下:距離2
左下:距離1
左  :距離2
左上:距離3

5 移動可能かつ、距離が一番近い(複数ある場合は取得した順、つまり索敵順)座標に移動する

このとき、距離が今よりも遠くなる場合は移動しない(同じ距離の場合は移動する)

優先度一覧
左下:距離1
右下:距離2
左  :距離2
―――移動しない―――
右上:距離3
右  :距離3
左上:距離3

左下が移動可能なら左下に
左下が移動不可なら右下に
右下が移動不可なら左に
左が移動不可なら移動しない

左下が移動可能なので左下に移動

&ref(http://hakojoy.net/~bbs/cgi/navyimg/img/1491.png);

6 目的地に到着するか、移動力分の移動をするまで4~5を繰り返す

----

おまけ 目的地が移動不可な場合

&ref(http://hakojoy.net/~bbs/cgi/navyimg/img/1493.png);

ユニットから目的地への距離1

右上:距離2
右  :距離2
右下:距離2
左下:距離1
左  :距離0
左上:距離1

優先度一覧
左  :距離0
左下:距離1
左上:距離1
―――移動しない―――
右上:距離2
右  :距離2
右下:距離2

左が移動不可なので左下に移動

&ref(http://hakojoy.net/~bbs/cgi/navyimg/img/1492.png);

ユニットから目的地への距離1

右上:距離1
右  :距離2
右下:距離2
左下:距離2
左  :距離1
左上:距離0

優先度一覧
左上:距離0
右上:距離1
左  :距離1
―――移動しない―――
右  :距離2
右下:距離2
左下:距離2

左上が移動不可なので右上に移動

&ref(http://hakojoy.net/~bbs/cgi/navyimg/img/1493.png);

以下ループ
----

参照回数 &counter(total);