- 追加された行はこの色です。
- 削除された行はこの色です。
[[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();
}