[[2005/C2/どみ]]
*文字を書くロボット [#mefc2a60]

 #define TURN_TIME 148        /90°曲がる時間
 
 sub go_fwd() {               /前進
 	OnFwd(OUT_A+OUT_C);
 }
 
 sub go_rev() {               /後進
 	OnRev(OUT_A+OUT_C);
 }
 
 sub turn_right() {           /右回転
 	OnFwd(OUT_A);
 	OnRev(OUT_C);
 }
 
 sub turn_left() {            /左回転
 	OnFwd(OUT_C);
 	OnRev(OUT_A);
 	}
 
 sub stop_ac() {              /停止
 	Off(OUT_A+OUT_C);
 	Wait(50);
 }
 
 sub pen_down() {             /ペンを下げる
 	OnFwd(OUT_B);
 	Wait(18);
 	Off(OUT_B);
 	Wait(50);
 }
 
 sub pen_up() {               /ペンを上げる
 	OnRev(OUT_B);
 	Wait(10);
 	Off(OUT_B);
 	Wait(50);
 }
 
 task main() {
 	pen_down();           /1画目
 	OnFwd(OUT_A);
 	Wait(120);
 	stop_ac();
 	pen_up();
 
 	go_fwd();
 	Wait(40);
 	stop_ac();
 	turn_left();
 	Wait(140);
 	stop_ac();
 	go_rev();
 	Wait(80);
 	stop_ac();
 
 	pen_down();           /2画目
 	go_fwd();
 	Wait(100);
 	stop_ac();
 	pen_up();
 
 	turn_right();
 	Wait(TURN_TIME);
 	stop_ac();
 	go_rev();
 	Wait(60);
 	stop_ac();
 
 	pen_down();           /3画目
 	go_fwd();
 	Wait(45);
 	stop_ac();
 	pen_up();
 
 	go_fwd();
 	Wait(25);
 	stop_ac();
 	turn_left();
 	Wait(TURN_TIME);
 	stop_ac();
 	go_rev();
 	Wait(75);
 	stop_ac();
 
 	pen_down();           /4画目(1)
 	go_fwd();
 	Wait(55);
 	stop_ac();
 	pen_up();
 
 	go_fwd();
 	Wait(75);
 	stop_ac();
 	turn_right();
 	Wait(TURN_TIME);
 	stop_ac();
 	go_rev();
 	Wait(75);
 	stop_ac();
 
 	pen_down();           /4画目(2)
 	go_fwd();
 	Wait(45);
 	stop_ac();
 	pen_up();
 
 	go_fwd();
 	Wait(70);
 	stop_ac();
 	turn_right();
 	Wait(TURN_TIME);
 	stop_ac();
 	go_rev();
 	Wait(20);
 	stop_ac();
 
 	pen_down();           /5画目
 	go_rev();
 	Wait(55);
 	stop_ac();
 	pen_up();
 }

「右」と書きます。「口」の部分を合わせるのに苦労。結構微妙なものが出来た気がする。あと、動作ごとにいちいち止まる必要もなかったかな。

コメントをどうぞ
-ほんとプログラムって難しいよね。でも初めから全てをプログラミングするより一つの動作を完璧にしてから積み上げるようにしてプログラミングするとうまくいくよ -- [[ジブリ大好き]] &new{2005-11-11 (金) 19:12:08};

#comment

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