- 追加された行はこの色です。
- 削除された行はこの色です。
[[2006a/C2/課題1右/program]]
*第2プログラム [#d8b3c01d]
もう一つのプログラムとして、メインのマシンとは全く違うシステムを用いたマシンによる木の記述プログラムを作成しました。
メインのプログラムとは似ているようで違います。
#define FF OUT_A+OUT_C //前進・後進のためのモーター
#define BASETIME 170 //「木」の1・2画目の長さ等の基本的長さ。
#define WHOLETIME 382 //360度回転
#define HALFTIME 191 //180度回転
#define QUARTERTIME 96 //90度回転
#define DQUARTERTIME 48 //45度回転
task main()
{
OnFwd(FF); //1(=1画目)
Wait(BASETIME);
Off(FF);
//age
Wait(100);
OnFwd(OUT_B);
Wait(20);
Off(OUT_B);
Wait(100);
OnRev(FF); //2(=中心部へ戻る)
Wait(85);
Off(FF);
Wait(100);
OnFwd(FF); //3(=マシンを縦方向へ回転)
Rev(OUT_A);
Wait(QUARTERTIME);
Off(FF);
Wait(100);
OnFwd(FF); //4(=2画目書き始めの場所への移動)
Wait(28);
Off(FF);
//sage
Wait(100);
OnRev(OUT_B);
Wait(20);
Off(OUT_B);
Wait(100);
OnRev(FF); //5(=2画目)
Wait(BASETIME);
Off(FF);
//age
Wait(100);
OnFwd(OUT_B);
Wait(20);
Off(OUT_B);
Wait(100);
OnFwd(FF); //6(=再び中心へ戻る)
Wait(143);
Off(FF);
Wait(100);
OnFwd(FF); //7(=3画目記述のためのマシンの回転)
Rev(OUT_C);
Wait(DQUARTERTIME);
Off(FF);
//sage
Wait(100);
OnRev(OUT_B);
Wait(20);
Off(OUT_B);
Wait(100);
OnRev(FF); //8(=3画目)
Wait(BASETIME);
Off(FF);
//age
Wait(100);
OnFwd(OUT_B);
Wait(20);
Off(OUT_B);
Wait(100);
OnFwd(FF); //9(=元の中心へ戻る)
Wait(BASETIME);
Off(FF);
Wait(100);
OnFwd(FF); //10(=4画目記述のための回転)
Rev(OUT_A);
Wait(90);
Off(FF);
//sage
Wait(100);
OnRev(OUT_B);
Wait(20);
Off(OUT_B);
Wait(100);
OnRev(FF); //11(=4画目)
Wait(137);
Off(FF);
//age
Wait(100);
OnFwd(OUT_B);
Wait(20);
Off(OUT_B);
//FINISHED
}
*苦労した点など [#ea064820]