[[2017b/Member]]

 #define right_dai OnFwd(OUT_C);OnRev(OUT_A);
 #define right_syou OnFwd(OUT_C);Off(OUT_A);
 #define left_dai OnFwd(OUT_A);OnRev(OUT_C);
 #define left_syou OnFwd(OUT_A);Off(OUT_C); 
 #define middle 40
 #define go(t) OnFwd(OUT_AC);Wait(t);Off(OUT_AC);
 #define TURN_RIGHT OnFwd(OUT_C);OnRev(OUT_A);until(SENSOR_2<=40);Off(OUT_AC);
 #define TURN__RIGHT(t) OnFwd(OUT_C);OnRev(OUT_A);Wait(t);
 #define TURN_LEFT(t) OnFwd(OUT_A);OnRev(OUT_C);Wait(t);
 #define cross_stop Off(OUT_AC);Wait(150);
 #define back  OnRev(OUT_AC);Wait(60);
 #define tukamu OnFwd(OUT_B);Wait(10);Off(OUT_B);
 #define hanasu OnRev(OUT_B);Wait(5);Off(OUT_B);

 sub line()
 {
 SetSensor(SENSOR_2,SENSOR_LIGHT);
 ClearTimer(0);
 while(FastTimer(0)<20){
  if(SENSOR_2>middle+5)
   {
    right_dai
    ClearTimer(0);
   }
  else if(SENSOR_2>middle+3)
   {
    right_syou
    ClearTimer(0);
   }
  else if(SENSOR_2>middle)
   {
    OnFwd(OUT_AC);
    ClearTimer(0);
   }
  else if(SENSOR_2>middle-3)
   {
    left_syou
    ClearTimer(0);
   }
  else
   {
    left_dai;
    }
  }
   Off(OUT_AC);
}
sub s()
{
  SetSensor(SENSOR_1, SENSOR_TOUCH);
  ClearTimer(0);
  while(FastTimer(0)<1400){

  if(SENSOR_2>middle+5)    
   {
    right_dai
   }
  else if(SENSOR_2>middle+3)  
   {
    right_syou
   }

  else if(SENSOR_2>middle)   
   {
    OnFwd(OUT_AC);
   }
  else if(SENSOR_2>middle-3)    
   {
    left_syou          
   }
  else
   {
    left_dai;
    }
  }

   Off(OUT_AC);
}

task main()
{
  line();//c
  cross_stop;
  go(30);
  TURN_RIGHT;
  line();
  PlaySound(SOUND_CLICK);
  line();
  cross_stop;//b
  go(20);
  TURN_LEFT(50);
  line();
  TURN_RIGHT;
  line();//p
  cross_stop;
  PlaySound(SOUND_CLICK);
  TURN_LEFT(30);
  go(20);
  line();//pq
  go(30);
  TURN_RIGHT;
  PlaySound(SOUND_CLICK);
  line();//r
  PlaySound(SOUND_CLICK);
  line();//e
  PlaySound(SOUND_CLICK);
  line();
  s();
  line();//f
  PlaySound(SOUND_CLICK);
  go(20);
  TURN_LEFT(70);
  line();//s
  PlaySound(SOUND_CLICK);
  cross_stop;
  TURN__RIGHT(80);//つかむ
  go(60);
  tukamu;
  TURN_LEFT(100);
  go(100);
  line();
  go(20);//s2
  line();//q
  cross_stop;
  TURN_LEFT(30);
  go(20);
  line();//r
  TURN__RIGHT(150);
  hanasu;
  back(100);
  TURN_LEFT(70);
  go(120);
  line();//p
  line();
  line();//b
  cross_stop;
  line();
  TURN_LEFT(20);
  line();
  line();
  go(50);
}

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS