- 追加された行はこの色です。
- 削除された行はこの色です。
[[2005/B1]]
*練習問題1 [#hed12ed1]
-書道ロボット
#define MOVE_TIME 2
#define MATE
#define taiya OUT_A+OUT_C
#define a OUT_A
#define c OUT_C
#define b OUT_B
task main()
{OnFwd(OUT_B);
Wait(150); //ペン上げ
OnFwd(OUT_A);
OnFwd(OUT_C);
repeat(50){
Wait(MOVE_TIME);
Off(OUT_A);
Wait(MATE);
OnFwd(OUT_A);} //1画目終わり
Off(OUT_A+OUT_B+OUT_C);
OnRev(OUT_B);
Wait(100);
Off(OUT_B); //ペン上げ
OnFwd(OUT_A);
Wait(MOVE_TIME*50-MATE*50);
Off(OUT_A+OUT_C);
OnFwd(taiya);
Wait(20);
Off(taiya);
OnRev(OUT_C);
Wait(240);
Off(OUT_C);
OnFwd(OUT_A+OUT_C);
Off(taiya);
OnRev(taiya);
Wait(30);
Off(taiya); //2画目の位置
OnFwd(OUT_B);
Wait(150);
OnFwd(OUT_A+OUT_B+OUT_C);
Wait(130);
Off(taiya); //2画目終わり
OnRev(OUT_B);
Wait(100);
Off(OUT_B);
OnFwd(OUT_C);
OnRev(OUT_A);
Wait(250);
OnFwd(taiya);
Wait(10);
Off(taiya);
OnFwd(OUT_A);
OnRev(OUT_C);
Wait(127);
Off(OUT_C);
OnRev(taiya);
Wait(40);
Off(taiya);
OnFwd(OUT_B); //3画目の位置
Wait(150);
OnFwd(taiya);
Wait(60);
Off(taiya);
OnRev(OUT_B);
Wait(100);
Off(OUT_B); //3画目終わり
OnFwd(taiya);
Wait(25);
OnFwd(OUT_A);
OnRev(OUT_C);
Wait(125);
OnRev(taiya);
Wait(87);
Off(taiya); //4画目の位置
OnFwd(OUT_B);
Wait(150);
OnFwd(taiya);
Wait(80);
//4画目の角
repeat(15){
OnFwd(c);
OnRev(a);
Wait(1);
Off(c);
OnRev(a);
Wait(1);
Off(a+c);
OnFwd(a+c);
Wait(1);
Off(OUT_A+OUT_C);
}
repeat(10){
OnFwd(c);
OnRev(a);
Wait(1);
Off(a);
OnFwd(c);
Wait(1);
Off(a+c);
}
OnRev(OUT_B);
Wait(100); //4画目の終わり
Off(OUT_B);
repeat(10){
OnRev(c);
OnFwd(a);
Wait(1);
Off(a);
OnRev(c);
Wait(1);
Off(a+c);
}
repeat(15){
OnRev(c);
OnFwd(a);
Wait(1);
Off(c);
OnFwd(a);
Wait(1);
Off(a+c);
OnRev(a+c);
Wait(1);
Off(OUT_A+OUT_C);
}
OnRev(taiya);
Wait(80);
Off(taiya);
OnRev(a);
Wait(243);
OnFwd(taiya);
Wait(59);
Off(taiya);
OnFwd(a);
Wait(243); //5画目の位置
Off(taiya);
OnFwd(taiya);
Wait(10);
Off(taiya);
OnFwd(b);
Wait(150);
OnFwd(taiya);
Wait(83);
Off(a+b+c);
OnRev(b);
Wait(100);
Off(b);}
-長くてすみません。ロボットの構造がタイヤの中心よりもペンが前に出ていたのでいろいろ微調整が大変でした。
-自分ながら「4画目の角」からの直線をアレンジしてみました。結果は、うねうねの直線(?)になってしまいました。
-ロボットの工夫は、キャタピラだとキャタピラのでこぼこの位置によって微少にずれが生じてしまうと思ったのでタイヤにしました。また、4輪にすると回転しにくいとおもったので3輪車にしました。
-関数やサブルーチンを使ってもう少しプログラムを整理してみよう。 -- [[まいける(TA)]] &new{2005-12-02 (金) 17:00:30};
#comment
*練習問題5 [#jc0789da]
-曲ロボット
#define Do 523
#define Re 587
#define Mi 659
#define Fa 698
#define Fa1 740
#define Sol 784
#define Ra 880
#define Si 988
#define Doo 1047
#define Ree 1175
#define oto PlayTone
#define mate Wait
#define sibu 40
#define juuroku 20
#define nibu 80
#define zen 160
#define renzoku 7
task play_music()
{
while (true)
{
oto(Ra,juuroku);Wait(juuroku); //え
oto(Si,juuroku);Wait(juuroku); //が
oto(Ra,juuroku);mate(juuroku); //お
oto(Sol,juuroku);mate(juuroku+renzoku*2); //さ
oto(Sol,nibu+sibu-renzoku*2);mate(nibu+sibu-renzoku*2);//くー
oto(Si,sibu);mate(sibu); //ふー
oto(Ree,sibu+juuroku);mate(sibu+juuroku); //たー
oto(Fa1,juuroku);mate(juuroku+renzoku); //ぁ
oto(Fa1,nibu-renzoku);mate(nibu-renzoku); //りー
oto(Sol,nibu+juuroku);mate(nibu+juuroku+renzoku); //しー
oto(Sol,juuroku-renzoku);mate(juuroku-renzoku); //あ
oto(Fa1,juuroku);mate(juuroku); //わ
oto(Sol,juuroku);mate(juuroku); //せ
oto(Si,sibu+juuroku);mate(sibu+juuroku); //のー
oto(Re,juuroku);mate(juuroku+renzoku); //そ
oto(Re,nibu);mate(nibu); //らー
mate(sibu-renzoku);
oto(Mi,sibu);mate(sibu); //も
oto(Sol,sibu);mate(sibu); //し
oto(Fa1,juuroku);mate(juuroku); //あ
oto(Sol,juuroku);mate(juuroku); //の
oto(Ra,juuroku);mate(juuroku); //む
oto(Re,juuroku);mate(juuroku); //こ
oto(Si,sibu+juuroku);mate(sibu+juuroku); //お
oto(Fa1,juuroku);mate(juuroku); //ぉ
oto(Sol,sibu+renzoku);mate(sibu+renzoku); //に
mate(juuroku-renzoku);
oto(Do,juuroku);mate(juuroku+renzoku); //み
oto(Do,sibu-renzoku);mate(sibu-renzoku); //え
oto(Re,sibu);mate(sibu); //る
oto(Mi,sibu);mate(sibu); //も
oto(Sol,juuroku-renzoku/2);mate(juuroku+renzoku/2); //の
oto(Sol,juuroku-renzoku/2);mate(juuroku-renzoku/2); //が
oto(Fa1,juuroku);mate(juuroku); //あ
oto(Sol,juuroku);mate(juuroku); //る
oto(Ra,juuroku-renzoku/2);mate(juuroku+renzoku/2); //な
oto(Ra,juuroku-renzoku);mate(juuroku-renzoku/2); //ら
oto(Ra,juuroku);Wait(juuroku); //あ
oto(Si,juuroku);Wait(juuroku); //い
oto(Ra,juuroku);mate(juuroku); //し
oto(Sol,juuroku);mate(juuroku+renzoku*2); //あ
oto(Sol,nibu+sibu-renzoku*2);mate(nibu+sibu-renzoku*2);//うー
oto(Si,sibu);mate(sibu); //ふー
oto(Ree,sibu+juuroku);mate(sibu+juuroku); //たー
oto(Fa1,juuroku);mate(juuroku+renzoku); //ぁ
oto(Fa1,nibu-renzoku);mate(nibu-renzoku); //りー
oto(Sol,nibu+juuroku);mate(nibu+juuroku+renzoku); //いー
oto(Sol,juuroku-renzoku);mate(juuroku-renzoku); //つ
oto(Fa1,juuroku);mate(juuroku); //の
oto(Sol,juuroku);mate(juuroku); //と
oto(Si,sibu+juuroku);mate(sibu+juuroku); //きー
oto(Re,juuroku);mate(juuroku+renzoku); //ぃ
oto(Re,nibu);mate(nibu); //もー
mate(sibu-renzoku);
oto(Mi,sibu);mate(sibu); //と
oto(Sol,sibu);mate(sibu); //な
oto(Fa1,juuroku);mate(juuroku); //り
oto(Sol,juuroku);mate(juuroku); //ど
oto(Ra,juuroku);mate(juuroku); //お
oto(Re,juuroku);mate(juuroku); //し
oto(Si,sibu);mate(sibu); //あ
oto(Doo,sibu);mate(sibu); //な
oto(Si,sibu);mate(sibu); //た
oto(Ra,sibu);mate(sibu); //と
oto(Mi,sibu);mate(sibu); //あー
oto(Fa1,juuroku);mate(juuroku); //た
oto(Sol,juuroku);mate(juuroku); //し
oto(Fa1,juuroku);mate(juuroku); //さ
oto(Sol,juuroku);mate(juuroku); //く
oto(Ra,juuroku);mate(juuroku); //ら
oto(Fa1,juuroku);mate(juuroku); //ん
oto(Sol,zen);mate(zen); //ぼー
mate(zen);
}}
task main()
{start play_music;}
#comment