- 追加された行はこの色です。
- 削除された行はこの色です。
[[2017a/Member]]
#define go_straight OnFwd(OUT_AC); Wait(25); Off(OUT_AC); //交差点直進
#define cross_right Off(OUT_AC); Wait(3); OnFwd(OUT_A ); //右折
#define turn_right Off(OUT_AC); Wait(3); \
OnFwd(OUT_A); OnRev(OUT_C); ClearTimer(0); //右回転
#define right_angle OnFwd(OUT_AC); Wait(25); \
Off(OUT_AC); OnFwd(OUT_A); OnRev(OUT_C); Wait(52); Off(OUT_AC); //右回転(直角)
#define cross_left Off(OUT_AC); Wait(3); OnFwd(OUT_C); //左折
#define turn_left Off(OUT_AC); Wait(3); \
OnFwd(OUT_C); OnRev(OUT_A); //左回転
#define left_angle OnFwd(OUT_AC); Wait(25); Off(OUT_AC);\
OnFwd(OUT_C); OnRev(OUT_A); Wait(77); Off(OUT_AC); //右回転(直角)
task main(){
SetPower(OUT_AC,5);
SetSensor(SENSOR_2,SENSOR_LIGHT);
int a=0;
while( a < 5 ){
if(SENSOR_2 >= 50){
turn_left;
} else if(SENSOR_2 >= 45 ){
cross_left;
} else if(SENSOR_2 >= 37 ){
cross_right;
} else if(SENSOR_2 >= 30 ){
turn_right;
a++;
}
} //ここまでE
PlaySound(SOUND_UP);
right_angle;
int b=0;
while( b < 4 ){
if(SENSOR_2 >= 50){
turn_left;
} else if(SENSOR_2 >= 45 ){
cross_left;
} else if(SENSOR_2 >= 40 ){
cross_right;
} else if(SENSOR_2 >= 30 ){
turn_right;
b++;
}
} //ここまでP
Off(OUT_AC);
Wait(100);
PlaySound(SOUND_DOWN);
left_angle;
int c=0;
while( c < 4 ){
if(SENSOR_2 >= 50){
turn_right;
} else if(SENSOR_2 >= 45 ){
cross_right;
} else if(SENSOR_2 >= 40 ){
cross_left;
} else if(SENSOR_2 >= 30 ){
turn_left;
c++;
}
} //ここまでQ
go_straight;
int d=0;
while( d < 4 ){
if(SENSOR_2 >= 50){
turn_right;
} else if(SENSOR_2 >= 45 ){
cross_right;
} else if(SENSOR_2 >= 40 ){
cross_left;
} else if(SENSOR_2 >= 30 ){
turn_left;
d++;
}
} //ここまでR
go_straight;
int e=0;
while( e < 5 ){
if(SENSOR_2 >= 50){
turn_left;
} else if(SENSOR_2 >= 45 ){
cross_left;
} else if(SENSOR_2 >= 37 ){
cross_light;
} else if(SENSOR_2 >= 30 ){
turn_right;
e++;
}
} //ここまでT
PlaySound(SOUND_DOWN);
go_straight;
int f=0;
while( f < 6 ){
if(SENSOR_2 >= 50){
turn_left;
} else if(SENSOR_2 >= 45 ){
cross_left;
} else if(SENSOR_2 >= 37 ){
cross_right;
} else if(SENSOR_2 >= 30 ){
turn_right;
f++;
}
} //一周してTに戻る
PlaySound(SOUND_DOWN);
go_straight;
int g=0;
while( g < 11 ){
if(SENSOR_2 >= 50){
turn_left;
} else if(SENSOR_2 >= 45 ){
cross_left;
} else if(SENSOR_2 >= 37 ){
cross_right;
} else if(SENSOR_2 >= 30 ){
turn_right;
g++;
}
} //ここまでH
PlaySound(SOUND_UP);
right_angle;
int h=0;
while( h < 60 ){
if(SENSOR_2 >= 50){
turn_left;
} else if(SENSOR_2 >= 45 ){
cross_left;
} else if(SENSOR_2 >= 37 ){
cross_right;
} else if(SENSOR_2 >= 30 ){
turn_right;
h++;
}
} //ここまでG
PlaySound(SOUND_UP);
right_angle;
int i=0;
while( i < 3 ){
if(SENSOR_2 >= 50){
turn_left;
} else if(SENSOR_2 >= 45 ){
cross_left;
} else if(SENSOR_2 >= 37 ){
cross_right;
} else if(SENSOR_2 >= 30 ){
turn_right;
i++;
}
} //ここまでS
PlaySound(SOUND_DOWN);
Off(OUT_AC);
Wait(100);
left_angle;
int j=0;
while( j < 4 ){
if(SENSOR_2 >= 50){
turn_right;
} else if(SENSOR_2 >= 45 ){
cross_right;
} else if(SENSOR_2 >= 40 ){
cross_left;
} else if(SENSOR_2 >= 30 ){
turn_left;
j++;
}
} //ここまでP
PlaySound(SOUND_UP);
go_straight;
int k=0;
while( k < 4 ){
if(SENSOR_2 >= 50){
turn_right;
} else if(SENSOR_2 >= 45 ){
cross_right;
} else if(SENSOR_2 >= 40 ){
cross_left;
} else if(SENSOR_2 >= 30 ){
turn_left;
k++;
}
} //ここまでQ
PlaySound(SOUND_UP);
go_straight;
int l=0;
while( l < 5 ){
if(SENSOR_2 >= 50){
turn_left;
} else if(SENSOR_2 >= 45 ){
cross_left;
} else if(SENSOR_2 >= 37 ){
cross_right;
} else if(SENSOR_2 >= 30 ){
turn_right;
l++;
}
} //ここまでF
PlaySound(SOUND_UP);
right_angle;
int m=0;
while( m < 10 ){
if(SENSOR_2 >= 50){
turn_left;
} else if(SENSOR_2 >= 45 ){
cross_left;
} else if(SENSOR_2 >= 37){
cross_right;
} else if(SENSOR_2 >= 30 ){
turn_right;
m++;
}
} //スタート地点に戻る
Off(OUT_AC);
PlaySound(SOUND_DOWN);
} //停止して終了