物体の干渉

前回は,フィールドの端(別の場所)に物体を並べていました.
では,このサンプルプログラムを実行してください.
今回はlibrobo.aではなく,librobo2.aを使ってください.
これは,すでに一列に並んでいる物体を,同じ列に,半径の小さい順で横並びにするプログラムです.
しかし,物体を移動させる先に,すでに別の物体がある場合,物体を解放することができません.

練習

10個全ての物体を下端 (y = -0.8) に退避させてから,中央 (y = 0.0) に半径の小さい順に物体を横並びにするプログラムを作成してください.
この作業の完了までにかかった時間を表示してください.

ヒント

経過時間[s]を返す関数は

double get_system_time_in_sec()

です.

課題

練習プログラムを改良して,できるだけ早く作業を終了できるようにしてください.
練習での作業時間と比較し,改良プログラムでどれだけ作業を高速化できたかを示してください.
(実行ごとに物体位置はランダムに変化しますので,それぞれのプログラムを10回程度実行した結果の平均で議論しましょう)

適宜コメントを入れたり,関数化したりして,他人にもわかりやすいプログラムになるように心がけてください.全くコメントのないものは減点します.
他人のプログラムを写したことが判明した場合は,両者とも0点になります.課題内容に対応していないプログラムにも点をつけません.

発展課題

中央(y=0.0)に,重量の小さい順に物体を横並びにするプログラムを作成してください.
できるだけ高速な整列を目指しましょう.

提出物

提出物一式を入れるフォルダの名前は学生番号にしてください(ログインIDではない!).

提出期限

二週間後までに上記のフォルダをzipに圧縮したものをCLEで提出してください.


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS