[[2005/C3/しかた]] 「庄」の漢字を書くロボットのプログラムです。 #define A 10 // 移動の基準 #define C 100 // 方向転換の基準 void idou(int x)// 移動する { OnFwd(OUT_A); OnFwd(OUT_C); Wait(x*A); } void houkou(int x)// 方向転換する { //ちなみに、与えられた引数の角度方向転換する if(x>180){ //180度より大きいなら時計回りで { //ちなみに、与えられた引数分の角度、方向転換する if(x>180){ //180度より大きいなら時計回りで OnFwd(OUT_A); OnRev(OUT_C); Wait((360-x)*C/90); Off(OUT_A+OUT_C); } else{ //180度以下なら逆時計回りで回転 OnRev(OUT_A); OnFwd(OUT_C); Wait(x*C/90); Off(OUT_A+OUT_C); } } sub down()// 下げる { OnFwd(OUT_B); Wait(50); Off(OUT_B); } sub up()// 上げる { OnRev(OUT_B); Wait(50); Off(OUT_B); } task main() { down(); idou(2); up(); houkou(270); idou(3); houkou(90); down(); idou(7); up(); houkou(180); idou(7); houkou(90); down(); ///////curve/////// repeat(10){ idou(1); houkou(358); } up(); houkou(20); houkou(180); idou(5); houkou(270); idou(3); down(); idou(4); up(); houkou(90); idou(2); houkou(90); idou(2); houkou(90); down(); idou(5); up(); houkou(270); idou(3); houkou(180); down(); idou(7); up(); } 感想 中途半端に関数とか使ってみました。 与えられた引数で、カーブとかも可能なプログラムを作りたかったのですが、 妥協しました。