#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);
 
 kousin; Wait();
 teisi;
 torikomi; Wait();
 teisi;
 .
 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(message() != 0);
if(Message() == 1)
{
	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(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();


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