アーム

#define ARM_TIME 35

#define UP_TIME 35

task main(){

SetSensor(SENSOR_1,SENSOR_TOUCH); SetSensor(SENSOR_3,SENSOR_TOUCH); while(true){

 ClearMessage();
if((SENSOR_1==1)&&(SENSOR_3==1))
 {SendMessage(2);
  OnFwd(OUT_A); Wait(ARM_TIME); 
  OnFwd(OUT_C); Wait(UP_TIME);Off(OUT_A+OUT_C);}
if( (SENSOR_3==1))
 {SendMessage(1);
  OnFwd(OUT_A); Wait(ARM_TIME); 
  OnFwd(OUT_C); Wait(UP_TIME);Off(OUT_A+OUT_C);}
if(Message()==3){OnRev(OUT_C); Wait(35); 
               OnRev(OUT_A); Wait(40);Off(OUT_A+OUT_C);}
}

}

#define line_h_l while (Timer(0) <= 260) {if(SENSOR_1<42){OnFwd?(OUT_A); OnRev?(OUT_C); Wait(10);} if(SENSOR_2<42){OnFwd?(OUT_C); OnRev?(OUT_A); Wait(10);} else{OnFwd?(OUT_C+OUT_A); Wait(10);} if*1{OnFwd?(OUT_C); OnRev?(OUT_A); Wait(40); }}

#define line_k_r while (Timer(0) <= 260) {if(SENSOR_1<42){OnFwd?(OUT_A); OnRev?(OUT_C); Wait(10);} if(SENSOR_2<42){OnFwd?(OUT_C); OnRev?(OUT_A); Wait(10);} else{OnFwd?(OUT_C+OUT_A); Wait(10);} if*2{OnFwd?(OUT_A); OnRev?(OUT_C); Wait(40); }}

#define line_h_r_1 while (Timer(0) <= 200) {if(SENSOR_1<42){OnFwd?(OUT_A); OnRev?(OUT_C); Wait(10);} if(SENSOR_2<42){OnFwd?(OUT_C); OnRev?(OUT_A); Wait(10);} else{OnFwd?(OUT_C+OUT_A); Wait(10);} if*3{OnFwd?(OUT_C); OnRev?(OUT_A); Wait(40); }}

#define line_h_r_2 while (Timer(1) <= 70) {if(SENSOR_1<42){OnFwd?(OUT_A); OnRev?(OUT_C); Wait(10);} if(SENSOR_2<42){OnFwd?(OUT_C); OnRev?(OUT_A); Wait(10);} else{OnFwd?(OUT_C+OUT_A); Wait(10);} if*4{OnFwd?(OUT_A); OnRev?(OUT_C); Wait(40); }}

#define line_k_l_1 while (Timer(0) <= 200) {if(SENSOR_1<42){OnFwd?(OUT_A); OnRev?(OUT_C); Wait(10);} if(SENSOR_2<42){OnFwd?(OUT_C); OnRev?(OUT_A); Wait(10);} else{OnFwd?(OUT_C+OUT_A); Wait(10);} if*5{OnFwd?(OUT_C); OnRev?(OUT_A); Wait(40); }}

#define line_k_l_2 while (Timer(1) <= 70) {if(SENSOR_1<42){OnFwd?(OUT_A); OnRev?(OUT_C); Wait(10);} if(SENSOR_2<42){OnFwd?(OUT_C); OnRev?(OUT_A); Wait(10);} else{OnFwd?(OUT_C+OUT_A); Wait(10);} if*6{OnFwd?(OUT_A); OnRev?(OUT_C); Wait(40); }}

int i; int turn_time;

task hako_l() {

SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_2,SENSOR_LIGHT);
while(true){
 ClearMessage();
 ClearTimer(0);

  Off(OUT_A+OUT_C); Wait(400); OnRev(OUT_A+OUT_C); Wait(50);
  OnFwd(OUT_C); OnRev(OUT_A); 
  Wait(200); OnFwd(OUT_A+OUT_C); Wait(20);
  line_h_l; SendMessage(3); 
  Float(OUT_A+OUT_C); Wait(400); OnRev(OUT_A+OUT_C); Wait(50);
  OnFwd(OUT_A); OnRev(OUT_C); Wait(190);  OnFwd(OUT_A+OUT_C); Wait(300);
  Off(OUT_A+OUT_C);} }

task hako_r() {

SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_2,SENSOR_LIGHT);
while(true){
 ClearMessage();
 ClearTimer(0);
 ClearTimer(1);

  Off(OUT_A+OUT_C); Wait(400); OnRev(OUT_A+OUT_C); Wait(50);
  OnFwd(OUT_C); OnRev(OUT_A); 
  Wait(200); OnFwd(OUT_A+OUT_C); Wait(20);
  line_h_r_1; line_h_r_2;SendMessage(3); 
  Float(OUT_A+OUT_C); Wait(400); OnRev(OUT_A+OUT_C); Wait(50);
  OnFwd(OUT_A); OnRev(OUT_C); Wait(190);  OnFwd(OUT_A+OUT_C); Wait(300);
  Off(OUT_A+OUT_C);} }
  

task kann_r() {

SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_2,SENSOR_LIGHT);
while(true){
 ClearMessage();
 ClearTimer(0);

  Off(OUT_A+OUT_C); Wait(400); OnRev(OUT_A+OUT_C); Wait(50);
  OnFwd(OUT_A); OnRev(OUT_C); 
  Wait(200); OnFwd(OUT_A+OUT_C); Wait(20);
  line_k_r; SendMessage(3); 
  Float(OUT_A+OUT_C); Wait(400); OnRev(OUT_A+OUT_C); Wait(50);
  OnFwd(OUT_C); OnRev(OUT_A); Wait(200);  OnFwd(OUT_A+OUT_C); Wait(450);
  Off(OUT_A+OUT_C);} }
  

task kann_l() {

SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_2,SENSOR_LIGHT);
while(true){
 ClearMessage();
 ClearTimer(0);

  Off(OUT_A+OUT_C); Wait(400); OnRev(OUT_A+OUT_C); Wait(50);
  OnFwd(OUT_A); OnRev(OUT_C); 
  Wait(200); OnFwd(OUT_A+OUT_C); Wait(20);
  line_k_l_1; line_k_l_2; SendMessage(3); 
  Float(OUT_A+OUT_C); Wait(400); OnRev(OUT_A+OUT_C); Wait(50);
  OnFwd(OUT_C); OnRev(OUT_A); Wait(200);  OnFwd(OUT_A+OUT_C); Wait(450);
  Off(OUT_A+OUT_C);} }
  

task main() {

SetSensor(SENSOR_1,SENSOR_LIGHT);
SetSensor(SENSOR_2,SENSOR_LIGHT);

turn_time=20;
i=0;

while(true){

 ClearMessage();
 ClearTimer(0);

OnFwd(OUT_A+OUT_C);until(Message()!=0); 

if((Message()==1)&&((i==1)||(i==3)||(i==5)||(i==7))) 
{start hako_l;}

if((Message()==1)&&((i==0)||(i==2)||(i==4)||(i==6)))
{start hako_r;}

if((Message()==2)&&((i==1)||(i==3)||(i==5)||(i==7))) 
{start kann_r;}

if((Message()==2)&&((i==0)||(i==2)||(i==4)||(i==6)))
{start kann_l;}
 
else{while(Message()!=0){OnFwd(OUT_A+OUT_C); Wait(55); 
  OnRev(OUT_A+OUT_C); Wait(50);
  OnFwd(OUT_A); OnRev(OUT_C); Wait(turn_time); 
  turn_time =turn_time+10; i=i+1;
  OnFwd(OUT_A+OUT_C); Wait(55); OnRev(OUT_A+OUT_C); Wait(50);
  OnFwd(OUT_C); OnRev(OUT_A); Wait(turn_time);
  turn_time =turn_time+10;}
   }
 } 

}


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-02-08 (木) 13:32:27 (4575d)