[[2005/B2/わたるのノート]]
 #define black_green 40
 #define green_white 50
 int first_box ;
 int second_box ;
   int A;
     int B;
 
 task main()
 { 
    ClearMessage();
    until (Message() != 0);
     SetSensor (SENSOR_1, SENSOR_LIGHT);
    
    if ( Message() ==31 )         //up
    {
    OnFwd(OUT_A+OUT_C);Wait(70);
    Off(OUT_A+OUT_C); Wait(20);
    if ( SENSOR_1 < 45 )
    {
    	A = 1;
    }
    if ((SENSOR_1>=45) &&  (SENSOR_1< 52))
    {
       A = 2;PlaySound(SOUND_LOW_BEEP); Wait(100);
    }
    if(SENSOR_1>=52)
    {
      A = 3;
     }  
     
    OnFwd(OUT_A+OUT_C);Wait(50);
    Off(OUT_A+OUT_C);
    OnRev(OUT_A);
    Wait(70);
    Off(OUT_A);
 
    SendMessage(32);Wait(200);
    }
    
    if ( Message() ==33 )         //up 2
    {
    OnFwd(OUT_A+OUT_C);
    Wait(150);
    Off(OUT_A+OUT_C);
    if ( SENSOR_1 < 40 )
    {
    	B = 1;
     }
    if ((SENSOR_1>=40) &&  (SENSOR_1< 50))
    {
       B = 2;
    }
    if(SENSOR_1>=50)
    {
      B = 3;PlaySound(SOUND_LOW_BEEP); Wait(100);
     }
 
    SendMessage(34);Wait(200);
    }
    until(Message() ==100 )   
    start light_sensor;
    
    stop light_sensor;
    
    if (Message() ==3 )         //down
    {
    OnRev(OUT_A+OUT_C);    // time  keisoku 1tu dake  otosu           
    Wait(70);
    Off(OUT_A+OUT_C);
    Wait(50);
    OnFwd(OUT_A);
    Wait(70);
    Off(OUT_A);
    SendMessage(21 );Wait(200);
    }
 }
 
 task light_sensor ()
 {
    //(SENSOR_1 <  black_green);  // black       //(SENSOR_1   >= black_green && SENSOR_1 <= green_white);  //green
     //(SENSOR_1 > green_white ); //white
     
     if ((A ==  2) && (B == 3))
  task main()
   { 
      ClearMessage();
      until (Message() != 0);
       SetSensor (SENSOR_1, SENSOR_LIGHT);
      
     i  ( Message() ==31 )         //up
     {
     SendMessage(1);Wait(200);
     OnFwd(OUT_A+OUT_C);Wait(100);
     OnFwd(OUT_A+OUT_C);Wait(70);
     Off(OUT_A+OUT_C); Wait(20);
     if ( SENSOR_1 < 45 )
     {
     	A = 1;
     }
     
     if ((A == 2) && (B == 1))            //if - while
     if ((SENSOR_1>=45) &&  (SENSOR_1< 52))
     {
     SendMessage(2);Wait(200);
        A = 2;PlaySound(SOUND_LOW_BEEP); Wait(100);
     }
     
     if ((A == 3) && (B == 1))
     if(SENSOR_1>=52)
     {
     SendMessage(3);Wait(200);
       A = 3;
      }  
      
     OnFwd(OUT_A+OUT_C);Wait(50);
     Off(OUT_A+OUT_C);
     OnRev(OUT_A);
     Wait(70);
     Off(OUT_A);
  
     SendMessage(32);Wait(200);
     }
     
     if ((A == 3) && (B == 2))
     if ( Message() ==33 )         //up 2
     {
     SendMessage(4);Wait(200);
     OnFwd(OUT_A+OUT_C);
     Wait(150);
     Off(OUT_A+OUT_C);
     if ( SENSOR_1 < 40 )
     {
     	B = 1;
      }
     if ((SENSOR_1>=40) &&  (SENSOR_1< 50))
     {
        B = 2;
     }
     
     if ((A ==  1) && (B == 2)) 
     if(SENSOR_1>=50)
     {
     SendMessage(5);Wait(200);
     }
       B = 3;PlaySound(SOUND_LOW_BEEP); Wait(100);
      }
  
     SendMessage(34);Wait(200);
     } 
     until(Message() ==100 )   
     start light_sensor;
     
     if ((A ==  1) && (B == 3))
     stop light_sensor;
     
     if (Message() ==3 )         //down
     {
     SendMessage(6);Wait(200);
     }
 }
     OnRev(OUT_A+OUT_C);               
     Wait(70);
     Off(OUT_A+OUT_C);
     Wait(50);
     OnFwd(OUT_A);            //2つ目を落とさないように上げる
     Wait(70);
     Off(OUT_A);
     SendMessage(21 );Wait(200);
      } 
  }
  
  task light_sensor ()
  {
     //(SENSOR_1 <  black_green);  // black       //(SENSOR_1   >= black_green   && SENSOR_1 <= green_white);  //green
     //(SENSOR_1 > green_white ); //white
      
      if ((A ==  2) && (B == 3))
      {
      SendMessage(1);Wait(200);
      OnFwd(OUT_A+OUT_C);Wait(100);
      }
      
      if ((A == 2) && (B == 1))            //if - while
      {
      SendMessage(2);Wait(200);
      }
      
      if ((A == 3) && (B == 1))
      {
      SendMessage(3);Wait(200);
      }
      
      if ((A == 3) && (B == 2))
      {
      SendMessage(4);Wait(200);
      }
      
      if ((A ==  1) && (B == 2)) 
      {
      SendMessage(5);Wait(200);
      }
      
      if ((A ==  1) && (B == 3))
      {
      SendMessage(6);Wait(200);
      }
  }

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