初心者専用スレ「シミュレーションゲーム」を作らない?
■ このスレッドは過去ログ倉庫に格納されています
004240
04/03/23 02:25ID:BXdAOeDK>次のレスに書くやり方がお勧め。
1,マップサイズの配列を用意し、移動前の位置に0、その他に-1を入力。
2,マップの左上から右下へカウンタでマスを進めていく(マップ全体)。
3,2の所でひとマス毎にそのマスの周りを調べる。
4,3の所で0以上の値があったらその値+進入ロスの値を2のマスに入力する。
3の所で0以上の値が複数あったなら小さい値の位置を選ぶ。
3の所で0以上の値があっても、その値+進入ロスの値が既に入力されている
値より大きいなら入力を行わない。共に移動歩数のかからない方を
選びたいから。
5,2~4を移動力分繰り返す。
この方法だと移動力が低い時はツリー方法の方が早いが、
移動力が高い時はこの方法の方が断然速くなる。
ツリーは4(移動できる方向数),16,64と累乗で掛かる時間が増えていくけど、
この方法は400(マップのマス目の数),800,1200と掛け算で増えていくので。
■ このスレッドは過去ログ倉庫に格納されています