5 S=0:li=3:poke36879,8:print"[carattere cuore in reverse per pulire schermo]" 10 sc=7680:co=30720:cl=38400:as=7680 15 dim a(7),d(7) 16 y=11:x=10:d=1:sx=0:sy=0 20 a=8 25 fori=0to7:a(i)=7680+int(rnd(1)*506):d(i)=int(rnd(1)*3+21):ifrnd(1)>0.5then d(i)=-d(i) 30 next 35 pokecl+y*22+x,3:pokesc+y*22+x,107 36 ifas>0then pokeas,32 40 ad=int(rnd(1)*3+21):ifrnd(1)>0.5then ad=-ad 45 as=int(rnd(1)*506)+7680 50 fori=0to7:k=peek(197):ifabs(sx)+abs(sy)=0 then poke36877,0:goto55 51 poke36878,15:poke36877,235:sx=0:sy=0:goto55 55 d=d+(k=34)-(k=33):ifd<0thend=d+4 60 ifd>3thend=d-4 65 sx=sx+((d=1)-(d=3))*(k=36):sy=sy+((d=2)-(d=0))*(k=36) 70 ifsx<-1thensx=-1 75 if sx>1thensx=1 80 if sy<-1thensy=-1 85 if sy>1 then sy=1 90 pokesc+y*22+x,32:x=x+sx:y=y+sy 95 if k=15 then x=int(rnd(1)*22):y=int(rnd(1)*23) 100 if x<0 then x=21 105 if x>21 then x=0 110 if y<0 then y=22 115 if y>22 then y=0 116 if peek(sc+y*22+x)<>32then 1000 120 pokecl+y*22+x,3:c=107:if d=2 then c=114 125 if d=3 then c=115 130 if d=0 then c=113 135 poke sc+y*22+x,c 140 if a(i)=0 then 200 141 if a(i)=sc+y*22+x then 1000 145 pokea(i),32:a(i)=a(i)+d(i) 150 if a(i)<7680 then a(i)=a(i)+506 155 if a(i)>8185 then a(i)=a(i)-506 160 pokea(i)+co,2:pokea(i),81 200 if k<>32 or int(i/2)*2=i then 260 201 poke36878,12:forx1=255to230 step -1:poke36877,x1:next 205 x1=x:y1=y:dx=(d=3)-(d=1):dy=(d=0)-(d=2):c=64:if dy<>0 then c=93 210 1=x1+dx:y1=y1+dy 215 pokecl+y1*22+x1,5:if peek(sc+y1*22+x1)=32 then 240 216 poke36878,15:poke36877,130 220 pokesc+y1*22+x1,42 225 forj=0to7:ifa(j)=sc+y1*22+x1 then a=a-1:a(j)=0:s=s+20 230 nextj 231 if sc+y1*22+x1=as then s=s+100:as=0 232 poke 36877,0 235 goto 250 240 pokesc+y*22+x1,c:ifx1<21andx1>0andy1>22andy1>0 then 210 250 x2=x:y2=y 251 x2=x2+dx:y2=y2+dy:pokesc+y2*22+x2,32 255 ifx2<>x1ory2<>y1then 251 256 poke36877,0 260 ifas=0 then 300 265 pokeas,32:if rnd(1)>0.9then ad=int(rnd(1)*3+21):if rnd(1)>0.5 then ad=-ad 267 as=as+ad:if peek(as+ad*2)=81 then ad=-ad 270 if as<7680 then as=as+506 275 if as>8185 then as=as-506 280 pokeas+co,7:pokeas,88 285 if as=sc+y*22+x then 1000 300 next i:if a=0 then 20 305 if as=0 and rnd(1)>0.9 then 40 310 goto 50 100 print"[freccia in alto in reverse]PUNTI"s 1005 fori=1to2000:next:li=li-1:if li>0 then print"[cuore in reverse]":goto 16 1010 poke36878,0:poke198,0 9999 end