- 追加された行はこの色です。
- 削除された行はこの色です。
[[2005/B4]]
#contents
* 課題5(音に合わせて指揮、ダンスをするプログラム) [#w2752b9e]
//課題5(最初に指揮をする側)
//
//
#define Do 523
#define Do_s 554
#define Re 587
#define Re_s 622
#define Mi 659
#define Fa 698
#define Fa_s 740
#define Sol 784
#define Sol_s 831
#define La 880
#define La_s 932
#define Si 988
#define Do_up 1047
#define Re_up 1175
task Move(){//ダンスのタスク
ClearMessage();//次に受信するためにメッセージクリア
while(Message()==0){//音楽がおわるまで踊り続ける
OnFwd(OUT_A);
OnRev(OUT_C);
Wait(120);
OnFwd(OUT_C);
OnRev(OUT_A);
Wait(120);
OnFwd(OUT_C);
OnRev(OUT_A);
Wait(120);
OnFwd(OUT_A);
OnRev(OUT_C);
Wait(120);
}
SendMessage(1);//相手が踊るように送信
}
task play_music(){//音を鳴らしながら指揮をするタスク
while(true){//音楽は大塚愛の「さくらんぼ」
ClearMessage();//メッセージクリア
PlayTone(La,15);OnFwd(OUT_B);Wait(20);//指揮と音
PlayTone(Si,15);OnRev(OUT_B);Wait(20);
PlayTone(La,15);OnFwd(OUT_B);Wait(20);
PlayTone(Sol,15);OnRev(OUT_B);Wait(20);
PlayTone(Sol,50);OnFwd(OUT_B);Wait(60);
PlayTone(Si,25);OnRev(OUT_B);Wait(30);
PlayTone(Re_up,25);OnFwd(OUT_B);Wait(30);
PlayTone(Fa_s,15);OnRev(OUT_B);Wait(20);
PlayTone(Fa_s,50);OnFwd(OUT_B);Wait(55);
PlayTone(Sol,50);OnRev(OUT_B);Wait(55);
OnFwd(OUT_B);Wait(15);
PlayTone(Sol,15);OnRev(OUT_B);Wait(20);
PlayTone(Fa_s,15);OnFwd(OUT_B);Wait(20);
PlayTone(Sol,15);OnRev(OUT_B);Wait(20);
PlayTone(Si,25);OnFwd(OUT_B);Wait(30);
PlayTone(Re,15);OnRev(OUT_B);Wait(20);
PlayTone(Re,50);OnFwd(OUT_B);Wait(55);
PlayTone(Mi,25);OnRev(OUT_B);Wait(30);
PlayTone(Sol,25);OnFwd(OUT_B);Wait(30);
PlayTone(Fa_s,15);OnRev(OUT_B);Wait(20);
PlayTone(Sol,15);OnFwd(OUT_B);Wait(20);
PlayTone(La,15);OnRev(OUT_B);Wait(20);
PlayTone(Re,15);OnFwd(OUT_B);Wait(20);
PlayTone(Si,25);OnRev(OUT_B);Wait(30);
PlayTone(Fa_s,15);OnFwd(OUT_B);Wait(20);
PlayTone(Sol,25);OnRev(OUT_B);Wait(30);
PlayTone(Re,15);OnFwd(OUT_B);Wait(20);
PlayTone(Do,25);OnRev(OUT_B);Wait(30);
PlayTone(Re,25);OnFwd(OUT_B);Wait(30);
PlayTone(Mi,25);OnRev(OUT_B);Wait(30);
PlayTone(Sol,15);OnFwd(OUT_B);Wait(20);
PlayTone(Sol,15);OnRev(OUT_B);Wait(20);
PlayTone(Fa_s,15);OnFwd(OUT_B);Wait(20);
PlayTone(Sol,15);OnRev(OUT_B);Wait(20);
PlayTone(La,15);OnFwd(OUT_B);Wait(20);
PlayTone(La,15);OnRev(OUT_B);Wait(20);
PlayTone(La,15);OnFwd(OUT_B);Wait(20);
PlayTone(Si,15);OnRev(OUT_B);Wait(20);
PlayTone(La,15);OnFwd(OUT_B);Wait(20);
PlayTone(Sol,15);OnRev(OUT_B);Wait(20);
PlayTone(Sol,50);OnFwd(OUT_B);Wait(55);
PlayTone(Si,15);OnRev(OUT_B);Wait(20);
PlayTone(Re_up,25);OnFwd(OUT_B);Wait(30);
PlayTone(Fa_s,15);OnRev(OUT_B);Wait(20);
PlayTone(Fa_s,50);OnFwd(OUT_B);Wait(55);
PlayTone(Sol,50);OnRev(OUT_B);Wait(55);
OnFwd(OUT_B);Wait(15);
PlayTone(Sol,15);OnRev(OUT_B);Wait(20);
PlayTone(Fa_s,15);OnFwd(OUT_B);Wait(20);
PlayTone(Sol,15);OnRev(OUT_B);Wait(20);
PlayTone(Si,25);OnFwd(OUT_B);Wait(30);
PlayTone(Re,15);OnRev(OUT_B);Wait(20);
PlayTone(Re,50);OnFwd(OUT_B);Wait(55);
PlayTone(Mi,25);OnRev(OUT_B);Wait(30);
PlayTone(Sol,25);OnFwd(OUT_B);Wait(30);
PlayTone(Fa_s,15);OnRev(OUT_B);Wait(20);
PlayTone(Sol,15);OnFwd(OUT_B);Wait(20);
PlayTone(La,15);OnRev(OUT_B);Wait(20);
PlayTone(Re,15);OnFwd(OUT_B);Wait(20);
PlayTone(Si,25);OnRev(OUT_B);Wait(30);
PlayTone(Do_up,25);OnFwd(OUT_B);Wait(30);
PlayTone(Si,25);OnRev(OUT_B);Wait(30);
PlayTone(La,25);OnFwd(OUT_B);Wait(30);
PlayTone(Mi,25);OnRev(OUT_B);Wait(30);
PlayTone(Sol,15);OnFwd(OUT_B);Wait(20);
PlayTone(Sol,15);OnRev(OUT_B);Wait(20);
PlayTone(Fa_s,15);OnFwd(OUT_B);Wait(20);
PlayTone(Sol,15);OnRev(OUT_B);Wait(20);
PlayTone(La,15);OnFwd(OUT_B);Wait(20);
PlayTone(Fa_s,15);OnRev(OUT_B);Wait(20);
PlayTone(Sol,25);OnFwd(OUT_B);Wait(30);
Off(OUT_B);Wait(25);
ClearTimer(0);
while(Timer(0)<=50){SendMessage(2);}
break;
}
}
task main(){
SendMessage(1);//最初に相手を踊らすためにSend
start play_music;//音楽スタート
while(true){//交代しながら永久に動く
until(Message()!=0);//メッセージがくるまで待つ
if(Message()==1){//1なら踊る
start Move;}
if(Message()==2){//2なら指揮
start play_music;
}
}
}
-音符の入力が疲れた。
-音を鳴らしながらモーターを動かせたのでそこはやりやすかった。
-交代の部分が難しかった。
* 課題5-2 [#vdc37db2]
//Sound_kadai5_2(最初に踊る)
// 作成者 やらー&すなお&satoshi
//
#define Do 523
#define Do_s 554
#define Re 587
#define Re_s 622
#define Mi 659
#define Fa 698
#define Fa_s 740
#define Sol 784
#define Sol_s 831
#define La 880
#define La_s 932
#define Si 988
#define Do_up 1047
#define Re_up 1175
task Move(){
ClearMessage();
while(Message()==0){
OnFwd(OUT_A);
OnRev(OUT_C);
Wait(120);
OnFwd(OUT_C);
OnRev(OUT_A);
Wait(120);
OnFwd(OUT_C);
OnRev(OUT_A);
Wait(120);
OnFwd(OUT_A);
OnRev(OUT_C);
Wait(120);
}
SendMessage(1);
}
task play_music(){
while(true){
PlayTone(La,15);OnFwd(OUT_B);Wait(20);
PlayTone(Si,15);OnRev(OUT_B);Wait(20);
PlayTone(La,15);OnFwd(OUT_B);Wait(20);
PlayTone(Sol,15);OnRev(OUT_B);Wait(20);
PlayTone(Sol,50);OnFwd(OUT_B);Wait(60);
PlayTone(Si,25);OnRev(OUT_B);Wait(30);
PlayTone(Re_up,25);OnFwd(OUT_B);Wait(30);
PlayTone(Fa_s,15);OnRev(OUT_B);Wait(20);
PlayTone(Fa_s,50);OnFwd(OUT_B);Wait(55);
PlayTone(Sol,50);OnRev(OUT_B);Wait(55);
OnFwd(OUT_B);Wait(15);
PlayTone(Sol,15);OnRev(OUT_B);Wait(20);
PlayTone(Fa_s,15);OnFwd(OUT_B);Wait(20);
PlayTone(Sol,15);OnRev(OUT_B);Wait(20);
PlayTone(Si,25);OnFwd(OUT_B);Wait(30);
PlayTone(Re,15);OnRev(OUT_B);Wait(20);
PlayTone(Re,50);OnFwd(OUT_B);Wait(55);
PlayTone(Mi,25);OnRev(OUT_B);Wait(30);
PlayTone(Sol,25);OnFwd(OUT_B);Wait(30);
PlayTone(Fa_s,15);OnRev(OUT_B);Wait(20);
PlayTone(Sol,15);OnFwd(OUT_B);Wait(20);
PlayTone(La,15);OnRev(OUT_B);Wait(20);
PlayTone(Re,15);OnFwd(OUT_B);Wait(20);
PlayTone(Si,25);OnRev(OUT_B);Wait(30);
PlayTone(Fa_s,15);OnFwd(OUT_B);Wait(20);
PlayTone(Sol,25);OnRev(OUT_B);Wait(30);
PlayTone(Re,15);OnFwd(OUT_B);Wait(20);
PlayTone(Do,25);OnRev(OUT_B);Wait(30);
PlayTone(Re,25);OnFwd(OUT_B);Wait(30);
PlayTone(Mi,25);OnRev(OUT_B);Wait(30);
PlayTone(Sol,15);OnFwd(OUT_B);Wait(20);
PlayTone(Sol,15);OnRev(OUT_B);Wait(20);
PlayTone(Fa_s,15);OnFwd(OUT_B);Wait(20);
PlayTone(Sol,15);OnRev(OUT_B);Wait(20);
PlayTone(La,15);OnFwd(OUT_B);Wait(20);
PlayTone(La,15);OnRev(OUT_B);Wait(20);
PlayTone(La,15);OnFwd(OUT_B);Wait(20);
PlayTone(Si,15);OnRev(OUT_B);Wait(20);
PlayTone(La,15);OnFwd(OUT_B);Wait(20);
PlayTone(Sol,15);OnRev(OUT_B);Wait(20);
PlayTone(Sol,50);OnFwd(OUT_B);Wait(55);
PlayTone(Si,15);OnRev(OUT_B);Wait(20);
PlayTone(Re_up,25);OnFwd(OUT_B);Wait(30);
PlayTone(Fa_s,15);OnRev(OUT_B);Wait(20);
PlayTone(Fa_s,50);OnFwd(OUT_B);Wait(55);
PlayTone(Sol,50);OnRev(OUT_B);Wait(55);
OnFwd(OUT_B);Wait(15);
PlayTone(Sol,15);OnRev(OUT_B);Wait(20);
PlayTone(Fa_s,15);OnFwd(OUT_B);Wait(20);
PlayTone(Sol,15);OnRev(OUT_B);Wait(20);
PlayTone(Si,25);OnFwd(OUT_B);Wait(30);
PlayTone(Re,15);OnRev(OUT_B);Wait(20);
PlayTone(Re,50);OnFwd(OUT_B);Wait(55);
PlayTone(Mi,25);OnRev(OUT_B);Wait(30);
PlayTone(Sol,25);OnFwd(OUT_B);Wait(30);
PlayTone(Fa_s,15);OnRev(OUT_B);Wait(20);
PlayTone(Sol,15);OnFwd(OUT_B);Wait(20);
PlayTone(La,15);OnRev(OUT_B);Wait(20);
PlayTone(Re,15);OnFwd(OUT_B);Wait(20);
PlayTone(Si,25);OnRev(OUT_B);Wait(30);
PlayTone(Do_up,25);OnFwd(OUT_B);Wait(30);
PlayTone(Si,25);OnRev(OUT_B);Wait(30);
PlayTone(La,25);OnFwd(OUT_B);Wait(30);
PlayTone(Mi,25);OnRev(OUT_B);Wait(30);
PlayTone(Sol,15);OnFwd(OUT_B);Wait(20);
PlayTone(Sol,15);OnRev(OUT_B);Wait(20);
PlayTone(Fa_s,15);OnFwd(OUT_B);Wait(20);
PlayTone(Sol,15);OnRev(OUT_B);Wait(20);
PlayTone(La,15);OnFwd(OUT_B);Wait(20);
PlayTone(Fa_s,15);OnRev(OUT_B);Wait(20);
PlayTone(Sol,25);OnFwd(OUT_B);Wait(30);
Off(OUT_B);Wait(25);
ClearTimer(0);
while(Timer(0)<=50){SendMessage(2);}
break;
}
}
task main(){
while(true){
until(Message()!=0);
if(Message()==1){
start Move;}
if(Message()==2){
start play_music;
}
}
}
-コメントは前のプログラム参照
#comment