2005/B7/プログラム
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#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 45
int i
sub trace()
{
while(true)
{
if(SENSOR_1 < THRESHOLD)
{
usetu;
}
else if(SENSOR_2 < THRESHOLD)
{
sasetu;
}
else
{
zennsin;
}
}
}
task main()
{
SetSensor(SENSOR_1, SENSOR_LIGHT);//migi
SetSensor(SENSOR_2, SENSOR_LIGHT);//hidari
SetSensor(SENSOR_3, SENSOR_LIGHT);//haguremono
ClearMessage();
ClearTimer(0);
kousin; Wait();
teisi;
torikomi; Wait();
teisi;
zennsin;Wait();
usetu;Wait(120);
zennsin;Wait(120);
usetu;Wait(120);
zennsin;
until(SENSOR_2 < THRESHOLD);
{
trace();
}
if(SENSOR_3 < THRESHOLD)
{
teisi;
while(Timer(0) <= 10)
{
SendMessage(10);
}
}
until(message() != 0);
if(Message() == 1)
{
usetu;Wait();
zennsin;Wait();
teisi;
hakidasi;Wait();
sasetu;Wait();
zennsin;
until(SENSOR_2 < THRESHOLD);
{
trace();
if(SENSOR_3 <= THRESHOLD )
{
i++;
}
if(i==2)
{
teisi;
}
}
}
if(Message() == 2)
{
trace;
if(SENSOR_3 <= THRESHOLD )
{
i++;
}
until(i=1);
usetu;Wait();
zennsin;Wait();
teisi;
hakidasi;Wait();
sasetu;Wait();
zennsin;
until(SENSOR_2 < THRESHOLD);
{
trace();
if(SENSOR_3 <= THRESHOLD )
{
i++;
}
if(i==3)
{
teisi;
}
}
}
if(Message() == 3)
{
trace;
if(SENSOR_3 <= THRESHOLD )
{
i++;
}
until(i=2);
usetu;Wait();
zennsin;Wait();
teisi;
hakidasi;Wait();
kousin;Wait();
sasetu;Wait();
zennsin;
until(SENSOR_2 < THRESHOLD);
{
trace();
if(SENSOR_3 <= THRESHOLD )
{
i++;
}
if(i==4)
{
teisi;
}
}
}
usetu;Wait();
trace;Wait();
sasetu;Wait();
終了行:
#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 45
int i
sub trace()
{
while(true)
{
if(SENSOR_1 < THRESHOLD)
{
usetu;
}
else if(SENSOR_2 < THRESHOLD)
{
sasetu;
}
else
{
zennsin;
}
}
}
task main()
{
SetSensor(SENSOR_1, SENSOR_LIGHT);//migi
SetSensor(SENSOR_2, SENSOR_LIGHT);//hidari
SetSensor(SENSOR_3, SENSOR_LIGHT);//haguremono
ClearMessage();
ClearTimer(0);
kousin; Wait();
teisi;
torikomi; Wait();
teisi;
zennsin;Wait();
usetu;Wait(120);
zennsin;Wait(120);
usetu;Wait(120);
zennsin;
until(SENSOR_2 < THRESHOLD);
{
trace();
}
if(SENSOR_3 < THRESHOLD)
{
teisi;
while(Timer(0) <= 10)
{
SendMessage(10);
}
}
until(message() != 0);
if(Message() == 1)
{
usetu;Wait();
zennsin;Wait();
teisi;
hakidasi;Wait();
sasetu;Wait();
zennsin;
until(SENSOR_2 < THRESHOLD);
{
trace();
if(SENSOR_3 <= THRESHOLD )
{
i++;
}
if(i==2)
{
teisi;
}
}
}
if(Message() == 2)
{
trace;
if(SENSOR_3 <= THRESHOLD )
{
i++;
}
until(i=1);
usetu;Wait();
zennsin;Wait();
teisi;
hakidasi;Wait();
sasetu;Wait();
zennsin;
until(SENSOR_2 < THRESHOLD);
{
trace();
if(SENSOR_3 <= THRESHOLD )
{
i++;
}
if(i==3)
{
teisi;
}
}
}
if(Message() == 3)
{
trace;
if(SENSOR_3 <= THRESHOLD )
{
i++;
}
until(i=2);
usetu;Wait();
zennsin;Wait();
teisi;
hakidasi;Wait();
kousin;Wait();
sasetu;Wait();
zennsin;
until(SENSOR_2 < THRESHOLD);
{
trace();
if(SENSOR_3 <= THRESHOLD )
{
i++;
}
if(i==4)
{
teisi;
}
}
}
usetu;Wait();
trace;Wait();
sasetu;Wait();
ページ名: