- 追加された行はこの色です。
- 削除された行はこの色です。
[[2018a/Member]]
#define RESET ClearTimer(0)
#define sasetu OnFwd(OUT_C)
#define usetu OnFwd(OUT_A)
#define tyokusin OnFwd(OUT_AC)
#define STOP Off(OUT_AC)
#define kaitenR OnFwd(OUT_A);OnRev(OUT_C)
#define kaitenL OnFwd(OUT_C);OnRev(OUT_A)
#define SOUND PlaySound(SOUND_UP)
sub lineL()
{
RESET;
while(FastTimer(0)<50){
if(SENSOR_1<50){
sasetu;
Wait(5);
STOP;
}
else{
usetu;
RESET;
Wait(5);
STOP;
}
}
SOUND;
}
sub lineR()
{
RESET;
while(FastTimer(0)<50){
if(SENSOR_1<50){
usetu;
Wait(5);
STOP;
}
else{
sasetu;
RESET;
Wait(5);
STOP;
}
}
SOUND;
}
task main()
{
SetSensor(SENSOR_1,SENSOR_LIGHT);
tyokusin;
Wait(100);
STOP;
lineL();
OnRev(OUT_C);
Wait(30);
STOP;
Wait(100);
tyokusin;
Wait(30);//Cをこえる
STOP;
lineL();
kaitenL;
Wait(50);
OnRev(OUT_B);
lineL();
OnRev(OUT_C);
Wait(40);
STOP;
Wait(100);
OnFwd(OUT_B);
Wait(50);//缶を掴む
Off(OUT_B);
tyokusin;
Wait(10);
STOP;
kaitenL;
Wait(40);
STOP;
lineL();
OnRev(OUT_C);
Wait(60);
STOP;
tyokusin;
Wait(20);//Eをこえる
lineL();
kaitenL;
Wait(20);//Fを左折
lineL();
Wait(100);
kaitenL;
Wait(40);//Gを左折
STOP;
tyokusin;
Wait(30);
STOP;
lineR();
kaitenR;
Wait(50);
STOP;
lineR();
tyokusin;
Wait(20);
STOP;
kaitenR;
Wait(30);
STOP;
lineL();
OnRev(OUT_C);
Wait(30);
STOP;
Wait(100);
usetu;
Wait(160);//Hを右折
STOP;
lineR();
Wait(100);
kaitenR;
Wait(20);//Iを右折
STOP;
lineR();
OnRev(OUT_A);
Wait(40);
STOP;
tyokusin;
Wait(20);//Lを越える
lineR();
OnRev(OUT_A);
Wait(40);
STOP;
tyokusin;
Wait(20);//Kを越える
lineR();
OnRev(OUT_A);
Wait(30);
STOP;
Wait(100);
kaitenL;
Wait(70);//90度回転
STOP;
OnRev(OUT_B);
Wait(50);
Off(OUT_B);//缶を離す
OnRev(OUT_AC);
Wait(70);
STOP;
kaitenR;
Wait(70);
STOP;
tyokusin;
Wait(60);
STOP;
kaitenR;
Wait(70);
STOP;
lineL();
Wait(100);
kaitenL;
Wait(60);//Bを左折
lineL();
OnRev(OUT_C);
Wait(30);
STOP;
tyokusin;
Wait(150);
STOP;
}