[[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(最初に踊る)
 // 
 //
  #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;
 	}
 	}
 	}


-コメントは前のプログラム参照
#ref(2005/B4/課題5/060113_1711~02.jpg,指揮)
#comment


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS