int ready=0; int command=0; #define right OUT_C #define left OUT_A #define effector OUT_B #define debug false task main() { start getmessages; while (true) { if (command%3==0) { Off(effector); if (debug) {PlaySound(5);} } if (command%3==1) { OnFwd(effector); if (debug) {PlaySound(5);} } if (command%3==2) { OnRev(effector); if (debug) {PlaySound(5);} } if (command/3==0) { Off(right+left); if (debug) {PlaySound(0);} } if (command/3==1) { SetPower(right+left,7); OnFwd(right+left); if (debug) {PlaySound(1);} } if (command/3==2) { SetPower(right+left,7); OnRev(right+left); if (debug) {PlaySound(2);} } if (command/3==3) { SetPower(right+left,0); OnFwd(right); OnRev(left); if (debug) {PlaySound(3);} } if (command/3==4) { SetPower(right+left,0); OnFwd(left); OnRev(right); if (debug) {PlaySound(4);} } } } task getmessages() { while (Message()!=0) {ClearMessage();} while (true) { until (Message()!=0); if (ready==1) { command=(Message()-1)%15; ClearMessage(); ready=0; } else { ClearMessage(); ready=1; } } }