マクロを使って短くしたプログラムを掲載しました。New!
//作成者:SAS //作成日時:10/29、最終更新日:11/4
int r_angled ; sub up_pen() { SetPower(OUT_B,0); OnFwd(OUT_B); Wait(20); Off(OUT_B); } sub down_pen() { SetPower(OUT_B,0); OnRev(OUT_B); Wait(20); Off(OUT_B); } task main() { r_angled = 86; Wait(200); down_pen(); OnFwd(OUT_A); OnRev(OUT_C);//start 1st stroke Wait(60); Off(OUT_A+OUT_C);//finish 1st stroke up_pen(); OnFwd(OUT_C); OnRev(OUT_A); Wait(142); Off(OUT_C); OnRev(OUT_A+OUT_C); Wait(20); Off(OUT_A+OUT_C); OnFwd(OUT_A); OnRev(OUT_C); Wait(r_angled); Off(OUT_A+OUT_C); OnRev(OUT_A+OUT_C); Wait(15); Off(OUT_A+OUT_C); down_pen(); OnFwd(OUT_A+OUT_C);//start 2nd stroke Wait(70); Off(OUT_A+OUT_C);//finish 2nd stroke up_pen(); OnFwd(OUT_A+OUT_C); Wait(0); Off(OUT_A+OUT_C); OnFwd(OUT_A); OnRev(OUT_C); Wait(r_angled); Off(OUT_A+OUT_C); OnRev(OUT_A+OUT_C); Wait(40); Off(OUT_A+OUT_C); down_pen(); OnFwd(OUT_A+OUT_C);//start 3rd stroke Wait(30); Off(OUT_A+OUT_C);//finish 3rd stroke up_pen(); OnFwd(OUT_A+OUT_C); Wait(30); Off(OUT_A+OUT_C); OnFwd(OUT_C); OnRev(OUT_A); Wait(r_angled); Off(OUT_A+OUT_C); OnRev(OUT_A+OUT_C); Wait(65); Off(OUT_A+OUT_C); down_pen(); OnFwd(OUT_A+OUT_C);//start 4th stroke(1) Wait(50); Off(OUT_A+OUT_C);//finish 4th stroke(1) up_pen(); OnFwd(OUT_A+OUT_C); Wait(65); Off(OUT_A+OUT_C); OnFwd(OUT_A); OnRev(OUT_C); Wait(92); Off(OUT_A+OUT_C); OnRev(OUT_A+OUT_C); Wait(55); Off(OUT_A+OUT_C); down_pen(); OnFwd(OUT_A+OUT_C);//start 4th stroke(2) Wait(30); Off(OUT_A+OUT_C);//start 4th stroke(2) up_pen(); OnFwd(OUT_A+OUT_C); Wait(65); Off(OUT_A+OUT_C); OnFwd(OUT_A); OnRev(OUT_C); Wait(85); Off(OUT_A+OUT_C); OnRev(OUT_A+OUT_C); Wait(20); Off(OUT_A+OUT_C); down_pen(); OnRev(OUT_A+OUT_C);//start 5th stroke Wait(35); Off(OUT_A+OUT_C);//finish 5th stroke }
//作成者:SAS //作成日時:11/11
int r_angled ; int adjust ; sub up_pen() { SetPower(OUT_B,0); OnFwd(OUT_B); Wait(20); Off(OUT_B); } sub down_pen() { SetPower(OUT_B,0); OnRev(OUT_B); Wait(20); Off(OUT_B); } #define first_stroke down_pen();OnFwd(OUT_A);OnRev(OUT_C);Wait(60);Off(OUT_A+OUT_C);up_pen(); OnFwd(OUT_C);OnRev(OUT_A);Wait(142);Off(OUT_C); #define second_stroke down_pen();OnFwd(OUT_A+OUT_C);Wait(70);Off(OUT_A+OUT_C);up_pen(); #define third_stroke down_pen();OnFwd(OUT_A+OUT_C);Wait(30);Off(OUT_A+OUT_C);up_pen(); #define fourth_stroke_one down_pen();OnFwd(OUT_A+OUT_C);Wait(50);Off(OUT_A+OUT_C);up_pen(); #define fourth_stroke_two down_pen();OnFwd(OUT_A+OUT_C);Wait(30);Off(OUT_A+OUT_C);up_pen(); #define fifth_stroke down_pen();OnRev(OUT_A+OUT_C);Wait(35);Off(OUT_A+OUT_C);up_pen(); #define go_st OnFwd(OUT_A+OUT_C);Wait(adjust);Off(OUT_A+OUT_C); #define go_back OnRev(OUT_A+OUT_C);Wait(adjust);Off(OUT_A+OUT_C); #define turn_r_r OnFwd(OUT_A);OnRev(OUT_C);Wait(r_angled);Off(OUT_A+OUT_C); #define turn_l_r OnFwd(OUT_C);OnRev(OUT_A);Wait(r_angled);Off(OUT_A+OUT_C); task main() { r_angled = 86; adjust = 20; Wait(200); first_stroke; go_back; turn_r_r; adjust -= 5 ;//15 go_back; second_stroke; adjust -= 15 ;//0 go_st; turn_r_r; adjust += 40 ;//40 go_back; third_stroke; adjust -= 10 ;//30 go_st; turn_l_r; adjust += 35 ;//65 go_back; fourth_stroke_one; go_st; r_angled = r_angled + 6 ; turn_r_r; adjust -= 10 ;//55 go_back; fourth_stroke_two; adjust += 10 ;//65 go_st; turn_r_r; adjust -= 45 ;//20 go_back; fifth_stroke; }
&ref(): File not found: "課題1 ペンを持つ 囲み\'.JPG" at page "2005/A5/課題1右 SASver.";
ロボットについてコメントをどうぞ
後から考えるとプログラム・ロボット双方に改善の余地はまだまだあるが、とりあえずは『右』という文字がちゃんと書けて良かったと思う。