DECLARE SUB Explode(li%,co%,n%) DECLARE SUB Barra(n%) CLEAR,,16384 RANDOMIZE TIMER DEFINT A-Z VIEW ?1 TO 25 CLS LOCATE 1,1:?STRING$(80,219); FOR i=2 TO 24 LOCATE i,1:?"Û";SPACE$(78);"Û"; NEXT LOCATE 25,1:?STRING$(80,219); FOR i=1 TO 100 DO lx=INT(RND*25)+1:cx=INT(RND*80)+1 LOOP WHILE SCREEN(lx,cx)<>32 LOCATE lx,cx:?"þ"; NEXT OPTION BASE 1 DIM l(2),c(2),d(2) DIM al(2),ac(2) al(1)=24:ac(1)=2 al(2)=2:ac(2)=79 l(1)=24:c(1)=2:d(1)=2 l(2)=2:c(2)=79:d(2)=3 t!=TIMER DO LOCATE 2,79:?" "; LOCATE 24,2:?" "; FOR i=1 TO 2 LOCATE al(i),ac(i):?" "; COLOR 23-8*i,0 LOCATE l(i),c(i):?CHR$(24+d(i)); al(i)=l(i):ac(i)=c(i) NEXT 1 k$=UCASE$(INKEY$) IF TIMER-t!>1 THEN DO lx=INT(RND*25)+1:cx=INT(RND*80)+1 LOOP WHILE SCREEN(lx,cx)<>32 LOCATE lx,cx:?"þ"; t!=TIMER END IF SELECT CASE k$ CASE "":GOTO 1 CASE "":EXIT DO CASE "W":l(1)=l(1)-1:d(1)=0 CASE "S":l(1)=l(1)+1:d(1)=1 CASE "A":c(1)=c(1)-1:d(1)=3 CASE "D":c(1)=c(1)+1:d(1)=2 CASE CHR$(0)+"G":l(2)=l(2)-1:d(2)=0 CASE CHR$(0)+"O":l(2)=l(2)+1:d(2)=1 CASE CHR$(0)+"S":c(2)=c(2)-1:d(2)=3 CASE CHR$(0)+"Q":c(2)=c(2)+1:d(2)=2 CASE " ":Barra 1 CASE CHR$(13):Barra 2 END SELECT IF(l(1)=2 AND c(1)=79)THEN x=1:EXIT DO IF(l(2)=24 AND c(2)=2)THEN x=2:EXIT DO FOR i=1 TO 2 p=SCREEN(l(i),c(i)) IF p=254 THEN PLAY "MFo4l24cdfgb":Explode l(i),c(i),i ELSE IF p<>32 AND p<>180-2*i THEN l(i)=al(i):c(i)=ac(i) NEXT FOR i=1 TO 2 l=l(i):c=c(i) RESTORE variacao ct=0 FOR j=1 TO 4 READ vl,vc IF SCREEN(l+vl,c+vc)=174+2*i THEN ct=ct+1 NEXT IF ct=4 THEN x=3-i:EXIT DO NEXT LOOP CLS IF x THEN ?"Jogador";x;" venceu END IF ? ?"Joga de novo [sn]?"; DO:n$=UCASE$(INPUT$(1)):LOOP UNTIL n$="S" OR n$="N IF n$="S" THEN RUN SYSTEM variacao: DATA-1,0,1,0,0,-1,0,1 SUB Barra(n) SHARED l(),c(),d() lx=l(n) cx=c(n) SELECT CASE d(n) CASE 0:vl=-1:vc=0 CASE 1:vl=1:vc=0 CASE 2:vl=0:vc=1 CASE 3:vl=0:vc=-1 END SELECT DO lx=lx+vl:cx=cx+vc IF SCREEN(lx,cx)<>32 THEN EXIT DO LOCATE lx,cx:?CHR$(180-2*n); LOOP END SUB SUB Explode(li,co,n) STATIC ctd LOCATE li,co:?" "; ctd=ctd+1 IF ctd=50 THEN EXIT SUB FOR l=li-2 TO li+2 FOR c=co-2 TO co+2 IF l>2 AND l<25 AND c>0 AND c<81 THEN px=SCREEN(l,c) IF px=254 THEN Explode l,c,n ELSEIF px<>180-2*n AND px<>219 THEN LOCATE l,c:?" "; END IF END IF NEXT NEXT ctd=ctd-1 END SUB