2005/C5/あきひろ

#define spin OnFwd(OUT_A);OnRev(OUT_C);Wait(30);
#define go_straight OnFwd(OUT_A+OUT_C);
#define go_back OnRev(OUT_A+OUT_C);
int light_max1=0;
int light_max3=0;
int RUN_TIME=800;
task main()
{    SetSensor(SENSOR_1,SENSOR_LIGHT);
    SetSensor(SENSOR_3,SENSOR_LIGHT);
    
    ClearTimer(0);
    
    while(FastTimer(0)<RUN_TIME)
    { if((SENSOR_1>light_max1)||(SENSOR_3>light_max3)){
      spin;
      light_max1=SENSOR_1;PlayTone(400,5);
      light_max3=SENSOR_3;PlayTone(600,5);}
      }
    
    while(FastTimer(0)>=RUN_TIME) 
   {if((SENSOR_1<light_max1)&&(SENSOR_3<light_max3))
    {spin;}
           
    if(SENSOR_1>=light_max1-5)
    {go_straight;}
    
    if(SENSOR_3>=light_max3-5)
    {go_back;}}
    
}

ーーーーーーーーー  #define go_straight OnFwd(OUT_A+OUT_C);  #define turn_right OnFwd(OUT_A);OnRev(OUT_C);  #define turn_left OnFwd(OUT_C);OnRev(OUT_A);  #define RUN_TIME 300    int light_R=0;  int light_L=0;    task main()  { SetSensor(SENSOR_1,SENSOR_LIGHT);   SetSensor(SENSOR_3,SENSOR_LIGHT);       ClearTimer(0);

      

  while(true){ while(FastTimer(0)<RUN_TIME)   {turn_right;   if(SENSOR_1>light_L)   {light_L=SENSOR_1;PlayTone(220,1);}         if(SENSOR_3>light_R){light_R=SENSOR_3;  PlayTone(600,1);}

       }
                    
             
            if((SENSOR_1>=light_L)||(SENSOR_3>=light_R))
              {go_straight;}
            if((SENSOR_1<light_L)&&(SENSOR_3<light_R))
            {if(SENSOR_1>SENSOR_3){turn_left;}
             if(SENSOR_3>SENSOR_1){turn_right;}
            } 
                              
   }}

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-02-10 (金) 15:24:24