HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
0416
愛好家分岐3解決


愛好家

リンク

2011/4/16(Sat) 13:52:29|NO.38441

今、ロボットランダム移動プログラム(袋小路以外は引き返さない)を作っているのですが

場所(x,y)の配列をとって移動可能な場所を1、移動不可な場所を0としました。
ここでロボットの座標が(1,1)(左から来た)のとき、
上下右の場所が移動可能かどうか調べて
上と右だけ可能なら、rndを使って、ランダムに移動
下と右だけなら…略

としているのですが、ifを多発してかなりの行に渡ってしまいます。
もっと良い方法はありますか?



この記事に返信する


f3d

リンク

2011/4/16(Sat) 13:54:01|NO.38442

おっしゃる方法でもそんなにスクリプトが増えるとは思いませんが、
一応スクリプトを載せてみては?



Cookies

リンク

2011/4/16(Sat) 14:10:03|NO.38443

ということは4*7=28個、ifがあるんですか?
(上,下,左,右)*(上下右,上下,上右,下右,上,下,右)。

でもそこまで多くなるわけではないのでは?
行ける方向が3つだったら、rnd(3)
行ける方向が2つだったら、rnd(2)
行ける方向が1つだったら、その方向へ。
でよくないですか?

もしくは、
rnd(6)\[行ける方向数]をもとに決めるとか。

でも、rndで数が返って来た時どうやって方向を決めるのですか?
スクリプトかアルゴリズムかを教えてください。



駆け出し

リンク

2011/4/17(Sun) 17:02:01|NO.38487

28行は多くないんですね。
ありがとうございました。



ONION software Copyright 1997-2023(c) All rights reserved.