[[2004/C7/メンバー紹介]]

み〜た〜なぁ





 #define GREEN_LINE 42 //緑の線は42以下 
 #define BLACK_LINE 37 //黒の線は37以下
 #define WHITE 44 //白の紙は44以上
 int back_time; //下がる時間の関数定義
 sub turn1()
{
 OnFwd(OUT_A); OnRev(OUT_C); Wait(125);
 Off(OUT_A+OUT_C);
} //Uターンの定義
 sub turn_left()
 {
 OnFwd(OUT_C);
 OnRev(OUT_A);
 Wait(65);
 Off(OUT_A+OUT_C);
 } //左回り
 sub turn_right()
 {
 OnFwd(OUT_A);
 OnRev(OUT_C);
 Wait(65);
 Off(OUT_A+OUT_C);
 } //右回り
 
task main()
{
 SetSensor(SENSOR_3,SENSOR_TOUCH);
 SetSensor(SENSOR_2,SENSOR_LIGHT);
 SetSensor(SENSOR_1,SENSOR_LIGHT);
 back_time=500;
 
 
 OnFwd(OUT_A+OUT_C);
 Wait(40); //前から落下
 turn_left(); //すかさず左
 OnFwd(OUT_A+OUT_C);
 until(SENSOR_1<GREEN_LINE); //緑線まで前進
 OnFwd(OUT_A);
 OnRev(OUT_C);
 Wait(10);
 while(SENSOR_1>BLACK_LINE){
  if(BLACK_LINE<SENSOR_1<GREEN_LINE){
  OnFwd(OUT_A);
  OnRev(OUT_C);
  }
  if(SENSOR_1>WHITE){
  OnFwd(OUT_C);
  OnRev(OUT_A);
  }
 }
 
 Off(OUT_A+OUT_C);

 OnFwd(OUT_A);
 OnRev(OUT_C);
 Wait(10);

 while((SENSOR_1<BLACK_LINE)||(SENSOR_1>WHITE)){
  if(SENSOR_1<BLACK_LINE){
  OnFwd(OUT_A);
  OnRev(OUT_C);
  }
  if(SENSOR_1>WHITE){
  OnFwd(OUT_C);
  OnRev(OUT_A);
  }
 }
 
 repeat(2){
 while(SENSOR_1<BLACK_LINE){
  if(BLACK_LINE<SENSOR_1<GREEN_LINE){
  OnFwd(OUT_C);
  OnRev(OUT_A);
  }
  if(SENSOR_1>WHITE){
  OnFwd(OUT_A);
  OnRev(OUT_C);
  }
  }
 OnFwd(OUT_A+OUT_C); 
 Wait(50);
 }

 OnFwd(OUT_A+OUT_C); 
 until(SENSOR_2<BLACK_LINE);
 Off(OUT_A+OUT_C);

 OnRev(OUT_A+OUT_C);
 Wait(back_time);//通信しながらバックさせる予定
 turn_right();

 OnFwd(OUT_A+OUT_C);
 Wait(300); //右旋回して前進
 turn1(); //方向転換
 OnFwd(OUT_A+OUT_C);
 Wait(250);


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