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

 #define blackline 40
 #define TURN_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){
 ClearMessage();
 until(Message() = 0);
 hold_can();
 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));
 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
 int frag;
 int timer;
 sub linetrace (){
 if ((SENSOR_1 <= blackline) && (SENSOR_2 <= blackline)){
   OnRev(OUT_A + OUT_C);
   Wait(020);
   frag++;
 }
 else{
   if ((SENSOR_1 <= blackline) && (SENSOR_3 >= blackline)){
     OnFwd (OUT_A);OnRev (OUT_C);
   }
   if ((SENSOR_1 >= blackline) && (SENSOR_3 <= blackline)){
     OnFwd (OUT_C);OnRev (OUT_A);
   }
   if ((SENSOR_1 >= blackline) && (SENSOR_3 >= blackline)){
     OnRev (OUT_A + OUT_C);
   }
 }
 }
 sub hold_can (){
 OnFwd (OUT_B);
 Wait (150);
 Off(OUT_B);
 }
 sub port_can (){
 OnRev (OUT_B);
 Wait (250);
 Off (OUT_B);
 }
 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);
 }
 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);
 }
 task main(){
 SetSensor (SENSOR_1, SENSOR_LIGHT);
 SetSensor (SENSOR_3, SENSOR_LIGHT);
 frag=0;
 timer=0;
 while (true){
     if (frag == 0 || 3 || 4 || 7){
       linetrace ();
     }
     if (frag == 1){
       linetrace ();
       ClearTimer (0);
     }
     if (frag == 2){
       timer = FastTimer (0);
       turn_R ();
       frag = 3;
     }
     if (frag == 5){
       turn_L ();
       hold_can ();
       linetrace ();
     }
     if (frag == 6){
       turn_L ();
       frag = 7;
     }
     if (frag == 8){
         turn_R ();
         port_can ();
         frag = 0;
     }
   }

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