[[2006b/A1/ロボコン]]



#define turn_right(t) OnFwd(OUT_A);OnRev(OUT_C);Wait(t);OnFwd(OUT_C);
#define turn_left(t) OnFwd(OUT_C);OnRev(OUT_A);Wait(t);OnFwd(OUT_A);
#define straight(t) ClearTimer(1);while(FastTimer(1)<t){OnFwd(OUT_A+OUT_C);Wait(11);Float(OUT_A);Wait(1);OnFwd(OUT_A);}
#define back(t) ClearTimer(2);while(FastTimer(2)<t){OnRev(OUT_A+OUT_C);Wait(11);Float(OUT_A);Wait(1);OnRev(OUT_A);}
#define tsukamiage(t) OnFwd(OUT_B);Wait(t);Off(OUT_B);
#define sagehanashi(t) OnRev(OUT_B);Wait(t);Off(OUT_B);
#define off Off(OUT_A+OUT_B+OUT_C);


task main(){
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_3,SENSOR_LIGHT);
ClearMessage();

int matagi=0;
int hanbetsu=0;
int lenge=0;

sagehanashi(200);

while(matagi<2)
{
straight(13);
if(SENSOR_1<45){matagi++;}
until(SENSOR_1>45);
}



while(SENSOR_1>45)
{turn_right(5);}

ClearTimer(0);
while(FastTimer(0)<330)
{
               if(SENSOR_1<45){Off(OUT_A);Wait(5);
               if(SENSOR_1<45){OnRev(OUT_A);until(SENSOR_1>45);}OnFwd(OUT_A);}     //LINE TRACE
}

turn_left(110);         //LOCK ON !

off;
tsukamiage(220);Wait(100);
tsukamiage(130);

SendMessage(3);
back(10);

turn_left(140);

while(Message()==0){straight(13);}    //go-ru he mukatte GO!
ClearMessage();

back(20);
off;
tsukamiage(150);        //shu-to!
while(Message()<2){straight(13);}
off;Wait(50);

sagehanashi(170);
back(100);
off;
tsukamiage(100);
straight(100);
off;Wait(100);
tsukamiage(60);
back(100);off;
sagehanashi(340);
Float(OUT_B);off;

SendMessage(3);









back(100);   //////////////////////////////////////  second

turn_right(120);
straight(300);
turn_right(120);
while(SENSOR_1>45){straight(13);}
straight(20);
while(SENSOR_3>40){turn_left(5);}
OnFwd(OUT_A+OUT_C);
ClearTimer(0);
while(FastTimer(0)<10                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               0)
{
               if(SENSOR_3<40){Off(OUT_C);Wait(5);
               if(SENSOR_3<40){OnRev(OUT_C);until(SENSOR_3>40);}OnFwd(OUT_C);}     //LINE TRACE
}



turn_right(120);
straight(10);
off;
tsukamiage(220);Wait(100);
tsukamiage(130);

SendMessage(3);

while(SENSOR_1<45){straight(10);}straight(20);off;

turn_right(140);

while(Message()==0){straight(14);}    //go-ru he mukatte GO!

back(20);
off;
tsukamiage(150);        //shu-to!
while(Message()<2){straight(13);}
off;Wait(50);
 
sagehanashi(170);
back(100);
off;
tsukamiage(100);
straight(100);
off;
tsukamiage(60);
back(100);off;
sagehanashi(320);
Float(OUT_B);



back(200);turn_right(1000);
}

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