アーム
#define ARM_TIME 30
#define UP_TIME 70
task main(){
SetSensor(SENSOR_1,SENSOR_LIGHT); SetSensor(SENSOR_3,SENSOR_TOUCH); while(true){ ClearMessage(); 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(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*1{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*2{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*3{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*4{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*5{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*6{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(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(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(1); 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); 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(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(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(1); 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((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((i==2)||(i==4)||(i==6)) {start kann_l;} 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+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+10; i=i+1;} } }
}