としている。
#define THRESHOLD 50 task main(){
SetSensor(SENSOR_1,SENSOR_LIGHT); SetSensor(SENSOR_3,SENSOR_LIGHT);
ClearTimer(0); while(FastTimer(0)<=900) { if((SENSOR_1>THRESHOLD)&&(SENSOR_3>THRESHOLD)) //ラインが直進の時 {OnFwd(OUT_A+OUT_C);} if((SENSOR_1>THRESHOLD)&&(SENSOR_3<THRESHOLD)) //ラインが右曲がりの時 {OnFwd(OUT_A); Off(OUT_C);} if((SENSOR_1<THRESHOLD)&&(SENSOR_3>THRESHOLD)) //ラインが左曲がりの時 {Off(OUT_A); OnFwd(OUT_C);} if((SENSOR_1<THRESHOLD)&&(SENSOR_3<THRESHOLD)) //交差点の時 {OnFwd(OUT_A+OUT_C);} }
ClearTimer(0); while(FastTimer(0)<=150) { if((SENSOR_1>THRESHOLD)&&(SENSOR_3>THRESHOLD)) //ラインが直進の時 {OnFwd(OUT_A+OUT_C);} if((SENSOR_1>THRESHOLD)&&(SENSOR_3<THRESHOLD)) //ラインが右曲がりの時 {OnFwd(OUT_A); Off(OUT_C);} if((SENSOR_1<THRESHOLD)&&(SENSOR_3>THRESHOLD)) //ラインが左曲がりの時 {Off(OUT_A); OnFwd(OUT_C);} if((SENSOR_1<40)&&(SENSOR_3<41)) //交差点の時 {Off(OUT_A); OnFwd(OUT_C);} }
ClearTimer(0); while(FastTimer(0)<=125) { if((SENSOR_1>THRESHOLD)&&(SENSOR_3>THRESHOLD)) //ラインが直進の時 {OnFwd(OUT_A+OUT_C);} if((SENSOR_1>THRESHOLD)&&(SENSOR_3<THRESHOLD)) //ラインが右曲がりの時 {OnFwd(OUT_A); Off(OUT_C);} if((SENSOR_1<THRESHOLD)&&(SENSOR_3>THRESHOLD)) //ラインが左曲がりの時 {Off(OUT_A); OnFwd(OUT_C);} if((SENSOR_1<40)&&(SENSOR_3>THRESHOLD)) //無視パターンの時 {Off(OUT_C); OnFwd(OUT_A); } }
ClearTimer(0); while(FastTimer(0)<=150) { if((SENSOR_1>THRESHOLD)&&(SENSOR_3>THRESHOLD)) //ラインが直進の時 {OnFwd(OUT_A+OUT_C);} if((SENSOR_1>THRESHOLD)&&(SENSOR_3<THRESHOLD)) //ラインが右曲がりの時 {OnFwd(OUT_A); Off(OUT_C);} if((SENSOR_1<THRESHOLD)&&(SENSOR_3>THRESHOLD)) //ラインが左曲がりの時 {Off(OUT_A); OnFwd(OUT_C);} if(SENSOR_1<39) //特別左曲がり {OnRev(OUT_A); OnFwd(OUT_C); } }
ClearTimer(0); while(FastTimer(0)<=730) { if((SENSOR_1>THRESHOLD)&&(SENSOR_3>THRESHOLD)) //ラインが直進の時 {OnFwd(OUT_A+OUT_C);} if((SENSOR_1>THRESHOLD)&&(SENSOR_3<THRESHOLD)) //ラインが右曲がりの時 {OnFwd(OUT_A); Off(OUT_C);} if((SENSOR_1<THRESHOLD)&&(SENSOR_3>THRESHOLD)) //ラインが左曲がりの時 {Off(OUT_A); OnFwd(OUT_C);} if((SENSOR_1<39)&&(SENSOR_3>THRESHOLD)) //直角カーブの時 {OnRev(OUT_A); OnFwd(OUT_C); } }
ClearTimer(0); while(FastTimer(0)<=150) { if((SENSOR_1>THRESHOLD)&&(SENSOR_3>THRESHOLD)) //ラインが直進の時 {OnFwd(OUT_A+OUT_C);} if((SENSOR_1>THRESHOLD)&&(SENSOR_3<THRESHOLD)) //ラインが右曲がりの時 {OnFwd(OUT_A); Off(OUT_C);} if((SENSOR_1<THRESHOLD)&&(SENSOR_3>THRESHOLD)) //ラインが左曲がりの時 {Off(OUT_A); OnFwd(OUT_C);} if((SENSOR_1<40)&&(SENSOR_3<41)) //交差点の時 {OnRev(OUT_A); OnFwd(OUT_C); } }
ClearTimer(0); while(FastTimer(0)<=150) { if((SENSOR_1>THRESHOLD)&&(SENSOR_3>THRESHOLD)) //ラインが直進の時 {OnFwd(OUT_A+OUT_C);} if((SENSOR_1>THRESHOLD)&&(SENSOR_3<THRESHOLD)) //ラインが右曲がりの時 {OnFwd(OUT_A); Off(OUT_C);} if((SENSOR_1<THRESHOLD)&&(SENSOR_3>THRESHOLD)) //ラインが左曲がりの時 {Off(OUT_A); OnFwd(OUT_C);} if((SENSOR_1<40)&&(SENSOR_3>THRESHOLD)) //無視パターンの時 {Off(OUT_C); OnFwd(OUT_A); } }
ClearTimer(0); while(FastTimer(0)<=150) { if((SENSOR_1>THRESHOLD)&&(SENSOR_3>THRESHOLD)) //ラインが直進の時 {OnFwd(OUT_A+OUT_C);} if((SENSOR_1>THRESHOLD)&&(SENSOR_3<THRESHOLD)) //ラインが右曲がりの時 {OnFwd(OUT_A); Off(OUT_C);} if((SENSOR_1<THRESHOLD)&&(SENSOR_3>THRESHOLD)) //ラインが左曲がりの時 {Off(OUT_A); OnFwd(OUT_C);} if(SENSOR_1<39) //特別左曲がり {Off(OUT_A); OnFwd(OUT_C); } }
ClearTimer(0); while(FastTimer(0)<=300) { if((SENSOR_1>THRESHOLD)&&(SENSOR_3>THRESHOLD)) //ラインが直進の時 {OnFwd(OUT_A+OUT_C);} if((SENSOR_1>THRESHOLD)&&(SENSOR_3<THRESHOLD)) //ラインが右曲がりの時 {OnFwd(OUT_A); Off(OUT_C);} if((SENSOR_1<THRESHOLD)&&(SENSOR_3>THRESHOLD)) //ラインが左曲がりの時 {Off(OUT_A); OnFwd(OUT_C);} if((SENSOR_1<THRESHOLD)&&(SENSOR_3<THRESHOLD)) //交差点の時 {OnFwd(OUT_A+OUT_C); } }
ClearTimer(0); //#1区間 while(FastTimer(0)<=650) { if((SENSOR_1>THRESHOLD)&&(SENSOR_3>THRESHOLD)) //ラインが直進の時 {OnFwd(OUT_A+OUT_C);} if((SENSOR_1>THRESHOLD)&&(SENSOR_3<THRESHOLD)) //ラインが右曲がりの時 {OnFwd(OUT_A); Off(OUT_C);} if((SENSOR_1<THRESHOLD)&&(SENSOR_3>THRESHOLD)) //ラインが左曲がりの時 {Off(OUT_A); OnFwd(OUT_C);} if((SENSOR_1<THRESHOLD)&&(SENSOR_3<THRESHOLD)) //交差点の時 {OnFwd(OUT_A+OUT_C); } if(SENSOR_1<39) //直角カーブの時 {OnRev(OUT_A); OnFwd(OUT_C); } }
ClearTimer(0); //#1区間 while(FastTimer(0)<=700) { if((SENSOR_1>THRESHOLD)&&(SENSOR_3>THRESHOLD)) //ラインが直進の時 {OnFwd(OUT_A+OUT_C);} if((SENSOR_1>THRESHOLD)&&(SENSOR_3<THRESHOLD)) //ラインが右曲がりの時 {OnFwd(OUT_A); Off(OUT_C);} if((SENSOR_1<THRESHOLD)&&(SENSOR_3>THRESHOLD)) //ラインが左曲がりの時 {Off(OUT_A); OnFwd(OUT_C);} if((SENSOR_1<THRESHOLD)&&(SENSOR_3<THRESHOLD)) //交差点の時 {OnFwd(OUT_A+OUT_C); } }
ClearTimer(0); //#1区間 while(FastTimer(0)<=300) { if((SENSOR_1>THRESHOLD)&&(SENSOR_3>THRESHOLD)) //ラインが直進の時 {OnFwd(OUT_A+OUT_C);} if((SENSOR_1>THRESHOLD)&&(SENSOR_3<THRESHOLD)) //ラインが右曲がりの時 {OnFwd(OUT_A); Off(OUT_C);} if((SENSOR_1<THRESHOLD)&&(SENSOR_3>THRESHOLD)) //ラインが左曲がりの時 {Off(OUT_A); OnFwd(OUT_C);} if((SENSOR_1<THRESHOLD)&&(SENSOR_3<THRESHOLD)) //交差点の時 {Off(OUT_A+OUT_C); } }
Off(OUT_A+OUT_C);}