- 追加された行はこの色です。
- 削除された行はこの色です。
俺に名前は必要ない。なぜなら羽田空港のビルだからだ。
しかも二番目の存在。だが、俺はそれでもいいと思っている。
自分の地位も名誉も、名前同様俺には必要ない。
俺に必要なのはエビフライだ。
#define blackline 40
#define TURN_TIME 200
#define GO_TIME 200
sub go(){
OnFwd (OUT_A+OUT_C);
}
sub back(){
OnRev (OUT_A+OUT_C);
}
sub turn_R(){
OnFwd (OUT_A+OUT_C);Wait(050);
OnRev (OUT_C);Wait(200);Off(OUT_A+OUT_C);
}
sub turn_L(){
OnFwd (OUT_C+OUT_A);Wait(050);
OnRev (OUT_A);Wait(200);Off(OUT_A+OUT_C);
}
sub hold_can(){
OnFwd(OUT_B);Wait(150);Off(OUT_B);
}
sub part_can(){
OnRev(OUT_B);Wait(150);Off(OUT_B);
}
task main(){
SetSensor (SENSOR_1, SENSOR_LIGHT);
SetSensor (SENSOR_3, SENSOR_LIGHT);
while(true){
ClearMessage();
until(Message() = 0);
hold_can();
back();
if((SENSOR_1<=blackline)&&(SENSOR_3>=blackline)){
OnFwd (OUT_A);OnRev (OUT_C);Wait(10);
}else{
back();
}
if((SENSOR_1>=blackline)&&(SENSOR_3<=blackline)){
OnFwd (OUT_C);OnRev (OUT_A);Wait(10);
}else{
back();
}
if((SENSOR_1<=blackline)&&(SENSOR_3>=blackline)){//ここの部分を読んでくれないみたいだ…。以下untilまで読みません!!このほかのif群も読んでくれないや(≧∀≦)
OnFwd (OUT_A);OnRev (OUT_C);Wait(10);//
}else{//
back();//
}//
if((SENSOR_1>=blackline)&&(SENSOR_3<=blackline)){//
OnFwd (OUT_C);OnRev (OUT_A);Wait(10);//
}else{//
back();//
}//
until((SENSOR_1<=blackline)&&(SENSOR_3<=blackline));
back();
until((SENSOR_1>=blackline)&&(SENSOR_3>=blackline));
back();
if((SENSOR_1<=blackline)&&(SENSOR_3>=blackline)){
OnFwd (OUT_A);OnRev (OUT_C);Wait(10);
}else{
back();
}
if((SENSOR_1>=blackline)&&(SENSOR_3<=blackline)){
OnFwd (OUT_C);OnRev (OUT_A);Wait(10);
}else{
back();
}
until((SENSOR_1<=blackline)&&(SENSOR_3<=blackline));
back();
until((SENSOR_1>=blackline)&&(SENSOR_3>=blackline));
turn_R();
go();
if ((SENSOR_1<=blackline)&&(SENSOR_3>=blackline)){
OnFwd (OUT_C);OnRev (OUT_A);Wait(10);
}else{
go();
}
if ((SENSOR_1>=blackline)&&(SENSOR_3<=blackline)){
OnFwd (OUT_A);OnRev (OUT_C);Wait(10);
}else{
go();
}
until((SENSOR_1<=blackline)&&(SENSOR_3<=blackline));
go();
until((SENSOR_1>=blackline)&&(SENSOR_3>=blackline));
go();
until((SENSOR_1<=blackline)&&(SENSOR_3<=blackline));
turn_R();
part_can();
go();Wait(300);
}
}
#define blackline 30
#define timer 100
int frag;
int timer;
sub linetrace (){
if ((SENSOR_1 <= blackline) && (SENSOR_2 <= blackline)){
OnRev(OUT_A + OUT_C);
if ((SENSOR_1 <= blackline) && (SENSOR_3 <= blackline)){
OnFwd(OUT_A + OUT_C);
Wait(020);
frag++;
}
else{
if ((SENSOR_1 <= blackline) && (SENSOR_3 >= blackline)){
OnFwd (OUT_A);OnRev (OUT_C);
}
if ((SENSOR_1 >= blackline) && (SENSOR_3 <= blackline)){
if ((SENSOR_1 <= blackline) && (SENSOR_3 >= blackline)){
OnFwd (OUT_C);OnRev (OUT_A);
}
if ((SENSOR_1 >= blackline) && (SENSOR_3 >= blackline)){
OnRev (OUT_A + OUT_C);
}
}
if ((SENSOR_1 >= blackline) && (SENSOR_3 <= blackline)){
OnFwd (OUT_A);OnRev (OUT_C);
}
if ((SENSOR_1 >= blackline) && (SENSOR_3 >= blackline)){
OnFwd (OUT_A + OUT_C);
}
}
}
sub hold_can (){
OnFwd (OUT_B);
Wait (150);
Off(OUT_B);
OnRev(OUT_A+OUT_C);
Wait(timer+150);
}
sub port_can (){
OnRev (OUT_B);
Wait (250);
Wait (300);
Off (OUT_B);
OnFwd(OUT_A+OUT+C);
Wait(timer+100);
}
sub go_straight (){
OnFwd (OUT_A+OUT_C);
}
sub go_down (){
OnRev (OUT_A+OUT_C);
}
sub turn_R (){
Off (OUT_A + OUT_C);OnRev (OUT_A+OUT_C);Wait (007);OnFwd(OUT_A);Wait (080);Off (OUT_A+OUT_C);
}
sub turn_L (){
Off (OUT_A + OUT_C);OnRev (OUT_C+OUT_A);Wait (007);OnFwd(OUT_C);Wait (080);Off (OUT_A+OUT_C);
}
task main(){
SetSensor (SENSOR_1, SENSOR_LIGHT);
SetSensor (SENSOR_3, SENSOR_LIGHT);
frag=0;
timer=0;
while (true){
if (frag == 0 || 3 || 4 || 7){
linetrace ();
if (frag == 0){
hold_can ();
linetrace ();
}
if (frag == 1){
linetrace ();
ClearTimer (0);
if (frag == 1 || 3 || 4 || 6){
linetrace ();
}
if (frag == 2){
timer = FastTimer (0);
turn_R ();
frag = 3;
}
if (frag == 5){
turn_L ();
hold_can ();
linetrace ();
frag = 6;
}
if (frag == 6){
turn_L ();
frag = 7;
}
if (frag == 8){
if (frag == 7){
turn_R ();
port_can ();
frag = 0;
}
}
}