program test { #include #include #include #include var which1 = 0 var Blue = 0 var green = 0 var yellow = 0 var red = 0 var blue2 = 0 var green2 = 0 var yellow2 = 0 var red2 = 0 var blue3 = 0 var gree3 = 0 var green3 = 0 var yellow3 = 0 var red3 = 0 var first = 0 var second = 0 var third = 0 sensor light2 on 2 light2 is light as percent event lRange_light2EventRange when light2 is 30..30 event lRange_light2EventRange0 when light2 is 29..29 event lRange_light2EventRange1 when light2 is 26..26 event lRange_light2EventRange2 when light2 is 25..25 sensor touch3 on 3 touch3 is switch as boolean event tPress_touch3EventPress when touch3.pressed event tRelease_touch3EventRelease when touch3.released sensor touch1 on 1 touch1 is switch as boolean event tPress_touch1EventPress when touch1.pressed event tRelease_touch1EventRelease when touch1.released main { ext InterfaceType "kFreestyle" rcx_ClearTimers bbs_GlobalReset([A B C]) trigger lRange_light2EventRange trigger lRange_light2EventRange0 trigger lRange_light2EventRange1 trigger lRange_light2EventRange2 trigger tPress_touch3EventPress trigger tRelease_touch3EventRelease trigger tPress_touch1EventPress trigger tRelease_touch1EventRelease try { forever { repeat 3 { which1 = ( Random 0 to 40 ) rcx_Multiply( which1,100) if which1 is 0..200{ if counter1 is 0..100{ direction [ A ] [ ] on [ A ] wait 100 off [ A ] if Blue = 10{ if blue2 = 10{ if blue3 = 10{ } else { blue3 += 10 third = 10 } } else { blue2 += 10 second = 10 } } else { Blue += 10 first = 10 } direction [ ] [ A ] on [ A ] wait until tPress_touch3EventPress off [ A ] } else { direction [ ] [ A ] on [ A ] wait 100 off [ A ] if green = 10{ if green2 = 10{ if green3 = 10{ } else { green3 += 10 third = 20 } } else { green2 += 10 second = 20 } } else { green += 10 first = 20 } direction [ A ] [ ] on [ A ] wait until tRelease_touch3EventRelease off [ A ] } } else { if which1 is 200..300{ on [ C ] direction [ C ] [ ] wait 100 off [ C ] if yellow = 10{ if yellow2 = 10{ if yellow3 = 10{ } else { yellow3 += 10 third = 30 } } else { yellow2 += 10 second = 30 } } else { yellow += 10 first = 30 } direction [ ] [ C ] on [ C ] wait until tPress_touch1EventPress off [ C ] } else { on [ C ] direction [ ] [ C ] wait 100 off [ C ] if red = 10{ if red2 = 10{ if red3 = 10{ } else { red3 += 10 third = 40 } } else { red2 += 10 second = 40 } } else { red += 10 first = 40 } direction [ C ] [ ] on [ C ] wait until tRelease_touch1EventRelease off [ C ] } } } if first = 10{ wait until lRange_light2EventRange } else { if first = 20{ wait until lRange_light2EventRange0 } else { if first = 30{ wait until lRange_light2EventRange1 } else { wait until lRange_light2EventRange2 } } } if second = 10{ wait until lRange_light2EventRange } else { if second = 20{ wait until lRange_light2EventRange0 } else { if second = 30{ wait until lRange_light2EventRange1 } else { wait until lRange_light2EventRange2 } } } if third = 10{ wait until lRange_light2EventRange } else { if third = 20{ wait until lRange_light2EventRange0 } else { if third = 30{ wait until lRange_light2EventRange1 } else { wait until lRange_light2EventRange2 } } } counter1 += 10 display counter1:1 } } retry on fail } }