[[2005/A6/コンドの部屋]] *『左』を書くロボット [#a96eb151] //製作者:コンド //製作日:05年11月8日 **数の定義 [#r10dd2d3] #define move_time 20 // アームの上げ、下げの時間 #define Move_time 110 // ロボットの中心とペン先との誤差修正の時間 **補助プログラム [#e9a2b1c4] 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); } **メインのプログラム [#mcc1570c] 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); // ロボットが退場して終了 }