MODULE››; BOUNCE from ANALOG magazine›; Issue #15›; éî ÇÔÉÁ Íïäå ±±››BYTE key=764,x,y,console=53279,› attract=77›CARD ctr›INT A,B›››PROC wallchex()››IF x>78 THEN x=78 FI›IF y>190 THEN y=190 FI›IF x<1 THEN x=1 FI›IF y<1 THEN y=1 FI›RETURN››PROC menu()›PrintE("BOUNCE from Analog Issue #15")›PrintE(" éî ÇÔÉÁ íïäå ±±")›PrintF("%E* Use stick to draw walls,%E")›PrintF("* Hold trigger to erase,%E")›PrintF("* Hit ESC to clear screen,%E")›PrintE("* Hit SPACE to bounce.")›PrintE("* Áòòï÷ó control ball speed")›Print("Press any key to continue.")›key=255›While key=255 Do Od›Key=255›RETURN››PROC drawscreen()›BYTE curs=752›Graphics(0)›curs=1›Menu()›Graphics(11)›curs=1›SetColor(4,0,4) ;SetColor(4,0,0)›color=15›Plot(0,0)›DrawTo(79,0)›DrawTo(79,191)›DrawTo(0,191)›DrawTo(0,0)›RETURN››PROC flash()›color=9›Plot(x,y)›FOR ctr=0 to 300 DO OD›color=0›Plot(x,y)›FOR ctr=0 to 300 DO OD›RETURN›››PROC bounce()›BYTE fate=53770,L=[0],PA,PB,G,› kolor=[1],time=[32]››color=9›A=1›B=1›Plot(x,y)›DO› IF key=33 THEN key=255 RETURN FI› WHILE Locate(x+A,y+B)<15 Do› color=kolor› Plot(x,y)› x==+A› y==+B› wallchex()› color=9› Plot(x,y)› L==+1› FOR ctr=0 to 5*time DO OD› OD› IF key=7 THEN› key=255› time==-32› FI› Sound(0,L*4+20,10,8)› PA=Locate(x+A,y)› PB=Locate(x,y+B)› FOR ctr=0 to 100 DO OD› SndRst()› L=0› IF PA>2 AND PB>2 THEN› A=-A› B=-B› ELSEIF PA>2 AND PB<3 THEN› A=-A› color=2› Plot(x,y)› y=y+B› color=9› Plot(x,y)› ELSEIF PB>2 AND PA<3 THEN› B=-B› color=2› Plot(x,y)› x=x+A› color=9› Plot(x,y)› ELSEIF fate>127 THEN› B=-B› ELSE› A=-A› FI› kolor==+1› IF kolor>14 THEN› kolor=1› FI› attract=0›OD›RETURN›››PROC draw()› BYTE qq››drawscreen()›x=40›y=95›DO› IF key=28 THEN› key=255› drawscreen()› ELSEIF key=33 THEN› key=255› bounce()› FI› IF Stick(0)=15 THEN› flash()› ELSEIF Stick(0)=7 THEN› x=x+1› ELSEIF Stick(0)=6 THEN› x=x+1› y=y-1› ELSEIF Stick(0)=14 THEN› y=y-1› ELSEIF Stick(0)=5 THEN› x=x+1› y=y+1› ELSEIF Stick(0)=11 THEN› x=x-1› ELSEIF Stick(0)=10 THEN› x=x-1› y=y-1› ELSEIF Stick(0)=13 THEN› y=y+1› ELSEIF Stick(0)=9 THEN› x=x-1› y=y+1› FI› wallchex()› IF Strig(0)=0 THEN› color=0› flash()› ELSE› color=15› FI› Plot(x,y)› IF Stick(0)<>15 THEN› qq=Strig(0)› Sound(0,(200-x-y)*qq,8+2*qq,4)› FOR ctr=0 to 1000 DO OD› SndRst()› FI›OD›RETURN›