- 追加された行はこの色です。
- 削除された行はこの色です。
アーム
#define ARM_TIME 20
#define UP_TIME 20
#define ARM_TIME 30
#define UP_TIME 70
task main(){
SetSensor(SENSOR_1,SENSOR_TOUCH);
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_3,SENSOR_TOUCH);
while(true){
ClearMessage();
if(SENSOR_1==1)
{SendMessage(2);
OnFwd(OUT_C); Wait(ARM_TIME);
OnFwd(OUT_A); Wait(UP_TIME);Off(OUT_A+OUT_C);}
if(SENSOR_1<40){OnFwd(OUT_C); Wait(ARM_TIME);
OnFwd(OUT_A); Wait(UP_TIME);Off(OUT_A+OUT_C);Wait(10);
if(SENSOR_3==1){SendMessage(2); Wait(50);}
else{SendMessage(1); Wait(50);} }
if(SENSOR_3==1)
{SendMessage(1);
OnFwd(OUT_C); Wait(ARM_TIME);
OnFwd(OUT_A); Wait(UP_TIME);Off(OUT_A+OUT_C);}
if(Message()==3){OnRev(OUT_A); Wait(20);
OnRev(OUT_C); Wait(25);Off(OUT_A+OUT_C);}
if(Message()==3){OnRev(OUT_A); Wait(75);
OnRev(OUT_C); Wait(35);Off(OUT_A+OUT_C);}
}
}
足回り
#define line_h_l while (Timer(0) <= 260) {if(SENSOR_1<42){OnFwd(OUT_A); OnRev(OUT_C); Wait(10);} if(SENSOR_2<42){OnFwd(OUT_C); OnRev(OUT_A); Wait(10);} else{OnFwd(OUT_C+OUT_A); Wait(10);} if((SENSOR_1<43)&&(SENSOR_2<43)){OnFwd(OUT_C); OnRev(OUT_A); Wait(40); }}
#define line_k_r while (Timer(0) <= 260) {if(SENSOR_1<42){OnFwd(OUT_A); OnRev(OUT_C); Wait(10);} if(SENSOR_2<42){OnFwd(OUT_C); OnRev(OUT_A); Wait(10);} else{OnFwd(OUT_C+OUT_A); Wait(10);} if((SENSOR_1<43)&&(SENSOR_2<43)){OnFwd(OUT_A); OnRev(OUT_C); Wait(40); }}
#define line_h_r_1 while (Timer(0) <= 200) {if(SENSOR_1<42){OnFwd(OUT_A); OnRev(OUT_C); Wait(10);} if(SENSOR_2<42){OnFwd(OUT_C); OnRev(OUT_A); Wait(10);} else{OnFwd(OUT_C+OUT_A); Wait(10);} if((SENSOR_1<43)&&(SENSOR_2<43)){OnFwd(OUT_C); OnRev(OUT_A); Wait(40); }}
#define line_h_r_2 while (Timer(1) <= 70) {if(SENSOR_1<42){OnFwd(OUT_A); OnRev(OUT_C); Wait(10);} if(SENSOR_2<42){OnFwd(OUT_C); OnRev(OUT_A); Wait(10);} else{OnFwd(OUT_C+OUT_A); Wait(10);} if((SENSOR_1<43)&&(SENSOR_2<43)){OnFwd(OUT_A); OnRev(OUT_C); Wait(40); }}
#define line_k_l_1 while (Timer(0) <= 200) {if(SENSOR_1<42){OnFwd(OUT_A); OnRev(OUT_C); Wait(10);} if(SENSOR_2<42){OnFwd(OUT_C); OnRev(OUT_A); Wait(10);} else{OnFwd(OUT_C+OUT_A); Wait(10);} if((SENSOR_1<43)&&(SENSOR_2<43)){OnFwd(OUT_C); OnRev(OUT_A); Wait(40); }}
#define line_k_l_2 while (Timer(1) <= 70) {if(SENSOR_1<42){OnFwd(OUT_A); OnRev(OUT_C); Wait(10);} if(SENSOR_2<42){OnFwd(OUT_C); OnRev(OUT_A); Wait(10);} else{OnFwd(OUT_C+OUT_A); Wait(10);} if((SENSOR_1<43)&&(SENSOR_2<43)){OnFwd(OUT_A); OnRev(OUT_C); Wait(40); }}
int i;
int turn_time;
task hako_l() {
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_2,SENSOR_LIGHT);
while(true){
ClearMessage();
ClearTimer(0);
Off(OUT_A+OUT_C); Wait(400); OnRev(OUT_A+OUT_C); Wait(50);
OnFwd(OUT_C); OnRev(OUT_A);
Wait(200); OnFwd(OUT_A+OUT_C); Wait(20);
line_h_l; SendMessage(3);
Float(OUT_A+OUT_C); Wait(400); OnRev(OUT_A+OUT_C); Wait(50);
Off(OUT_A+OUT_C); Wait(40); OnRev(OUT_A+OUT_C); Wait(50);
OnFwd(OUT_C); OnRev(OUT_A); Wait(200);
OnFwd(OUT_A+OUT_C); Wait(10);
line_h_l; SendMessage(3); Wait(50);
Float(OUT_A+OUT_C); Wait(100); OnRev(OUT_A+OUT_C); Wait(50);
OnFwd(OUT_A); OnRev(OUT_C); Wait(190); OnFwd(OUT_A+OUT_C); Wait(300);
Off(OUT_A+OUT_C);} }
task hako_r() {
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_2,SENSOR_LIGHT);
while(true){
ClearMessage();
ClearTimer(0);
ClearTimer(1);
Off(OUT_A+OUT_C); Wait(400); OnRev(OUT_A+OUT_C); Wait(50);
OnFwd(OUT_C); OnRev(OUT_A);
Wait(200); OnFwd(OUT_A+OUT_C); Wait(20);
line_h_r_1; line_h_r_2;SendMessage(3);
Float(OUT_A+OUT_C); Wait(400); OnRev(OUT_A+OUT_C); Wait(50);
Off(OUT_A+OUT_C); Wait(40); OnRev(OUT_A+OUT_C); Wait(50);
OnFwd(OUT_C); OnRev(OUT_A); Wait(200);
OnFwd(OUT_A+OUT_C); Wait(10);
line_h_r_1; line_h_r_2;SendMessage(3); Wait(50);
Float(OUT_A+OUT_C); Wait(100); OnRev(OUT_A+OUT_C); Wait(50);
OnFwd(OUT_A); OnRev(OUT_C); Wait(190); OnFwd(OUT_A+OUT_C); Wait(300);
Off(OUT_A+OUT_C);} }
task hako_m(){
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_2,SENSOR_LIGHT);
while(true){
ClearMessage();
ClearTimer(0);
ClearTimer(1);
Off(OUT_A+OUT_C); Wait(400); OnRev(OUT_A+OUT_C); Wait(50);
Off(OUT_A+OUT_C); Wait(40); OnRev(OUT_A+OUT_C); Wait(50);
OnFwd(OUT_C); OnRev(OUT_A); Wait(210);
OnFwd(OUT_A+OUT_C); Wait(150);
line_h_r_2;SendMessage(3);
Float(OUT_A+OUT_C); Wait(400); OnRev(OUT_A+OUT_C); Wait(50);
line_h_r_2;SendMessage(3); Wait(50);
Float(OUT_A+OUT_C); Wait(100); OnRev(OUT_A+OUT_C); Wait(50);
OnFwd(OUT_A); OnRev(OUT_C); Wait(190); OnFwd(OUT_A+OUT_C); Wait(300);
Off(OUT_A+OUT_C);} }
task kann_r() {
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_2,SENSOR_LIGHT);
while(true){
ClearMessage();
ClearTimer(0);
Off(OUT_A+OUT_C); Wait(400); OnRev(OUT_A+OUT_C); Wait(50);
OnFwd(OUT_A); OnRev(OUT_C);
Wait(200); OnFwd(OUT_A+OUT_C); Wait(20);
line_k_r; SendMessage(3);
Float(OUT_A+OUT_C); Wait(400); OnRev(OUT_A+OUT_C); Wait(50);
Off(OUT_A+OUT_C); Wait(40); OnRev(OUT_A+OUT_C); Wait(50);
OnFwd(OUT_A); OnRev(OUT_C); Wait(200);
OnFwd(OUT_A+OUT_C); Wait(10);
line_k_r; SendMessage(3); Wait(50);
Float(OUT_A+OUT_C); Wait(100); OnRev(OUT_A+OUT_C); Wait(50);
OnFwd(OUT_C); OnRev(OUT_A); Wait(200); OnFwd(OUT_A+OUT_C); Wait(450);
Off(OUT_A+OUT_C);} }
task kann_l() {
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_2,SENSOR_LIGHT);
while(true){
ClearMessage();
ClearTimer(0);
Off(OUT_A+OUT_C); Wait(400); OnRev(OUT_A+OUT_C); Wait(50);
OnFwd(OUT_A); OnRev(OUT_C);
Wait(200); OnFwd(OUT_A+OUT_C); Wait(20);
line_k_l_1; line_k_l_2; SendMessage(3);
Float(OUT_A+OUT_C); Wait(400); OnRev(OUT_A+OUT_C); Wait(50);
Off(OUT_A+OUT_C); Wait(40); OnRev(OUT_A+OUT_C); Wait(50);
OnFwd(OUT_A); OnRev(OUT_C); Wait(200);
OnFwd(OUT_A+OUT_C); Wait(10);
line_k_l_1; line_k_l_2; SendMessage(3); Wait(50);
Float(OUT_A+OUT_C); Wait(100); OnRev(OUT_A+OUT_C); Wait(50);
OnFwd(OUT_C); OnRev(OUT_A); Wait(200); OnFwd(OUT_A+OUT_C); Wait(450);
Off(OUT_A+OUT_C);} }
task kann_m() {
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_2,SENSOR_LIGHT);
while(true){
ClearMessage();
ClearTimer(0);
ClearTimer(1);
Off(OUT_A+OUT_C); Wait(400); OnRev(OUT_A+OUT_C); Wait(50);
OnFwd(OUT_A); OnRev(OUT_C);
Wait(210); OnFwd(OUT_A+OUT_C); Wait(150);
line_k_l_2; SendMessage(3);
Float(OUT_A+OUT_C); Wait(400); OnRev(OUT_A+OUT_C); Wait(50);
Off(OUT_A+OUT_C); Wait(40); OnRev(OUT_A+OUT_C); Wait(50);
OnFwd(OUT_A); OnRev(OUT_C); Wait(210);
OnFwd(OUT_A+OUT_C); Wait(150);
line_k_l_2; SendMessage(3); Wait(50);
Float(OUT_A+OUT_C); Wait(100); OnRev(OUT_A+OUT_C); Wait(50);
OnFwd(OUT_C); OnRev(OUT_A); Wait(200); OnFwd(OUT_A+OUT_C); Wait(450);
Off(OUT_A+OUT_C);} }
task main() {
SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_2,SENSOR_LIGHT);
turn_time=10;
i=0;
while(true){
ClearMessage();
ClearTimer(0);
OnFwd(OUT_A+OUT_C); Wait(50);
if(Message()==1){
if((i==1)||(i==3)||(i==5))
{start hako_l;}
if((Message()==1)&&((i==1)||(i==3)||(i==5)))
{start hako_l;}
if((i==2)||(i==4)||(i==6))
{start hako_r;}
if((Message()==1)&&((i==2)||(i==4)||(i==6)))
{start hako_r;}
else
{start hako_m;}}
if(Message()==2){
if((i==1)||(i==3)||(i==5))
{start kann_r;}
if((Message()==1)&&(i==0))
{start hako_m;}
if((Message()==2)&&((i==1)||(i==3)||(i==5)))
{start kann_r;}
if((i==2)||(i==4)||(i==6))
{start kann_l;}
if((Message()==2)&&((i==2)||(i==4)|(i==6)))
{start kann_l;}
if((Message()==2)&&(i==0))
{start kann_m;}
else
{start kann_m;}}
else{while(Message()!=0){OnFwd(OUT_A+OUT_C); Wait(55);
OnRev(OUT_A+OUT_C); Wait(50);
OnFwd(OUT_A); OnRev(OUT_C); Wait(turn_time);
turn_time =turn_time+5; i=i+1;
turn_time =turn_time+10; i=i+1;
OnFwd(OUT_A+OUT_C); Wait(55); OnRev(OUT_A+OUT_C); Wait(50);
OnFwd(OUT_C); OnRev(OUT_A); Wait(turn_time);
turn_time =turn_time+5; i=i+1;}
turn_time =turn_time+10; i=i+1;}
}
}
}