*プログラム[#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){//急カーブ用プログラム
       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;
      } 
 
    go_forward;Wait(1800);//タイミングを見計らって、交差点に関係なく直進
   
 
    while(CurrentTick()-t0<MOVE_TIME1){//急カーブ用プログラム
       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;
       turn_right1;Wait(nMAX1*STEP);
       cross_line;
       nOnline=0;
    }     
 }//MOVETIME1+2以内にゴールイン

*反省 [#z50d13f3]
+直角を攻略するプログラムが必要のないコースになってしまった。
+やむを得ず、交差点を無視して通り過ぎることになってしまった。
+パートナーとの会う時間を設けるのが難しかった。
+特定されたコースしか攻略できないプログラムになってしまった。
-直角を攻略するプログラムが必要のないコースになってしまった。
-やむを得ず、交差点を無視して通り過ぎることになってしまった。
-パートナーとの会う時間を設けるのが難しかった。
-特定されたコースしか攻略できないプログラムになってしまった。

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS