Re: なんでも質問スレッド その5 [ No.92 ]
メンテ
 2008/07/26 02:57
 あんどろ
>>72

こちらの説明が悪かったようです。
まず、SRPGの雛形を作ろうとしています。
長すぎて文章としてダメな感じです。図を参考にしてくださると幸いです。

目標は単純かつ軽いプログラムを組むことです。
この問題さえ解決すれば、多分自分の実力で最後まで作れるだろうと思っておりますので、ぜひ、誰か回答をお願いします。

移動力3のキャラクタの場合、移動可能な座標は、

○○
○○○
キ○○○
○○○
○○


となります。(キ・・・キャラクタの位置です)
ところが障害物があると、

○○
○○○
キ○○○
障○○
×○
×
というように×の印のついた座標には移動できなくなります。
ところで、現在考えているプログラムの流れなのですが、
1・・移動力を変数に代入する。
2・・初期のキャラクタの座標にX座標+1やY座標+1などの操作を移動力分だけ行い、その座標が移動可能かどうかを判定する。
3・・移動可能な座標をそれぞれ、別々の変数に代入して、ピクチャで表示する。

この場合、
処理数は
移動1マス・・・4の1乗=4通り
移動2マス・・・4の2乗=16通り
移動3マス・・・4の3乗=64通り
移動4マス・・・4の4乗=256通り
移動5マス・・・4の5乗=1024通り
だけのマスの判定が必要であり、いくらなんでも重いはずです(マス目が重複しているのもあります。)

また、上に書いた○の図から考えて、それぞれの○の地点から問題なくキャラの座標まで歩けるかどうかを確かめるのにも、”遠回り”があるためかなりの処理量になるはずです。

○○
○○○
キ○○○
○障▼
○▲

ある座標からキャラクタの座標に近づくことができるかどうかを判定するには、実際に”歩かせる”。
▼の位置であれば”上左左”と歩けばキャラクタに到達できるが、”左上左”、では到達できない。また、回り込むようなルートも考えられるので、単純に2の3乗通りの道筋以上を考える必要もある(ただし移動数4以上のとき)

○○
▼○○
障○○○
キ○○○○

というような配置であれば、▼から”右下下左”と移動すればキに到達できる。しかし、片っ端から調査する、このようなことをやっていてはとても重くなるはず。


誰か、どのようにやっているのかを教えていただけると幸いです。もしこの方法が普通だというのなら、あきらめてこれで作ってみますが。
長文ですいません。