今日から日記を始める。
今日は、プログラミング論の授業と発表だった。
発表はすごく緊張した。
たくさんの人に対して話すというのは苦手だ。
一対一だったら、平気なんだけれど。
自分のほか2人の面倒も見ているから、発表までの2週間は心配でたまらなかった。
自分を含めて3人、無事発表が終わって何より。
課題の内容は、ロボットが障害物を認識して避けながらがらゴールまで行き、
帰ってくるというもの。
最初は障害物がどこにあるか分からないという条件だったが、
障害物の座標が分かってよいという条件に緩和された。
でもそれって、種の分かっている手品みたいなものじゃないのか?
しかし、今の授業のスピードで何人課題を完成させることが出来るだろうか?
興味津々。
この課題を通して分かったことだがC#は遅いな。
getpixel、setpixelで画像の情報を取得していたが遅すぎてやめた。
unsafeでメモリの内容をいじったがそれでも遅い。
しゃーないからCで書いた。課題はC#で発表しなきゃいけないんだけど。
________________________________________________________________________________

for (;;){ /*ループ*/                                                                                                                                      
     for (sy = 0; sy <= 190; sy += 10){ /*y軸190ドットまで*/            
          for (sx = 0; sx <= 310; sx += 10){ /*x軸320ドットまで*/
               if (0 == color_research(hardinfo->vram, DARKBLUE, sx, sy)){ /*もし進める色なら*/
                  draw_square(hardinfo->vram, LIGHTYELLOW, sx, sy); /*調べた所にロボットを               
	     timer();                                           進める(黄で描画する) */ 
                  draw_square(hardinfo->vram, LIGHTRED, sx, sy); /*自分の居る所を赤で塗る*/
               }
               else { /*そうでなければ(進める色でなければ)*/
	  sx += 20; /*x軸方向に20ドットずらす(障害物をよける)*/
               }
          }
     }
}

int color_research(unsigned char *vram, unsigned char color, int startx, int starty)
{
       char colortype;
       int x, y;

       for (y = starty; y <= starty+9; y++){
	  for (x = startx; x <= startx+9; x++){
	      colortype = vram[ y * 320+ x ];
	      if(color != colortype)
	      return -1;	               
	  }				
       }
       return 0;
}

void timer()
{
       int time;

       for (time = 0; time <= 50000; time++){
	  cpu_nop();
       }
       return;
}

ださいコードだ・・・
プログラミングがんばろう。
明日、休みだし・・・