- 追加された行はこの色です。
- 削除された行はこの色です。
[[2006b/A1/課題1右]]
#contents
*『田』を書くプログラム。 [#be873279]
#define DOWN OnFwd(OUT_B);Wait(40);Off(OUT_B);//筆を下ろす作業。
#define B_WAIT Wait(50);止まる時間。
#define UP OnRev(OUT_B);Wait(40);Off(OUT_B);筆を上げる作業。
#define RUN_YOKO OnFwd(OUT_A+OUT_C);Wait(100);Off(OUT_A+OUT_C);横に進む動作。
#define RUN_TATE OnFwd(OUT_A+OUT_C);Wait(80);Off(OUT_A+OUT_C);縦に進む動作。
task main()
{ /*一画目『田』の「|」の部分を書く。*/
DOWN
B_WAIT
RUN_TATE
UP
/*一画目〜二画目への移動。*/
OnRev(OUT_A+OUT_C);
Wait(146);
Off(OUT_A+OUT_C);
OnFwd(OUT_C);
OnRev(OUT_A);
Wait(85);
Off(OUT_A+OUT_C);
OnFwd(OUT_A+OUT_C);
Wait(66);
Off(OUT_A+OUT_C);
Wait(100);
/*二画目『田』の「?」の部分を書く。*/
DOWN
B_WAIT
RUN_YOKO
UP
OnRev(OUT_A+OUT_C);
Wait(66);
OnFwd(OUT_A);
OnRev(OUT_C);
Wait(90);
Off(OUT_A+OUT_C);
OnFwd(OUT_A+OUT_C);
Wait(66);
Off(OUT_A+OUT_C);
Wait(100);
DOWN
B_WAIT
RUN_TATE
UP
/*二画目〜三画目への移動。*/
OnFwd(OUT_A);
OnRev(OUT_C);
Wait(85);
OnFwd(OUT_A+OUT_C);
Wait(40);
Off(OUT_A+OUT_C);
Wait(100);
OnFwd(OUT_C);
OnRev(OUT_A);
Wait(90);
Off(OUT_A+OUT_C);
Wait(100);
OnRev(OUT_A+OUT_C);
Wait(66);
Off(OUT_A+OUT_C);
Wait(100);
/*三画目『田』の真ん中にある、「|」の部分を書く。*/
DOWN
B_WAIT
RUN_TATE
UP
/*三画目〜四画目への移動。*/
OnRev(OUT_A+OUT_C);
Wait(105);
Off(OUT_A+OUT_C);
OnRev(OUT_A);
OnFwd(OUT_C);
Wait(95);
Off(OUT_A+OUT_C);
OnFwd(OUT_A+OUT_C);
Wait(20);
Off(OUT_A+OUT_C);
Wait(20);
/*四画目『田』の真ん中の「―」の部分を書く。*/
DOWN
B_WAIT
RUN_YOKO
UP
/*四画目〜五画目への移動。*/
OnRev(OUT_A+OUT_C);Wait(100);Off(OUT_A+OUT_C);
OnFwd(OUT_A);
OnRev(OUT_C);
Wait(85);
Off(OUT_A+OUT_C);
OnFwd(OUT_A+OUT_C);
Wait(45);
Off(OUT_A+OUT_C);
OnRev(OUT_A);
OnFwd(OUT_C);
Wait(85);
Off(OUT_A+OUT_C);
Wait(100);
/*五画目『田』の下にある「―」の部分を書く。*/
DOWN
B_WAIT
RUN_YOKO
UP
}
おしまい。
/*おしまい。*/
*感想 [#lcffd938]
-難しかった点。
最初、「田」という字は、曲線がないから、簡単に書けるかと思っていたが、案外、「田」の中の「十」の位置を合わせたり、書き初めの部分を見つける事が難しかった。
また、書いている場所(絨毯の上や、畳の上、机の上)により、抵抗が違うため、毎回完成した字が異なってしまったので、時間を設定する事に苦労しました。
-工夫した点。
プログラムの始めに、筆の上げ下げと縦横に進む距離を指定したので、かなりプログラムを短くする事に成功しました。(それでも十分多いですが……)
それと、それぞれの動きの間に、Waitを入れる事によって、ゆとりを取り入れる事が出来ました。
-改良すれば良かった点。
今回のプログラムでは、次の書き初めの場所に行く際に、簡単な方がいいと思い、全て90°曲げて、移動させていました。
だけれど、全てそのように設定するのでなく、次の書き初めまでの角度を計算して、回転する秒数を考えれば、もう少し、プログラムを簡単に出来たと考察できる。
*コメント [#x0e042d4]
なにか感想や、アドバイスがあったらお願いします。
#comment