[[戻る>2005/A6/課題4左]] [[戻る>2005/A6/課題4左]] *一番明るい方向を向くプログラム[#w120b5f1] **タイマーを使ったプログラム [#kebfd614] // 製作日:12月2日 // 製作者:AI int LIGHT_=0; //一番明るいところの値を入れる int TIME_LIGHT=0;//一番明るいところまで回るまでの時間 int RUN_TIME=450;//一回転する時間 task main(){ SetSensor(SENSOR_1, SENSOR_LIGHT); ClearTimer(0); while (FastTimer(0) <= RUN_TIME) { //一回転するまで繰り返す if ( SENSOR_1 > LIGHT_ ) { //もし今まで記録した値より明るかったら LIGHT_ = SENSOR_1 ; //関数にその明るさを記録 TIME_LIGHT = FastTimer(0); //関数にそのときまでの時間を記録 } OnFwd(OUT_A); OnRev(OUT_C); } ClearTimer(0); while (FastTimer(0) <= TIME_LIGHT) {// 一番明るかった場所まで回る OnFwd(OUT_A); OnRev(OUT_C); } Off(OUT_A + OUT_C); } #comment **repeatを使ったプログラム [#gb3de16e] //製作日 12月9日 //製作者 AI int LIGHT_MAX=0; //一番明るいところの値を入れる int TIME_LIGHT=0;//一番明るいところまで回るまで int RUN_TIME;//一回転する時間 int cnt=0;//カウンター task main(){ SetSensor(SENSOR_2, SENSOR_LIGHT); ClearTimer(0); OnFwd(OUT_A); OnRev(OUT_C); repeat(50){ if(SENSOR_2 > LIGHT_MAX){ LIGHT_MAX = SENSOR_2;//一番明るいところの値が入る TIME_LIGHT = cnt;//一番明るいところまでかかった時間が入る } cnt++; Wait(5); } OnFwd(OUT_C); OnRev(OUT_A); RUN_TIME = 250-(TIME_LIGHT-1)*5;//逆回転する時間 Wait(RUN_TIME); Off(OUT_A+OUT_C); } #comment