*内容 [#a360d923] #define MOVE_TIME1 700000 #define MOVE_TIME2 40000 #define nMAX1 3000 #define nMAX2 350 #define THRESHOLD 55 #define SPEED_H 30 #define SPEED_L 25 #define OnRL(speedR,speedL) OnFwd(OUT_B,speedR);OnFwd(OUT_C,speedL); #define go_forward OnRL(SPEED_H,SPEED_H); #define turn_left1 OnRL(SPEED_L,-SPEED_L); #define turn_left2 OnRL(SPEED_L,0); #define turn_right1 OnRL(-SPEED_L,SPEED_L); #define turn_right2 OnRL(0,SPEED_L); #define STEP 1 #define short_break Off(OUT_BC);Wait(100); #define CROSS_TIME 210 #define cross_line OnRL(SPEED_L,SPEED_L);Wait(CROSS_TIME);short_break; task main() { SetSensorLight(S1); long t0=CurrentTick(); while(CurrentTick()-t0<MOVE_TIME2){//←交差点,急カーブ1 int nOnline=0; while(nOnline<nMAX2){ if(SENSOR_1<THRESHOLD-4){ turn_left2; nOnline++; } else { if(SENSOR_1<THRESHOLD){ turn_left2; } else if(SENSOR_1<THRESHOLD+7){ go_forward; } else if(SENSOR_1<THRESHOLD+10){ turn_right2; } else{ turn_right1; } nOnline=0; } } Wait(STEP); short_break; PlaySound(SOUND_DOUBLE_BEEP); turn_right2;Wait(nMAX2); cross_line; nOnline=0; } PlaySound(SOUND_FAST_UP); go_forward;Wait(1800); while(CurrentTick()-t0<MOVE_TIME1){//←急カーブ2 int nOnline=0; while(nOnline<nMAX1){ if(SENSOR_1<THRESHOLD-4){ turn_left1; nOnline++; } else { if(SENSOR_1<THRESHOLD+7){ go_forward; } else if(SENSOR_1<THRESHOLD+10){ turn_right2; } else{ turn_right1; } nOnline=0; } } Wait(STEP); short_break; PlaySound(SOUND_DOUBLE_BEEP); turn_right1;Wait(nMAX1*STEP); cross_line; nOnline=0; } }