移動(暫定)
多少は解析できたので更新、暫定Ver.
- MOBとプレイヤーの移動の仕様は同一
- 基本的な移動は移動予定位置のどちらかの軸が合うまでは斜め移動 それから縦横移動
- 攻撃をしたときのMOBのテレポ条件は
- 待機状態である(視界範囲内に攻撃可能なプレイヤーがいない/攻撃範囲内でプレイヤーを攻撃中でない)
- 攻撃者に対して反撃不可能である(攻撃者周辺の3*3の全てがワンクリック範囲外)
ワンクリック移動範囲の計算
- g*(n)は縦横4方向に移動した場合3、斜め4方向に移動した場合5増やす
- h*(n)は3*(dx+dy) (dx:n地点からゴール地点までのx座標の差 dy: y座標の差)
- 調べる(登録する)隣接ノードは縦横4方向と斜めは道がふさがっていない場合(右上なら右と上のどちらにも障害物がない場合)
- 次に調べるノードはh*(n)が一番小さくてかつ先に登録したノード。
- 総ノード数が60を超えた場合は打ち切り
- 調べるノードがゴール地点かつ、スタートからゴールまでの移動距離(縦横移動:1 斜め移動:2)が24以内なら移動可能。
これで大体は一致する。
けど直線上の障害物を上から回り込むか下から回り込むかが説明できない。
そしてMAPを90度回転させると、移動できなくなる場所が現れたりして、対称になってないのも説明できない。
というわけで端っこのほうが1,2マス合わない感じ。
障害物がない場合のワンクリック範囲
以下、サンプル
Map: ■■■■■■■■■■■■■■■■ ■□□□□□□□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■□□☆□□□■■□□□□★□■ ■□□□□□□■■□□□□□□■ ■□□□□□□□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■■■■■■■■■■■■■■■■ 左上を(0,0)として表示。 ☆:スタート地点 ★:ゴール地点 スタート地点:(3,4) ゴール地点:(13,4) ***(3,4)の周辺をチェック*** f: ■■■■■■■■■■■■■■■■ ■□□□□□□□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■□413635□□□□□□□□□□■ ■□363030□□■■□□□□★□■ ■□413635□□■■□□□□□□■ ■□□□□□□□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■■■■■■■■■■■■■■■■ parent: ■■■■■■■■■■■■■■■■ ■□□□□□□□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■□\↓/□□□□□□□□□□■ ■□→☆←□□■■□□□□★□■ ■□/↑\□□■■□□□□□□■ ■□□□□□□□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■■■■■■■■■■■■■■■■ 使用ノード数:9 ***(4,4)の周辺をチェック*** f: ■■■■■■■■■■■■■■■■ ■□□□□□□□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■□41363535□□□□□□□□□■ ■□36303030□■■□□□□★□■ ■□41363535□■■□□□□□□■ ■□□□□□□□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■■■■■■■■■■■■■■■■ parent: ■■■■■■■■■■■■■■■■ ■□□□□□□□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■□\↓//□□□□□□□□□■ ■□→☆←←□■■□□□□★□■ ■□/↑\\□■■□□□□□□■ ■□□□□□□□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■■■■■■■■■■■■■■■■ 使用ノード数:12 ***(5,4)の周辺をチェック*** f: ■■■■■■■■■■■■■■■■ ■□□□□□□□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■□4136353535□□□□□□□□■ ■□3630303030■■□□□□★□■ ■□4136353535■■□□□□□□■ ■□□□□□□□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■■■■■■■■■■■■■■■■ parent: ■■■■■■■■■■■■■■■■ ■□□□□□□□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■□\↓///□□□□□□□□■ ■□→☆←←←■■□□□□★□■ ■□/↑\\\■■□□□□□□■ ■□□□□□□□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■■■■■■■■■■■■■■■■ 使用ノード数:15 ***(6,4)の周辺をチェック*** f: ■■■■■■■■■■■■■■■■ ■□□□□□□□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■□4136353535□□□□□□□□■ ■□3630303030■■□□□□★□■ ■□4136353535■■□□□□□□■ ■□□□□□□□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■■■■■■■■■■■■■■■■ parent: ■■■■■■■■■■■■■■■■ ■□□□□□□□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■□\↓///□□□□□□□□■ ■□→☆←←←■■□□□□★□■ ■□/↑\\\■■□□□□□□■ ■□□□□□□□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■■■■■■■■■■■■■■■■ 使用ノード数:15 ***(4,5)の周辺をチェック*** f: ■■■■■■■■■■■■■■■■ ■□□□□□□□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■□4136353535□□□□□□□□■ ■□3630303030■■□□□□★□■ ■□4136353535■■□□□□□□■ ■□□464140□□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■■■■■■■■■■■■■■■■ parent: ■■■■■■■■■■■■■■■■ ■□□□□□□□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■□\↓///□□□□□□□□■ ■□→☆←←←■■□□□□★□■ ■□/↑\\\■■□□□□□□■ ■□□/↑\□□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■■■■■■■■■■■■■■■■ 使用ノード数:18 ***(4,3)の周辺をチェック*** f: ■■■■■■■■■■■■■■■■ ■□□□□□□□□□□□□□□■ ■□□464140□□□□□□□□□■ ■□4136353535□□□□□□□□■ ■□3630303030■■□□□□★□■ ■□4136353535■■□□□□□□■ ■□□464140□□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■■■■■■■■■■■■■■■■ parent: ■■■■■■■■■■■■■■■■ ■□□□□□□□□□□□□□□■ ■□□\↓/□□□□□□□□□■ ■□\↓///□□□□□□□□■ ■□→☆←←←■■□□□□★□■ ■□/↑\\\■■□□□□□□■ ■□□/↑\□□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■■■■■■■■■■■■■■■■ 使用ノード数:21 ***(5,5)の周辺をチェック*** f: ■■■■■■■■■■■■■■■■ ■□□□□□□□□□□□□□□■ ■□□464140□□□□□□□□□■ ■□4136353535□□□□□□□□■ ■□3630303030■■□□□□★□■ ■□4136353535■■□□□□□□■ ■□□46414040□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■■■■■■■■■■■■■■■■ parent: ■■■■■■■■■■■■■■■■ ■□□□□□□□□□□□□□□■ ■□□\↓/□□□□□□□□□■ ■□\↓///□□□□□□□□■ ■□→☆←←←■■□□□□★□■ ■□/↑\\\■■□□□□□□■ ■□□/↑\\□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■■■■■■■■■■■■■■■■ 使用ノード数:22 ***(5,3)の周辺をチェック*** f: ■■■■■■■■■■■■■■■■ ■□□□□□□□□□□□□□□■ ■□□46414040□□□□□□□□■ ■□4136353535□□□□□□□□■ ■□3630303030■■□□□□★□■ ■□4136353535■■□□□□□□■ ■□□46414040□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■■■■■■■■■■■■■■■■ parent: ■■■■■■■■■■■■■■■■ ■□□□□□□□□□□□□□□■ ■□□\↓//□□□□□□□□■ ■□\↓///□□□□□□□□■ ■□→☆←←←■■□□□□★□■ ■□/↑\\\■■□□□□□□■ ■□□/↑\\□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■■■■■■■■■■■■■■■■ 使用ノード数:23 ***(6,5)の周辺をチェック*** f: ■■■■■■■■■■■■■■■■ ■□□□□□□□□□□□□□□■ ■□□46414040□□□□□□□□■ ■□4136353535□□□□□□□□■ ■□3630303030■■□□□□★□■ ■□4136353535■■□□□□□□■ ■□□46414040□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■■■■■■■■■■■■■■■■ parent: ■■■■■■■■■■■■■■■■ ■□□□□□□□□□□□□□□■ ■□□\↓//□□□□□□□□■ ■□\↓///□□□□□□□□■ ■□→☆←←←■■□□□□★□■ ■□/↑\\\■■□□□□□□■ ■□□/↑\\□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■■■■■■■■■■■■■■■■ 使用ノード数:23 ***(6,3)の周辺をチェック*** f: ■■■■■■■■■■■■■■■■ ■□□□□□□□□□□□□□□■ ■□□4641404040□□□□□□□■ ■□413635353535□□□□□□□■ ■□3630303030■■□□□□★□■ ■□4136353535■■□□□□□□■ ■□□46414040□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■■■■■■■■■■■■■■■■ parent: ■■■■■■■■■■■■■■■■ ■□□□□□□□□□□□□□□■ ■□□\↓///□□□□□□□■ ■□\↓///←□□□□□□□■ ■□→☆←←←■■□□□□★□■ ■□/↑\\\■■□□□□□□■ ■□□/↑\\□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■■■■■■■■■■■■■■■■ 使用ノード数:25 ***(7,3)の周辺をチェック*** f: ■■■■■■■■■■■■■■■■ ■□□□□□□□□□□□□□□■ ■□□464140404040□□□□□□■ ■□41363535353535□□□□□□■ ■□3630303030■■□□□□★□■ ■□4136353535■■□□□□□□■ ■□□46414040□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■■■■■■■■■■■■■■■■ parent: ■■■■■■■■■■■■■■■■ ■□□□□□□□□□□□□□□■ ■□□\↓////□□□□□□■ ■□\↓///←←□□□□□□■ ■□→☆←←←■■□□□□★□■ ■□/↑\\\■■□□□□□□■ ■□□/↑\\□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■■■■■■■■■■■■■■■■ 使用ノード数:27 ***(8,3)の周辺をチェック*** f: ■■■■■■■■■■■■■■■■ ■□□□□□□□□□□□□□□■ ■□□46414040404040□□□□□■ ■□4136353535353535□□□□□■ ■□3630303030■■□□□□★□■ ■□4136353535■■□□□□□□■ ■□□46414040□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■■■■■■■■■■■■■■■■ parent: ■■■■■■■■■■■■■■■■ ■□□□□□□□□□□□□□□■ ■□□\↓/////□□□□□■ ■□\↓///←←←□□□□□■ ■□→☆←←←■■□□□□★□■ ■□/↑\\\■■□□□□□□■ ■□□/↑\\□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■■■■■■■■■■■■■■■■ 使用ノード数:29 ***(9,3)の周辺をチェック*** f: ■■■■■■■■■■■■■■■■ ■□□□□□□□□□□□□□□■ ■□□4641404040404040□□□□■ ■□413635353535353535□□□□■ ■□3630303030■■3534□□★□■ ■□4136353535■■□□□□□□■ ■□□46414040□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■■■■■■■■■■■■■■■■ parent: ■■■■■■■■■■■■■■■■ ■□□□□□□□□□□□□□□■ ■□□\↓//////□□□□■ ■□\↓///←←←←□□□□■ ■□→☆←←←■■↑\□□★□■ ■□/↑\\\■■□□□□□□■ ■□□/↑\\□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■■■■■■■■■■■■■■■■ 使用ノード数:33 ***(10,4)の周辺をチェック*** f: ■■■■■■■■■■■■■■■■ ■□□□□□□□□□□□□□□■ ■□□4641404040404040□□□□■ ■□41363535353535353539□□□■ ■□3630303030■■353434□★□■ ■□4136353535■■454039□□□■ ■□□46414040□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■■■■■■■■■■■■■■■■ parent: ■■■■■■■■■■■■■■■■ ■□□□□□□□□□□□□□□■ ■□□\↓//////□□□□■ ■□\↓///←←←←/□□□■ ■□→☆←←←■■↑\←□★□■ ■□/↑\\\■■/↑\□□□■ ■□□/↑\\□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■■■■■■■■■■■■■■■■ 使用ノード数:38 ***(11,4)の周辺をチェック*** f: ■■■■■■■■■■■■■■■■ ■□□□□□□□□□□□□□□■ ■□□4641404040404040□□□□■ ■□4136353535353535353939□□■ ■□3630303030■■35343434★□■ ■□4136353535■■45403939□□■ ■□□46414040□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■■■■■■■■■■■■■■■■ parent: ■■■■■■■■■■■■■■■■ ■□□□□□□□□□□□□□□■ ■□□\↓//////□□□□■ ■□\↓///←←←←//□□■ ■□→☆←←←■■↑\←←★□■ ■□/↑\\\■■/↑\\□□■ ■□□/↑\\□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■■■■■■■■■■■■■■■■ 使用ノード数:41 ***(12,4)の周辺をチェック*** f: ■■■■■■■■■■■■■■■■ ■□□□□□□□□□□□□□□■ ■□□4641404040404040□□□□■ ■□413635353535353535393939□■ ■□3630303030■■3534343434□■ ■□4136353535■■4540393939□■ ■□□46414040□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■■■■■■■■■■■■■■■■ parent: ■■■■■■■■■■■■■■■■ ■□□□□□□□□□□□□□□■ ■□□\↓//////□□□□■ ■□\↓///←←←←///□■ ■□→☆←←←■■↑\←←←□■ ■□/↑\\\■■/↑\\\□■ ■□□/↑\\□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■■■■■■■■■■■■■■■■ 使用ノード数:44 (ゴールに到着/ゴールから親を辿ってスタートへ戻る) Map: ■■■■■■■■■■■■■■■■ ■□□□□□□□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■□□□□□→→→\□□□□□■ ■□□☆→/□■■□→→→★□■ ■□□□□□□■■□□□□□□■ ■□□□□□□□□□□□□□□■ ■□□□□□□□□□□□□□□■ ■■■■■■■■■■■■■■■■ 使用ノード数:44 移動距離:12 ***移動可能***