俺に名前は必要ない。なぜなら羽田空港のビルだからだ。
しかも二番目の存在。だが、俺はそれでもいいと思っている。
自分の地位も名誉も、名前同様俺には必要ない。
俺に必要なのはエビフライだ。

 #define blackline 40
 #define TURN_TIME 200
 #define GO_TIME 200
 sub go(){
 OnFwd (OUT_A+OUT_C); 
 }
 sub back(){
 OnRev (OUT_A+OUT_C);
 }
 sub turn_R(){
 OnFwd (OUT_A+OUT_C);Wait(050);
 OnRev (OUT_C);Wait(200);Off(OUT_A+OUT_C);
 }
 sub turn_L(){
 OnFwd (OUT_C+OUT_A);Wait(050);
 OnRev (OUT_A);Wait(200);Off(OUT_A+OUT_C);
 }
 sub hold_can(){
 OnFwd(OUT_B);Wait(150);Off(OUT_B);
 }  
 sub part_can(){
 OnRev(OUT_B);Wait(150);Off(OUT_B);
 }
 task main(){
 SetSensor (SENSOR_1, SENSOR_LIGHT);
 SetSensor (SENSOR_3, SENSOR_LIGHT);
 
 while(true){
 hold_can();
 back();
 if((SENSOR_1<=blackline)&&(SENSOR_3>=blackline)){//ここの部分を読んでくれないみたいだ…。以下untilまで読みません!!このほかのif群も読んでくれないや(≧∀≦)
 OnFwd (OUT_A);OnRev (OUT_C);Wait(10);//
 }else{//
 back();//
 }//
 if((SENSOR_1>=blackline)&&(SENSOR_3<=blackline)){//
 OnFwd (OUT_C);OnRev (OUT_A);Wait(10);//
 }else{//
 back();//
 }//
 until((SENSOR_1<=blackline)&&(SENSOR_3<=blackline));
 back();
 until((SENSOR_1>=blackline)&&(SENSOR_3>=blackline));
 back();
 if((SENSOR_1<=blackline)&&(SENSOR_3>=blackline)){
 OnFwd (OUT_A);OnRev (OUT_C);Wait(10);
 }else{
 back();
 }
 if((SENSOR_1>=blackline)&&(SENSOR_3<=blackline)){
 OnFwd (OUT_C);OnRev (OUT_A);Wait(10);
 }else{
 back();
 }
 until((SENSOR_1<=blackline)&&(SENSOR_3<=blackline));
 back();
 until((SENSOR_1>=blackline)&&(SENSOR_3>=blackline));
 turn_R();
 go();
 if ((SENSOR_1<=blackline)&&(SENSOR_3>=blackline)){
   OnFwd (OUT_C);OnRev (OUT_A);Wait(10);
 }else{
 go();
 }
 if ((SENSOR_1>=blackline)&&(SENSOR_3<=blackline)){
   OnFwd (OUT_A);OnRev (OUT_C);Wait(10);
 }else{
 go();
 }
 until((SENSOR_1<=blackline)&&(SENSOR_3<=blackline));
 go();
 until((SENSOR_1>=blackline)&&(SENSOR_3>=blackline));
 go();
 until((SENSOR_1<=blackline)&&(SENSOR_3<=blackline));
 turn_R();
 part_can();
 go();Wait(300);
 }
 }

 
 #define blackline 30
 #define timer 100
 #define Go_time 200
 int frag;
 sub linetrace (){
 if ((SENSOR_1 <= blackline) && (SENSOR_3 <= blackline)){
   OnFwd(OUT_A + OUT_C);
   Wait(020);
   Wait(030);
   frag++;
 }
 if ((SENSOR_1 <= blackline) && (SENSOR_3 >= blackline)){
     OnFwd (OUT_C);OnRev (OUT_A);
 else{
   if ((SENSOR_1 <= blackline) && (SENSOR_3 >= blackline)){
     OnRev(OUT_A);OnFwd(OUT_C);
   }
   if ((SENSOR_1 >= blackline) && (SENSOR_3 <= blackline)){
     OnFwd(OUT_C);OnRev(OUT_A);
   }
   if ((SENSOR_1 >= blackline) && (SENSOR_3 >= blackline)){
     OnFwd(OUT_A + OUT_C);
   }
  }
 }
 if ((SENSOR_1 >= blackline) && (SENSOR_3 <= blackline)){
     OnFwd (OUT_A);OnRev (OUT_C);
 }
 if ((SENSOR_1 >= blackline) && (SENSOR_3 >= blackline)){
     OnFwd (OUT_A + OUT_C);
 }
 }
 }
 sub hold_can (){
 OnFwd (OUT_B);
 Wait (150);
 
 Wait (020);
 OnFwd(OUT_B);
 Wait(150);
 Off(OUT_B);
 OnRev(OUT_A+OUT_C);
 Wait(timer+150);
 OnRev(OUT_A+OUT_B);
 Wait(Go_time+300);
 }
 sub port_can (){
 OnRev (OUT_B);
 Wait (300);
 Off (OUT_B);
 OnFwd(OUT_A+OUT+C);
 Wait(timer+100);
 OnRev(OUT_B);
 Wait (250);
 Off(OUT_B);
 OnFwd (OUT_A+OUT_C);
 Wait (040);
 Off (OUT_A+OUT_C);
 }
 sub go_straight (){
 OnFwd (OUT_A+OUT_C);
 }
 sub go_down (){
 OnRev (OUT_A+OUT_C);
 }
 sub turn_R (){
 Off (OUT_A + OUT_C);OnRev (OUT_A+OUT_C);Wait (007);OnFwd(OUT_A);Wait (080);Off (OUT_A+OUT_C);
 Off (OUT_A + OUT_C);OnRev (OUT_A+OUT_C);Wait (030);OnFwd (OUT_A);Wait (150);Off (OUT_A+OUT_C);
 }
 sub turn_L (){
 Off (OUT_A + OUT_C);OnRev (OUT_C+OUT_A);Wait (007);OnFwd(OUT_C);Wait (080);Off (OUT_A+OUT_C);
 Off (OUT_A + OUT_C);OnRev (OUT_C+OUT_A);Wait (030);OnFwd(OUT_C);Wait (150);Off (OUT_A+OUT_C);
 }
 task main(){
 SetSensor (SENSOR_1, SENSOR_LIGHT);
 SetSensor (SENSOR_3, SENSOR_LIGHT);
 frag=0;
 while (true){
     if (frag == 0){
     hold_can ();  
     linetrace ();
       hold_can();
       go_down ();
       until((SENSOR_1<=blackline)&&(SENSOR_3<=blackline));
       OnFwd(OUT_A);OnRev(OUT_C);
       until((SENSOR_1<=blackline)&&(SENSOR_3>=blackline));
       linetrace();
     }
     if (frag == 1 || 3 || 4 || 6){
     linetrace ();
     if (frag == 1){
       linetrace();
     }
     if (frag == 2){
       turn_R ();
       frag = 3;
       OnFwd(OUT_A);OnRev(OUT_C);
       until((SENSOR_1<=blackline)&&(SENSOR_3>=blackline));
       linetrace();
     }
     if (frag == 5){
       turn_L ();
       frag = 6;
     if (frag == 3){
       port_can();
       frag=0;
     }
     if (frag == 7){
         turn_R ();
         port_can ();
         frag = 0;
     }
   }
 }



トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS