[[2005/MemberOnly/進行状況B]]
持ち上げプログラム
int A;
int B;

task main()
{
    SetSensor (SENSOR_1, SENSOR_LIGHT);
    ClearMessage() ;
    
    until (Message() != 0);
    if ( Message() == 31 )         //一つ目の箱を上げる
{
    OnFwd(OUT_A+OUT_C);Wait(80);
    Off(OUT_A+OUT_C); 
    if ( SENSOR_1 < 45 )
    {
    	A = 1 ;
    	PlaySound(SOUND_DOUBLE_BEEP) ;
    }
    if ((SENSOR_1 >= 45) &&  (SENSOR_1 < 52))
    {
        A = 2 ;
        PlaySound(SOUND_DOWN); Wait(100);
    }
    if(SENSOR_1 >= 52)
    {
        A = 3 ;
        PlaySound(SOUND_FAST_UP) ;
    }  
    
    OnFwd( OUT_A + OUT_C );Wait(100);
    Off( OUT_A + OUT_C );
    OnRev( OUT_A );
    Wait(70);
    Off( OUT_A );

    SendMessage(32);Wait(200);
}
    
    if ( Message() == 33 )         //2つ目の箱を上げる
{PlaySound(SOUND_FAST_UP);Wait(200);
    OnFwd(OUT_A+OUT_C);
    Wait(130);
    Off(OUT_A+OUT_C);
    if ( SENSOR_1 < 45 )
    {
    	B = 1 ;
    	PlaySound(SOUND_DOUBLE_BEEP) ;Wait(100);
    }
    if ((SENSOR_1>=45) &&  (SENSOR_1< 52))
    {
        B = 2 ;
        PlaySound(SOUND_DOWN); Wait(100);
    }
    if(SENSOR_1>=52)
    {
        B = 3 ;
        PlaySound(SOUND_FAST_UP) ; Wait(100);
     }

    SendMessage(34);Wait(200);
}
    until(Message() ==10 )      //2つの箱の色のパターンによって送るメッセージを変える
     
     if (A ==  2 && B == 3)
     {
     PlaySound(SOUND_CLICK) ;
     SendMessage(1);Wait(200);
     }
     
     if (A == 2 && B == 1)            
     {
     PlaySound(SOUND_CLICK) ;
     SendMessage(2);Wait(200);
     }
     
     if (A == 3 && B == 1)
     {
     PlaySound(SOUND_CLICK) ;
     SendMessage(3);Wait(200);
     }
     
     if (A == 3 && B == 2)
     {
     PlaySound(SOUND_CLICK) ;
     SendMessage(4);Wait(200);
     }
     
     if (A ==  1 && B == 2) 
     {
     PlaySound(SOUND_CLICK) ;
     SendMessage(5);Wait(200);
     }
     
     if (A ==  1 && B == 3)
     {
     PlaySound(SOUND_CLICK) ;
     SendMessage(6);Wait(200);
     }
     
     
    if (Message() ==3 )         //箱を落とす
    {
    PlaySound(SOUND_DOWN) ;
    OnRev(OUT_A+OUT_C);               
    Wait(70);
    Off(OUT_A+OUT_C);
    OnFwd(OUT_A);
    Wait(70);
    Off(OUT_A);
    SendMessage(21 );Wait(200);
    }
}


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