#define zennsin OnFwd(OUT_A + OUT_C);//MIGI GA 'A'
#define kousin OnRev(OUT_A+ OUT_C);
#define sasetu OnFwd(OUT_A); OnRev(OUT_C);
#define usetu OnFwd(OUT_C); OnRev(OUT_A);
#define torikomi OnFwd(OUT_B);
#define hakidasi OnRev(OUT_B);
#define teisi Off(OUT_A + OUT_C);

#define THRESHOLD 45

int i

sub trace()
{
    while(true)
    {
        if(SENSOR_1 < THRESHOLD)
         {
         usetu;
        }
        else if(SENSOR_2 < THRESHOLD)
         {
 #define zennsin OnFwd(OUT_A + OUT_C);//MIGI GA 'A'
 #define kousin OnRev(OUT_A+ OUT_C);
 #define sasetu OnFwd(OUT_A); OnRev(OUT_C);
 #define usetu OnFwd(OUT_C); OnRev(OUT_A);
 #define torikomi OnFwd(OUT_B);
 #define hakidasi OnRev(OUT_B);
 #define teisi Off(OUT_A + OUT_C);
 
 #define THRESHOLD 45
 
 int i
 
 sub trace()
 {
     while(true)
     {
         if(SENSOR_1 < THRESHOLD)
          {
          usetu;
          }
         else if(SENSOR_2 < THRESHOLD)
          {
          sasetu;
         }
        else 
        {
         zennsin;
        }
    }
}
    
task main()
{
 SetSensor(SENSOR_1, SENSOR_LIGHT);//migi
 SetSensor(SENSOR_2, SENSOR_LIGHT);//hidari
 SetSensor(SENSOR_3, SENSOR_LIGHT);//haguremono
 ClearMessage();
 ClearTimer(0);
          }
         else 
          {
          zennsin;
          }
     }
 }
     
 task main()
 {
  SetSensor(SENSOR_1, SENSOR_LIGHT);//migi
  SetSensor(SENSOR_2, SENSOR_LIGHT);//hidari
  SetSensor(SENSOR_3, SENSOR_LIGHT);//haguremono
  ClearMessage();
  ClearTimer(0);
  
  kousin; Wait();
  teisi;
  torikomi; Wait();
  teisi;
 
 kousin; Wait();
 teisi;
 torikomi; Wait();
 teisi;
 .
 zennsin;Wait();
 usetu;Wait(120);
 zennsin;Wait(120);
 usetu;Wait(120);
 zennsin;
  zennsin;Wait();
  usetu;Wait(120);
  zennsin;Wait(120);
  usetu;Wait(120);
  zennsin;
  
 until(SENSOR_2 < THRESHOLD);
  {
   trace();
  }
  if(SENSOR_3 < THRESHOLD)
 {
  teisi;
      while(Timer(0) <= 10)
    {
     SendMessage(10);
     }
 }
 
until(SENSOR_2 < THRESHOLD);
 until(message() != 0);
 if(Message() == 1)
 {
  trace();
 	usetu;Wait();
 	zennsin;Wait();
 	teisi;
 	hakidasi;Wait();
 	sasetu;Wait();
 	zennsin;
 	until(SENSOR_2 < THRESHOLD);
     {
 	trace();
         if(SENSOR_3 <= THRESHOLD )
 	   {
 		i++;
 		}
 		if(i==2)
 		{
 			teisi;
 		}
 	}
 }  
 
 if(Message() == 2)
 {
 	trace;
 	if(SENSOR_3 <= THRESHOLD )
 	{
 		i++;
 	}
 	until(i=1);
 		    usetu;Wait();
 		    zennsin;Wait();
 		    teisi;
 	hakidasi;Wait();
 	sasetu;Wait();
 	zennsin;
 	until(SENSOR_2 < THRESHOLD);
     {
 	trace();
         if(SENSOR_3 <= THRESHOLD )
 	   {
 		i++;
 		}
 		if(i==3)
 		{
 			teisi;
 		}
 	}
 }
 if(SENSOR_3 < THRESHOLD)
{
 teisi;
     while(Timer(0) <= 10)
   {
    SendMessage(10);
    }
}

until(message() != 0);
if(Message() == 1)
{
	usetu;Wait();
	zennsin;Wait();
	teisi;
	hakidasi;Wait();
	sasetu;Wait();
	zennsin;
	until(SENSOR_2 < THRESHOLD);
    {
 
 if(Message() == 3)
 {
 	trace;
 	if(SENSOR_3 <= THRESHOLD )
 	{
 		i++;
 	}
 	until(i=2);
 		    usetu;Wait();
 		    zennsin;Wait();
 		    teisi;
 	hakidasi;Wait();
 	kousin;Wait();
 	sasetu;Wait();
 	zennsin;
 	until(SENSOR_2 < THRESHOLD);
     {
	trace();
        if(SENSOR_3 <= THRESHOLD )
         if(SENSOR_3 <= THRESHOLD )
 	   {
	     i++;
	   }
	if(i==4)
	   {
		i++;
		}
		if(i==2)
		{
			teisi;
		}
	}
}

if(Message() == 2)
{
	trace;
	if(SENSOR_3 <= THRESHOLD )
	{
		i++;
	}
	until(i=1);
		    usetu;Wait();
		    zennsin;Wait();
		    teisi;
	hakidasi;Wait();
	sasetu;Wait();
	zennsin;
	until(SENSOR_2 < THRESHOLD);
    {
	trace();
        if(SENSOR_3 <= THRESHOLD )
	   {
		i++;
		}
		if(i==3)
		{
			teisi;
		}
	}
}

if(Message() == 3)
{
	trace;
	if(SENSOR_3 <= THRESHOLD )
	{
		i++;
	}
	until(i=2);
		    usetu;Wait();
		    zennsin;Wait();
		    teisi;
	hakidasi;Wait();
	kousin;Wait();
	sasetu;Wait();
	zennsin;
	until(SENSOR_2 < THRESHOLD);
    {
	trace();
        if(SENSOR_3 <= THRESHOLD )
	   {
		i++;
		}
		if(i==4)
		{
			teisi;
		}
		
	}
}
usetu;Wait();
trace;Wait();
sasetu;Wait();

	     teisi;
	   }
	 	
      } 
 }
 usetu;Wait();
 trace;Wait();
 sasetu;Wait();

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