1 REM *********** GLOUP ************* OLIVIER RICHE AMSTRAD
5 ta=1:pt=0:PP=2620 6 GOSUB 60000 7 RANDOMIZE TIME 8 SPEED KEY 7,1 9 ta=1:pt=0:PP=2620 10 DIM a(40,21) 15 c=20:l=14 20 FOR f=3 TO 38 30 a(f,2)=1 40 a(f,20)=1 50 a(f,8)=1 60 NEXT f 70 FOR f=3 TO 19 80 a(2,f)=1 90 a(39,f)=1 100 NEXT f 110 a(20,1)=1:a(20,21)=1:a(1,11)=1:a(40,11)=1 120 FOR f=9 TO 19 130 a(7,f)=1 140 a(29,f)=1 150 NEXT f 160 FOR f=3 TO 7 170 a(12,f)=1 180 a(21,f)=1 190 a(26,f)=1 200 a(31,f)=1 210 NEXT f 220 FOR f=13 TO 20 230 a(f,5)=1 240 NEXT f 250 FOR f=9 TO 17 260 a(35,f)=1 270 NEXT f 280 FOR f=10 TO 28 290 a(f,14)=1 300 NEXT f 310 FOR f=9 TO 13 320 a(9,f)=1 330 NEXT f 340 FOR f=15 TO 19 350 a(22,f)=1 360 a(15+f,18)=1 370 NEXT f 380 FOR f=1 TO 4 390 a(14+f,17)=1 400 a(2+f,14)=1 410 a(35+f,14)=1 415 a(19,16+f)=1 416 a(14,13+f)=1 420 NEXT f 430 A(2,2)=2:a(21,2)=2:A(12,2)=2:A(26,2)=2:A(31,2)=2:A(39,2)=2 440 A(12,5)=2:A(21,5)=2:A(2,8)=2:A(7,8)=2:A(9,8)=2:A(12,8)=2:A(21,8)=2:A(26,8)=2:A(29,8)=2:A(31,8)=2:A(35,8)=2:A(39,8)=2 450 A(2,14)=2:A(7,14)=2:A(9,14)=2:A(14,14)=2:A(22,14)=2:A(29,14)=2:A(35,14)=2:A(39,14)=2 460 A(29,18)=2:A(35,18)=2:A(2,20)=2:A(7,20)=2:A(19,20)=2:A(22,20)=2:A(29,20)=2:A(39,20)=2 470 A(14,17)=2:A(19,17)=2 500 SYMBOL AFTER 251 510 SYMBOL 251,62,127,93,127,127,127,127,85 520 SYMBOL 252,60,118,255,240,248,252,127,60 530 SYMBOL 253,60,110,255,15,31,63,254,60 540 SYMBOL 254,60,126,255,255,245,231,70,68 550 SYMBOL 255,34,98,231,175,255,255,126,60 570 cf=8:lf=20:dir=2:cfz=3:lfz=2:dirz=2 990 MODE 1:INK 0,0:INK 1,18:INK 2,15:INK 3,24:BORDER 0:PEN 1:PAPER 0 1000 FOR ll=1 TO 21 1010 FOR cc=1 TO 40 1020 ON a(cc,ll)+1 GOSUB 1100,1200,1200,1200,1200,1200,1200 1030 NEXT cc 1040 NEXT ll 1050 LOCATE 17,11:PEN 3:PAPER 0:PRINT "GLOUP":PEN 1 1055 LOCATE 15,24:PRINT "Points:":LOCATE 33,24:PRINT "Tab:";TA:GOTO 1990 1100 LOCATE cc,ll:PRINT CHR$(143) 1110 RETURN 1200 LOCATE cc,ll:PRINT "." 1210 RETURN 1990 LOCATE C,L:PEN 3:PRINT CHR$(253) 2000 ON a(c,l) GOTO 2002,2003 2001 GOTO 2010 2002 pt=pt+10:LOCATE 22,24:PEN 1:PRINT pt:a(c,l)=3:SOUND 1,200,3:SOUND 1,120,5:GOTO 2005 2003 pt=pt+10:LOCATE 22,24:PEN 1:PRINT pt:a(c,l)=4:SOUND 1,200,3:SOUND 1,120,5 2005 IF PT-PP=0 THEN GOTO 50030 2010 a$=INKEY$:IF a$="" THEN GOTO 2600 2011 IF ASC(a$)<240 THEN GOTO 2500 2020 ON ASC(a$)-239 GOTO 2100,2200,2300,2400 2030 GOTO 2500 2100 IF l=1 THEN LOCATE c,l:PRINT " ":l=21:GOTO 2500 2110 IF a(c,l-1)=0 THEN GOTO 2130 2115 LOCATE c,l:PRINT " " 2120 l=l-1 2130 p=255 2140 GOTO 2500 2200 IF l=21 THEN LOCATE c,l:PRINT " ":l=1:GOTO 2500 2210 IF a(c,l+1)=0 THEN GOTO 2230 2215 LOCATE c,l:PRINT " " 2220 l=l+1 2230 p=254 2250 GOTO 2500 2300 IF c=1 THEN LOCATE c,l:PRINT " ":c=40:GOTO 2500 2310 IF a(c-1,l)=0 THEN GOTO 2330 2315 LOCATE c,l:PRINT " " 2320 c=c-1 2330 p=253 2340 GOTO 2500 2400 IF c=40 THEN LOCATE c,l:PRINT " ":c=1:GOTO 2500 2410 IF a(c+1,l)=0 THEN GOTO 2430 2415 LOCATE c,l:PRINT " " 2420 c=c+1 2430 p=252 2500 IF c=cf AND l=lf THEN GOTO 20020 2502 IF c=cfz AND l=lfz THEN GOTO 20020 2505 LOCATE c,l:PEN 3:PRINT CHR$(p) 2600 ON dir GOTO 3000,4000,5000,6000,7000 3000 IF a(cf,lf)=1 THEN z$=".":GOTO 3020 3010 z$=" " 3020 IF a(cf-1,lf)=2 OR a(cf-1,lf)=4 THEN dir=5:GOTO 3040 3030 dir=1 3040 LOCATE cf,lf:PEN 1:PRINT z$:cf=cf-1 3050 LOCATE cf,lf:PEN 2:PRINT CHR$(251):GOSUB 20000 3060 d=1:GOTO 8600 4000 IF a(cf,lf)=1 THEN z$=".":GOTO 4020 4010 z$=" " 4020 IF a(cf+1,lf)=2 OR a(cf+1,lf)=4 THEN dir=5:GOTO 4040 4030 dir=2 4040 LOCATE cf,lf:PEN 1:PRINT z$:cf=cf+1 4050 LOCATE cf,lf:PEN 2:PRINT CHR$(251):GOSUB 20000 4060 d=2:GOTO 8600 5000 IF a(cf,lf)=1 THEN z$=".":GOTO 5020 5010 z$=" " 5020 IF a(cf,lf-1)=2 OR a(cf,lf-1)=4 THEN dir=5:GOTO 5040 5030 dir=3 5040 LOCATE cf,lf:PEN 1:PRINT z$:lf=lf-1 5050 LOCATE cf,lf:PEN 2:PRINT CHR$(251):GOSUB 20000 5060 d=3:GOTO 8600 6000 IF a(cf,lf)=1 THEN z$=".":GOTO 6020 6010 z$=" " 6020 IF a(cf,lf+1)=2 OR a(cf,lf+1)=4 THEN dir=5:GOTO 6040 6030 dir=4 6040 LOCATE cf,lf:PEN 1:PRINT z$:lf=lf+1 6050 LOCATE cf,lf:PEN 2:PRINT CHR$(251):GOSUB 20000 6060 d=4:GOTO 8600 7000 IF a(cf,lf)=2 THEN z$="." 7010 IF a(cf,lf)=4 THEN z$=" " 7011 IF CF=C THEN GOTO 7013 7012 GOTO 7020 7013 IF LF<L THEN GOTO 7700 7014 IF LF>L THEN GOTO 7800 7020 ran=INT(RND*4)+1 7030 ON ran GOTO 7500,7600,7700,7800 7500 IF a(cf+1,lf)=0 OR d=1 THEN GOTO 7020 7510 GOTO 4030 7600 IF a(cf-1,lf)=0 OR d=2 THEN GOTO 7020 7610 GOTO 3030 7700 IF a(cf,lf+1)=0 OR d=3 THEN GOTO 7020 7710 GOTO 6030 7800 IF a(cf,lf-1)=0 OR d=4 THEN GOTO 7020 7810 GOTO 5030 8600 ON dirz GOTO 9000,10000,11000,12000,13000 9000 IF a(cfz,lfz)=1 THEN z$=".":GOTO 9020 9010 z$=" " 9020 IF a(cfz-1,lfz)=2 OR a(cfz-1,lfz)=4 THEN dirz=5:GOTO 9040 9030 dirz=1 9040 LOCATE cfz,lfz:PEN 1:PRINT z$:cfz=cfz-1 9050 LOCATE cfz,lfz:PEN 2:PRINT CHR$(251):IF CFZ=C AND LFZ=L THEN GOTO 20020 9060 dZ=1:GOTO 2000 10000 IF a(cfz,lfz)=1 THEN z$=".":GOTO 10020 10010 z$=" " 10020 IF a(cfZ+1,lfZ)=2 OR a(cfZ+1,lfZ)=4 THEN dirZ=5:GOTO 10040 10030 dirz=2 10040 LOCATE cfz,lfz:PEN 1:PRINT z$:cfz=cfz+1 10050 LOCATE cfz,lfz:PEN 2:PRINT CHR$(251):IF CFZ=C AND LFZ=L THEN GOTO 20020 10060 dZ=2:GOTO 2000 11000 IF a(cfz,lfz)=1 THEN z$=".":GOTO 11020 11010 z$=" " 11020 IF a(cfZ,lfZ-1)=2 OR a(cfZ,lfZ-1)=4 THEN dirZ=5:GOTO 11040 11030 dirz=3 11040 LOCATE cfz,lfz:PEN 1:PRINT z$:lfz=lfz-1 11050 LOCATE cfz,lfz:PEN 2:PRINT CHR$(251):IF CFZ=C AND LFZ=L THEN GOTO 20020 11060 dZ=3:GOTO 2000 12000 IF a(cfz,lfz)=1 THEN z$=".":GOTO 12020 12010 z$=" " 12020 IF a(cfz,lfz+1)=2 OR a(cfz,lfz+1)=4 THEN dirz=5:GOTO 12040 12030 dirz=4 12040 LOCATE cfz,lfz:PEN 1:PRINT z$:lfz=lfz+1 12050 LOCATE cfz,lfz:PEN 2:PRINT CHR$(251):IF CFZ=C AND LFZ=L THEN GOTO 20020 12060 dZ=4:GOTO 2000 13000 IF a(cfz,lfz)=2 THEN z$="." 13010 IF a(cfz,lfz)=4 THEN z$=" " 13011 IF LFZ=L THEN GOTO 13013 13012 GOTO 13020 13013 IF CFZ<C THEN GOTO 13500 13014 IF CFZ>C THEN GOTO 13600 13020 ran=INT(RND*4)+1 13030 ON ran GOTO 13500,13600,13700,13800 13500 IF a(cfz+1,lfz)=0 OR dZ=1 THEN GOTO 13020 13510 GOTO 10030 13600 IF a(cfz-1,lfz)=0 OR dZ=2 THEN GOTO 13020 13610 GOTO 9030 13700 IF a(cfz,lfz+1)=0 OR dZ=3 THEN GOTO 13020 13710 GOTO 12030 13800 IF a(cfz,lfz-1)=0 OR dZ=4 THEN GOTO 13020 13810 GOTO 11030 20000 IF c=cf AND lf=l THEN GOTO 20020 20010 RETURN 20020 FOR n=15 TO 9 STEP -1:SOUND 1,626,40,n,,1:NEXT:PEN 1:LOCATE 12,23:PRINT "Une autre partie ?" 20025 c$=INKEY$:IF c$="" THEN GOTO 20025 20030 c$=UPPER$(c$) 20035 IF c$="O" THEN RUN 20040 IF c$="N" THEN MODE 2:END 20050 GOTO 20025 50030 INK 1,0,26:INK 0,26,0:BORDER 26,0:ta=ta+1:PP=PP+2620:FOR z=1 TO 2 50500 FOR X=1 TO 10 51000 A=INT (RND(1)*330)+284 51010 SOUND 1,A 51030 B=INT (RND(1)*340)+284 51040 SOUND 2,B 51050 C=INT (RND(1)*350)+284 51060 NEXT X 51070 NEXT Z 51080 GOTO 15 60000 A=0:B=26:C=26 60005 MODE 0 60010 INK 0,A:INK 1,B:BORDER C 60020 LOCATE 8,12:PRINT "GLOUP":LOCATE 2,23:PRINT "Appuyez sur ENTER" 60030 A=A+1:B=B-1:C=C-1 60040 IF A>26 THEN A=0 60045 IF C<0 THEN C=26 60050 IF B<0 THEN B=26 60060 O$=INKEY$:IF O$="" THEN GOTO 60010 60070 IF ASC(O$)=13 THEN RETURN 60080 GOTO 60010 |