2004/A1/練習問題1

//時間によって自由に動き回るロボット//

int move_time,turn_time,total_time;//これから利用する変数を定義
task main()
{
total_time=0;//初期化する(total_timeを0に設定する)
 do//以下のプログラムを実行する
 {
 move_time=Random(50);//move_timeがランダムに決定する(0〜50)
 turn_time=Random(50);//turn_timeがランダムに決定する(0〜50)
 OnFwd(OUT_A+OUT_C);//A,Cモータを正回転させる
 Wait(move_time);//ランダムに決定した時間だけ維持
 OnRev(OUT_A);//Aモータを逆回転させる(左折)
 Wait(turn_time);//ランダムに決定した時間だけ維持
 total_time+=move_time;//total_timeにmove_timeの値を足して、この結果をtotal_timeに代入(戻す)
 total_time+=turn_time;//total_timeにmove_timeの値を足して、その結果をtotal_timeに代入(戻す) 結果的にこの2行の文は、move_timeとturn_timeを足してtotal_timeに代入
 }
 while(total_time<1000);//while文の条件が満たされている間、do文を実行する
 Off(OUT_A+OUT_C);//A,Cモータの停止(上の式が満たされなくなった時実行)
}

《反省・感想》

 このプログラムは、ランダムに動き回るプログラムで、時間によって制御されるようになっている。参考文献から初めてdo_while文を用いてプログラムを作成してみると、なかなか面白い動きをし、Randomの値は乱数で時間にも用いることができることを確認することができた。  この後のプログラムにもう1つtaskを考えてやれば、ロボコンで領域を荒らす(動き回る)ことができる以外に、更に牛乳パックを自分の陣地に持ってくることが可能であると思われる。そのため時間にRandomを用いれば良さそうだ。

 製作「ともT」


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2005-02-26 (土) 14:14:32