✨ ベストアンサー ✨
間違えがあったので、訂正して再投稿します
こんな感じの答え方になると思います。
【問題例1】だけですが参考になればうれしいです。
まず、一周する流れを考えてみます
反時計回りだと↓のような流れになります。
開始←必ず入れる
直進○秒
左旋回○秒
直進○秒
左旋回○秒
直進○秒
左旋回○秒
直進○秒
終了←必ず入れる
次に秒数を考えます
ポイントは↓の2つです
1.何秒直進すれば20m進むか
2.何秒右旋回すれば90度曲がるか
○に秒数を入れたらプログラム完成です
180度向きを変える→直進の動きを1回したら終わるという前提で考えました
大まかな流れは↓の感じだと思います
1.開始
2.センサ命令(ぶつかったかどうか検知)
★条件分岐(Aぶつかる場合=感知とBそうでない場合=感知しない)
A)ぶつかった場合
旋回○秒(○は180度曲がるまでの秒数)
直進○秒(何cm直進するか=何秒継続させるかは当日の問題文の指示に従ってください)
終わり
B)ぶつからない場合
直進
2.へ戻る
ぶつからない場合は、ぶつかるまで繰り返します。
2は感知するかしないかで違う命令を出す必要があるのが、1との違いです。センサが反応しないときの命令をどうするかという対応策が条件分岐のことだと思います。
例は違うものの、センサの問題で考えれば、壁があるはずなのに「ない」と判断してしまうケースです。光の反射を元にセンサが検知する仕組であれば、部屋の明るさによって誤作動することが考えられます。
明るさだと部屋の中心は大丈夫でも、部屋のすみは暗くて上手く作動しないということはありそうです。この場合は車体や机がある場所によって、うまく作動するか変わってくると言えます。
ありがとうございます(><)
2.の右旋回も正しくは左旋回です。