PROGTXT1( // Carnivore 4.rcx #source RIS1.5 #target RCX main [ sensor s1 on 1 var counter = 0 timer timevalue clear timevalue clear message output motorA on 1 output motorB on 2 output motorC on 3 forward [motorA motorB motorC] power [motorA motorB motorC] 7 s1 is switch as boolean start progTask wait 10 watch s1 [ when closed [ start task1 ] when opened [ ] ] ] task progTask [ forever [ if message is 10..10 [ clear counter clear message if s1 is closed [ power motorB 7 on motorB for 20 reverse motorB on motorB for 20 ][ power [motorA motorC] 4 forward [motorA motorC] on [motorA motorC] for 30 if message is 10..10 [ clear message if s1 is closed [ power motorB 7 on motorB for 20 reverse motorB on motorB for 20 ][ power [motorA motorC] 4 forward [motorA motorC] on [motorA motorC] for 30 ] ][ wait 20 power [motorA motorC] 7 forward motorA backward motorC on [motorA motorC] for 30 if message is 10..10 [ clear message if s1 is closed [ power motorB 7 on motorB for 20 reverse motorB on motorB for 20 ][ power [motorA motorC] 5 forward [motorA motorC] on [motorA motorC] for 30 ] ][ wait 20 power [motorA motorC] 7 forward motorC backward motorA on [motorA motorC] for 60 ] ] ] ][ power [motorA motorC] 7 forward motorC backward motorA on [motorA motorC] for 30 counter += 1 if counter is 1..10 [ ][ if timevalue is 1..50 [ ][ sound 6 clear counter power [motorA motorC] 7 forward [motorA motorC] on [motorA motorC] for 100 forward motorC backward motorA on [motorA motorC] for (random 19+1)*10 forward [motorA motorC] on [motorA motorC] for 100 clear timevalue clear counter ] ] ] ] ] task task1 [ if message is 10..10 [ clear message ][ power [motorA motorC] 7 backward [motorA motorC] on [motorA motorC] for 100 forward motorA backward motorC on [motorA motorC] for (random 19+1)*10 forward [motorA motorC] on [motorA motorC] for 100 ] ]