[[戻る>2005/A6]] [[2005/A6/コンドの部屋]] *『左』を書くロボットのプログラム [#v73b2b89] //『左』を書くロボット //製作者:コンド //製作日:05年11月8日 //キャタピラ仕様で、アームでペンを上下させるロボットのプログラムです。 **数の定義 [#q37bef71] #define move_time 20 // アームの上げ、下げの時間 #define Move_time 110 // ロボットの中心とペン先との誤差修正の時間 **補助プログラム [#s55d3753] void turn_right(int x) // 右回転のためのプログラム { OnRev(OUT_A); OnFwd(OUT_C); Wait(x); Off(OUT_A+OUT_C); } void turn_left(int y) // 左回転のためのプログラム { OnRev(OUT_C); OnFwd(OUT_A); Wait(y); Off(OUT_A+OUT_C); } void go_straight(int z) // 直進のためのプログラム { OnFwd(OUT_A+OUT_C); Wait(z); Off(OUT_A+OUT_C); } void back(int w) // 後退のためのプログラム { OnRev(OUT_A+OUT_C); Wait(w); Off(OUT_A+OUT_C); } void right(int t) // 二画目の右曲線のためのプログラム { Off(OUT_A); OnFwd(OUT_C); Wait(t); Off(OUT_C); } void up() // アームを上げるプログラム { OnFwd(OUT_B); Wait(move_time); Off(OUT_B); } void down() // アームを下げるプログラム { OnRev(OUT_B); Wait(move_time); Off(OUT_B); } **メインのプログラム [#bfec612e] task main() { down(); // 一画目、書き始め go_straight(177); // 一画目の直線を書く up(); // 一画目、書き終わり back(10); // 後ろに移動 turn_right(159); // 右に回転 back(153); // 二画目の書き始めに移動 down(); // 二画目、書き始め repeat(8){ // 二画目の右曲線を書く go_straight(15); right(11); } up(); // 二画目、書き終わり turn_right(292); // 右に回転 back(54); // 三画目の始めに移動 turn_right(170); // 右に回転 back(Move_time); // 誤差修正 down(); // 三画目、書き始め go_straight(119); // 三画目の直線 up(); // 三画目、書き終わり go_straight(65); // 四画目の始めに移動 turn_right(159); // 右に回転 back(Move_time); // 誤差修正 down(); // 四画目、書き始め go_straight(98); // 四画目の直線 up(); // 四画目、書き終わり go_straight(Move_time); // 誤差修正 turn_left(140); // 左に回転 back(235); // 五画目の書き始めに移動 down(); // 画目、書き始め go_straight(180); // 五画目の直線を書く up(); // 五画目、書き終わり go_straight(130); // ロボットが退場して終了 } *反省点 [#o77618e2] ・キャタピラ仕様のため、文字が波文字になってしまった。 ・『ナ』と『エ』の接点がずれてしまった。 ・プログラミング、ロボットの形が決まるまで時間が掛かってしまった。 -見やすくて良いと思います。この調子で… -- [[TA M]] &new{2005-11-11 (金) 16:12:38}; -大変わかりやすいプログラムになっていると思います。ついでに冒頭のプログラムの説明の部分も // でコメントアウトしておきましょうか。 -- [[松本(教員)]] &new{2005-11-11 (金) 22:35:37}; #comment