2005/B4

課題5(音に合わせて指揮、ダンスをするプログラム)

//課題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

//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;
	}
	}
	}
  • コメントは前のプログラム参照
    指揮


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-02-04 (土) 13:07:07