// Large Killough Platform #define POWER 9 #define DEG90 50 #define TRANS 100 void DriveForward( int time ){ SetPower( OUT_A + OUT_B + OUT_C, POWER ); SetDirection( OUT_B , OUT_FWD ); SetDirection( OUT_C , OUT_REV ); OnFor( OUT_B + OUT_C , time ); } void DriveReverse( int time ){ SetPower( OUT_A + OUT_B + OUT_C, POWER ); SetDirection( OUT_B , OUT_REV ); SetDirection( OUT_C , OUT_FWD ); OnFor( OUT_B + OUT_C , time ); } void RotateLeft( int time ){ SetPower( OUT_A + OUT_B + OUT_C, POWER ); SetDirection( OUT_A + OUT_B + OUT_C , OUT_REV ); OnFor( OUT_A + OUT_B + OUT_C , time ); } void RotateRight( int time ){ SetPower( OUT_A + OUT_B + OUT_C, POWER ); SetDirection( OUT_A + OUT_B + OUT_C , OUT_FWD ); OnFor( OUT_A + OUT_B + OUT_C , time ); } void PulseDriveRight( int on, int off, int times ){ SetPower( OUT_A + OUT_B + OUT_C, 9 ); SetDirection( OUT_A , OUT_FWD ); SetDirection( OUT_B + OUT_C, OUT_REV ); int i = 0; while ( i < times ){ i++; On( OUT_A ); OnFor( OUT_B + OUT_C, on ); Float( OUT_B + OUT_C ); Wait(off); } Off( OUT_A + OUT_B + OUT_C ); } void PulseDriveLeft( int on, int off, int times ){ SetPower( OUT_A + OUT_B + OUT_C, 9 ); SetDirection( OUT_A , OUT_REV ); SetDirection( OUT_B + OUT_C, OUT_FWD ); int i = 0; while ( i < times ){ i++; On( OUT_A ); OnFor( OUT_B + OUT_C, on ); Float( OUT_B + OUT_C ); Wait(off); } Off( OUT_A + OUT_B + OUT_C ); } task main(){ DriveForward( TRANS ); PulseDriveRight( 2, 2, TRANS/4 ); DriveReverse( TRANS ); PulseDriveLeft( 2, 2, TRANS/4 ); DriveForward( TRANS ); RotateRight( DEG90 ); DriveForward( TRANS ); RotateRight( DEG90 ); DriveForward( TRANS ); RotateRight( DEG90 ); DriveForward( TRANS ); RotateRight( DEG90 ); }