[[2005/B7]] int max //saigoni hairuno ha siro no atai int middle //saigoni hairuno ha midori no atai int minimum //saigoni hairuno ha kuro no atai int i_max //nannkome ni siro ga haitta ka int i_middle //nannkome ni midori ga haitta ka int i_minimum //nannkome ni kuro ga haitta ka max = sensor1; //hitotume middle = sensor1; minimum = sensor1; i_max = 1 i_middle =1 i_minimum =1 if(sensor1 > max) { max = sensor1; i_max = 2; middle = sensor1; i_middle = 2; } else { minimum = sensor1; i_minimum = 2; middle = sensor1; i_middle = 2; } if(sensor1 > max) { max = sensor1; i_max = 3; } else if(sensor1 < minimum) { minimum = sensor1; i_minimum = 3; } else { middle = sensor1 i_middle = 3 このプログラムは3つの箱の色を比較、識別してそこからルートの決定につなげるプログラムの一部 このプログラムを使わず、数値域をきめ、判別するプログラムの方が簡単でそれになるかも...。 プログラムとしては上のプログラムの方が面白いと思う ロボコンのプログラム 手前にある箱と奥の箱とではプログラムの最初の後進の時間が違うことに注意! #define zennsin OnFwd(OUT_A + OUT_C);//MIGI GA 'A' #define kousin OnRev(OUT_A+ OUT_C); #define sasetu OnFwd(OUT_A); OnRev(OUT_C); #define usetu OnFwd(OUT_C); OnRev(OUT_A); #define torikomi OnFwd(OUT_B); #define hakidasi OnRev(OUT_B); #define teisi Off(OUT_A + OUT_C); #define THRESHOLD 42 sub trace(SENSOR_3 < THRESHOLD) { while(); if(SENSOR_1 < THRESHOLD) { usetu; } else if(SENSOR_3 < THRESHOLD) { sasetu; } else { zennsin; } } task main() { SetSensor(SENSOR_1, SENSOR_LIGHT);//migi SetSensor(SENSOR_2, SENSOR_LIGHT);//hidari SetSensor(SENSOR_3, SENSOR_LIGHT);//haguremono kousin; Wait(); teisi; torikomi; Wait(); teisi; zennsin;Wait(); usetu; if(SENSOR_2 < THRESHOLD) { trace(); } if(SENSOR_3 < THRESHOLD) { usetu; } if(SENSOR_2 < THRESHOLD) { trace(); }