[[2011a]]


#contents

*メンバー [#qa7b35b8]

hiros

ソースコードの各行の頭にスペースくっつけるプログラム貼っておきます。誰か使いたい方添付ファイルからどうぞ。
 :example
 ./wik < kadai3.rcx

まえだ

*マシン [#gcfccf4d]

*プログラミング [#a6b246f7]

**hiros [#ne5435bf]
 #define WaySensor SENSOR_2
 #define BottomSensor SENSOR_1
 #define TouchSensor SENSOR_3
 #define RIGHT OUT_A
 #define LEFT OUT_C
 #define HAND OUT_B
 #define foundEdgeOrLine  >40
 #define DIS 300
 
 void turnRight(){
      OnFwd (LEFT);
      Rev (RIGHT);
 }
 
 void goStraight(){
      OnFwd (RIGHT+LEFT);
 }
 
 void go_back_and_continue(){
      Off(RIGHT+LEFT);
      Wait (100);
      OnRev(RIGHT);
      OnRev(LEFT);
      Wait (DIS);
      turnRight();
      Wait(60);
      Off(RIGHT+LEFT);
 }
 
 void take(){
      OnRev (HAND);
      Wait(100);
      Off (HAND);
 }
 void release(){
      OnFwd (HAND);
      Wait (100);
      Off (HAND);
 }
 
 task main (){
      SetSensor (BottomSensor, SENSOR_LIGHT);
      SetSensor (WaySensor, SENSOR_LIGHT);
      SetSensor (TouchSensor, SENSOR_TOUCH);
      
      
      while (1) {
        goStraight();
        if (TouchSensor){
 	 Off(RIGHT+LEFT);
 	 Wait (100);
 	 PlaySound(SOUND_CLICK);
 	 take();
 	 PlaySound(SOUND_DOWN);
 	 int max = 0;
 	 // destination
 	 while (1){
 	   turnRight();
 	   if (WaySensor < max) break;
 	   max = WaySensor;
 	 }
 	 
 	 Off (RIGHT+LEFT);
 	 Wait (100);
 	 goStraight();
 	 Wait (DIS);
 	 Off (RIGHT+LEFT);
 	 release();
 	 // goback
 	 go_back_and_continue();
        }
        if (BottomSensor foundEdgeOrLine){
 	 Off(RIGHT+LEFT);
 	 Wait (100);
 	 turnRight();
 	 Wait(30);
 	 Off(RIGHT+LEFT);
 	 Wait(100);
        }
      }
 }


**まえだ [#o24ca303]

 #define BLACKLINE 40
 #define go_straight Fwd(OUT_A+OUT_C);
 #define turn_right OnFwd(OUT_A);OnRev(OUT_C);
 
 sub ball_out()
 {
  OnFwd(OUT_B); Wait(150); Off(OUT_B);
  OnRev(OUT_A+OUT_C); Wait(150); Off(OUT_A+OUT_C);
  OnRev(OUT_B); Wait(150); Off(OUT_B);
  OnFwd(OUT_A+OUT_C); Wait(150); Off(OUT_A+OUT_C);
  OnFwd(OUT_B); Wait(150); Off(OUT_B);
 }
 
 task main()
 {
  SetSensor(SENSOR_1,SENSOR_LIGHT);
  SetSensor(SENSOR_2,SENSOR_LIGHT);
  SetSensor(SENSOR_3,SENSOR_TOUCH);
 
  while(true)
  {
   if(SENSOR_3==0)
   {
    if(SENSOR_1<BLACKLINE)
    {
     go_straight
    }
    else
    {
     turn_right
    }
   }
   else
   {
    PlaySound(SOUND_UP);
    Off(OUT_A+OUT_C); Wait(100);
    OnRev(OUT_B); Wait(150); Off(OUT_B);
 
    int max=0;
    while(true)
    {
     turn_right
     if(SENSOR_2<max)break;
     max=SENSOR_2;
    }
 
    Off(OUT_A+OUT_C); Wait(100);
    PlaySound(SOUND_UP);
    ball_out();
    PlaySound(SOUND_UP);
   }
  }
 }

*考察 [#q3628657]

**hiros [#j9c97717]

**まえだ [#wddf0add]

*感想 [#y553cf8d]

**hiros [#j758eea6]

**まえだ [#ad21c1f6]

*コメント [#i345a6a2]
コメントをお願いします。
- 今日の授業中に借りたテニスボール、借りたままになってしまいました。本当にごめんなさい。どうしたらいいでしょうか? -- [[A8右]] &new{2011-07-15 (金) 18:19:37};

#comment

今日:
&counter(today);

昨日:
&counter(yesterday);

全て:
&counter(all);

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