1 '***********************************
2 '*      MICHEL BOISBRUN PRESENTE   *
3 '*   WAR-BLOCK 2 (juin/juillet 85) * 
4 '*   Granges Les Valence (Ardeche) *
5 '***********************************
6 '
10 POKE 20000,255
20 POKE 30000,0
30 SYMBOL AFTER 32:SYMBOL 128,8,28,56,115,254,120,72,140
40 GOTO 1000
50 '
60 '*** PLACEMENT DES MURS ***
70 '
80 R=PEEK(20000):DIM Z(40,24):CLS:INK 1,26:INK 2,24:INK 3,7:PEN 1
90 FOR o=2 TO 23
100 FOR q=1 TO 8
110 a=INT(RND*40+1)
120 LOCATE a,o:PRINT CHR$(207):z(a,o)=1
130 NEXT q
140 NEXT o
150 '
160 '*** BORDURE ***
170 '
180 FOR i=1 TO 40:LOCATE i,1:PEN 2:PRINT CHR$(127):z(i,1)=1
190 NEXT i
200 FOR i=1 TO 40:LOCATE i,24:PRINT CHR$(127):z(i,24)=1
210 NEXT i
220 FOR i=2 TO 24:LOCATE 1,i:PRINT CHR$(127):z(1,i)=1
230 NEXT i
240 FOR i=1 TO 24:LOCATE 40,i:PRINT CHR$(127):z(40,i)=1
250 NEXT i
260 '
270 '** PLACEMENT DES PERSONNAGES **
280 '
290 PEN 3
300 FOR i=10 TO 20:IF z(i,12)<>1 THEN 310 ELSE NEXT i
310 LOCATE i,12:PEN 2:PRINT CHR$(128):X=I:Y=12
320 FOR j=28 TO 39:IF z(j,12)<>1 THEN 330 ELSE NEXT j
330 LOCATE j,12:PEN 3:PRINT CHR$(248):u=j:v=12
340 LOCATE 16,25:PEN 2:PRINT CHR$(202):LOCATE 18,25:PEN 1:PRINT"Prises:";:G=PEEK(30000):IF G=0 THEN PRINT"  aucune" ELSE FOR I=1 TO G:PRINT " ";CHR$(128);:NEXT I
350 FOR i=239 TO 63 STEP -5:SOUND 1,i,10:NEXT 
360 '
370 '*** COMPTEURS TEMPS REEL ***
380 '
390 PEN 3:LOCATE 3,25:PRINT"TEMPS : ";R:EVERY 5,2 GOSUB 440:EVERY 50,3 GOSUB 720
400 GOTO 590
410 '
420 '*** DEPLACEMENT BANDIT ***
430 '
440 B=INT(RND*4+1)
450 GOTO 760
460 ON b GOTO 480,500,520,540
470 RETURN
480 IF z(x,y-1)=1 THEN 470
490 PEN 2:LOCATE x,y:PRINT" ":LOCATE x,y-1:PRINT CHR$(128):y=y-1:GOTO 470
500 IF z(x,y+1)=1 THEN 470
510 PEN 2:LOCATE x,y:PRINT" ":LOCATE x,y+1:PRINT CHR$(128):Y=y+1:GOTO 470
520 IF z(x+1,y)=1 THEN 470
530 PEN 2:LOCATE x,y:PRINT" ":LOCATE x+1,y:PRINT CHR$(128):x=x+1:GOTO 470
540 IF z(x-1,y)=1 THEN 470
550 PEN 2:LOCATE x,y:PRINT" ":LOCATE x-1,y:PRINT CHR$(128):x=x-1:GOTO 470
560 '
570 '*** DEPLACEMENT POLICIER ***
580 '
590 FOR i=72 TO 75:t=2*(i-71)+INKEY(i)+1:ON t GOTO 600,600,610,600,630,600,650,600,670
600 NEXT i:GOTO 590
610 FOR i=v-1 TO 2 STEP -1:IF z(u,i)=1 THEN NEXT i:IF i=1 AND z(u,i)=1 THEN 590
620 DI:PEN 3:IF u=x AND i=y THEN GOSUB 440 :EI:GOTO 590 ELSE LOCATE u,v:PRINT" ":LOCATE u,v-1:PRINT CHR$(248):v=v-1:IF z(u,v)=1 THEN z(u,v)=0:LOCATE u,i:PEN 1:PRINT CHR$(207):SOUND 1,0,10,6,0,0,20:z(u,i)=1:PEN 3:EI:GOTO 590 ELSE EI:GOTO 590
630 FOR i=v+1 TO 23:IF z(u,i)=1 THEN NEXT i:IF i=24 AND z(u,i)=1 THEN 590 
640 DI:PEN 3:IF u=x AND i=y THEN GOSUB 440:EI:GOTO 590 ELSE LOCATE u,v:PRINT" ":LOCATE u,v+1:PRINT CHR$(248):v=v+1:IF z(u,v)=1 THEN z(u,v)=0:LOCATE u,i:PEN 1:PRINT CHR$(207):SOUND 1,0,10,6,0,0,20:z(u,i)=1:PEN 3:EI:GOTO 590 ELSE EI:GOTO 590
650 FOR i=u-1 TO 2 STEP -1:IF z(i,v)=1 THEN NEXT i:IF i=2 AND z(u,i)=1 THEN 590 ELSE IF i=1 AND z(u,i)=1 THEN 590 
660 DI:PEN 3:IF i=x AND v=y THEN GOSUB 440 :EI:GOTO 590 ELSE LOCATE u,v:PRINT" ":LOCATE u-1,v:PRINT CHR$(251):u=u-1:IF z(u,v)=1 THEN z(u,v)=0:LOCATE i,v:PEN 1:PRINT CHR$(207):SOUND 1,0,10,6,0,0,20:z(i,v)=1:PEN 3:EI:GOTO 590 ELSE EI:GOTO 590
670 FOR i=u+1 TO 39:IF z(i,v)=1 THEN NEXT i:IF i=40 AND z(i,v)=1 THEN 590 
680 DI:PEN 3:IF i=x AND v=y THEN GOSUB 440 :EI:GOTO 590 ELSE LOCATE u,v:PRINT" ":LOCATE u+1,v:PRINT CHR$(250):u=u+1:IF z(u,v)=1 THEN z(u,v)=0:LOCATE i,v:PEN 1:PRINT CHR$(207):SOUND 1,0,10,6,0,0,20:z(i,v)=1:PEN 3:EI:GOTO 590 ELSE EI:GOTO 590
690 '
700 '*** AFFICHAGE DU COMPTEUR ***
710 '
720 R=R-1:POKE 20000,R:LOCATE 11,25:PEN 3:PRINT R:IF R =10 THEN BORDER 1,18 ELSE IF R=0 THEN DI:BORDER 0:GOTO 900 ELSE RETURN
730 '
740 '*** TEST SI GAGNE *** 
750 '
760 IF z(x,y+1)=1 AND z(x,y-1)=1 AND z(x+1,y)=1 AND z(x-1,y)=1 THEN 800 ELSE GOTO 460
770 '
780 '*** ON GAGNE ***
790 '
800 EVERY 0,2 GOSUB 800:EVERY 0,3 GOSUB 800
810 G=PEEK(30000):G=G+1:POKE 30000,G:FOR i=1 TO 40:FOR j=1 TO 24:z(i,j)=0:NEXT j:NEXT i:CLS:INK 2,15,18:INK 3,25:LOCATE 16,4:PEN 2:PRINT"BRAVO!":PLOT 231,359,1:DRAW 343,359:DRAW 343,327:DRAW 231,327:DRAW 231,359
820 J=247:FOR I=231 TO 343:PLOT i,359:DRAW j,375:j=j+1:NEXT i:j=375:FOR i=359 TO 327 STEP -1:PLOT 343,i:DRAW 359,j:j=j-1:NEXT i:PLOT 343,359,0:DRAW 359,375
830 PEN 3:LOCATE 2,10:PRINT"Vous avez enferme Jean Peuplus";G;"fois.":LOCATE 1,11:PRINT"Mais celui-ci,infatigable,a encore reus-":LOCATE 1,12:PRINT"si a s'echapper.":LOCATE 1,13:PRINT"Il vous reste";R;
840 PRINT"secondes pour le reen-":LOCATE 1,14:PRINT"fermer,depechez-vous !"
850 LOCATE 7,23:PEN 1:PRINT"TAPER SUR A POUR CONTINUER"
860 A$=INKEY$:IF A$="A" OR A$="a" THEN CLEAR:GOTO 70 ELSE GOTO 860
870 '
880 '*** RESULTATS ***
890 '
900 CLS:BORDER 0:INK 2,25:INK 3,15:LOCATE 16,4:PEN 3:PRINT"RESULTATS:":PLOT 231,359,1:DRAW 231,327:DRAW 403,327:DRAW 403,359
910 J=247:FOR I=231 TO 403:PLOT I,359,1:DRAW J,375:J=J+1:NEXT I:J=375:FOR I=359 TO 327 STEP -1:PLOT 403,I:DRAW 419,J:J=J-1:NEXT I:PLOT 403,359,0:DRAW 419,375
920 IF G=0 THEN PEN 2:GOTO 930 ELSE IF G=1 OR G=2 THEN PEN 2:GOTO 940 ELSE IF G=3 OR G=4 THEN PEN 2:GOTO 950 ELSE PEN 2:GOTO 960
930 LOCATE 2,11:PRINT"Comment,vous n'avez pas reussi a enfer-":LOCATE 1,12:PRINT"mer Jaen Peuplus ?Vous n'avez pas honte?":LOCATE 1,13:PRINT"Depechez-vous de vous entrainer avant de":LOCATE 1,14:PRINT"devenir la risee de vos amis !":GOTO 970
940 LOCATE 2,11:PRINT"Vous avez reussi a enfermer l'horrible":LOCATE 1,12:PRINT"Jean Peuplus";G;"fois.Ce n'est pas mal,":LOCATE 1,13:PRINT"mais il y a du progres a faire,perseve-":LOCATE 1,14:PRINT"rez !":GOTO 970
950 LOCATE 2,11:PRINT"Bravo! Vous avez reussi a enfermer la":LOCATE 1,12:PRINT"terreur des bacs a sable";G;"fois.":LOCATE 1,13:PRINT"Hourra pour le champion du joystick!":GOTO 970
960 LOCATE 2,11:PRINT"Incroyable mais vrai! Vous avez enferme":LOCATE 1,12:PRINT"la calamite du siecle";G;"fois !!":LOCATE 1,13:PRINT"Je me prosterne aux pieds du roi du man-":LOCATE 1,14:PRINT"che a balai !":GOTO 970
970 PEN 1:LOCATE 9,21:PRINT"TAPER SUR A POUR REJOUER":PEN 3:LOCATE 9,23:PRINT"TAPER SUR Z POUR ARRETER":PEN 2:LOCATE 20,22:PRINT"ou":LOCATE 10,14
980 a$=INKEY$:IF a$="a" OR a$="A" THEN RUN ELSE IF a$="z" OR a$="Z" THEN 1260 ELSE GOTO 980
990 '
1000 '*** PRESENTATION ***
1010 '
1020 MODE 1:BORDER 0:PAPER 0:INK 0,0:INK 1,26:INK 2,6:INK 3,18,16
1030 LOCATE 13,4:PEN 1:PRINT"MICHEL BOISBRUN":PEN 2:LOCATE 16,6:PRINT"presente:"
1040 PEN 1:LOCATE 20,24:PRINT CHR$(207):FOR i=2 TO 18:PEN 2:LOCATE i,24:PRINT CHR$(128):LOCATE i-1,24:PRINT" ":FOR j=1 TO 40:NEXT j:NEXT i:LOCATE 10,12:PEN 1:PRINT"W A R - B L O C K"
1050 FOR T=1 TO 500:NEXT T
1060 PEN 2:FOR J=39 TO 22 STEP -1:LOCATE J,24:PRINT CHR$(248):LOCATE J+1,24:PRINT" ":FOR I=1 TO 40:NEXT I:NEXT J
1070 PEN 3:FOR i=29 TO 32:LOCATE i,9:PRINT CHR$(207):NEXT i:LOCATE 28,10:PRINT CHR$(207);CHR$(207):LOCATE 32,10:PRINT CHR$(207);CHR$(207):LOCATE 32,11:PRINT CHR$(207);CHR$(207):FOR i=29 TO 32:LOCATE i,12:PRINT CHR$(207):NEXT i
1080 FOR i=13 TO 15:LOCATE 28,i:PRINT CHR$(207);CHR$(207):NEXT i
1090 FOR i=30 TO 33:LOCATE i,15:PRINT CHR$(207):NEXT i:LOCATE 32,14:PRINT CHR$(207);CHR$(207)
1100 FOR k=1 TO 75:READ h,i,j:SOUND 1,h,i,j:NEXT k
1110 CLS:LOCATE 11,10:PEN 3:PRINT"INSTRUCTIONS(O/N)"
1120 a$=INKEY$:IF A$="O" OR a$="o" THEN 1160 ELSE IF a$="N" OR a$="n" THEN 70 ELSE GOTO 1120
1130 '
1140 '*** INSTRUCTIONS ***
1150 '
1160 INK 2,25:INK 3,15:CLS:PEN 3:LOCATE 14,4:PRINT"INSTRUCTIONS:"
1170 PLOT 199,359,1:DRAW 423,359:DRAW 423,327:DRAW 199,327:DRAW 199,359
1180 J=215:FOR i=199 TO 423:PLOT i,359:DRAW j,375:j=j+1:NEXT i:j=374:FOR i=359 TO 327 STEP -1:PLOT 423,i:DRAW 439,j:j=j-1:NEXT i:PLOT 423,359:DRAW 439,375,0
1190 PEN 2:LOCATE 2,10:PRINT"C'est la panique dans la commune de ":LOCATE 1,11:PRINT"Trifouillis les oies.Le celebre gang-":LOCATE 1,12:PRINT"ster,Jean Peuplus s'est evade de la":LOCATE 1,13:PRINT"prison d'Altacraz.En tant que chef de" 
1200 LOCATE 1,14:PRINT"la police,votre role est d'enfermer ce":LOCATE 1,15:PRINT"bandit entre quatre murs...":LOCATE 2,16:PRINT"A l'aide de la manette de jeu,vous au-":LOCATE 1,17:PRINT"rez 255 secondes pour l'immobiliser en"
1210 LOCATE 1,18:PRINT"poussant les murs disperses sur l'ecran.":LOCATE 15,21:PEN 3:PRINT"BONNE CHANCE":PEN 1:LOCATE 6,24:PRINT"taper une touche pour continuer"
1220 a$=INKEY$:IF a$="" THEN 1220 ELSE GOTO 70
1230 '
1240 'TRISTE FIN 
1250 '
1260 CLS:LOCATE 8,10:PEN 3:PRINT"Vous ne voulez plus jouer?":LOCATE 16,20:PEN 1:PRINT"DOMMAGE...":PEN 0:END
1270 '
1280 'J-S BACH EN DATAS !
1290 '
1300 DATA 284,20,7,426,10,7,379,10,7,338,10,7,319,10,7,284,20,7,426,20,7,426,5,0,426,20,7,213,20,7,319,10,7,284,10,7,253,10,7,225,10,7,213,20,7,426,20,7,426,5,0,426,20,7,319,20,7,284,10,7,319,10,7,338,10,7,379,10,7,338,20,7,319,10,7,338,10,7,379,10,7
1310 DATA 426,10,7,478,20,7,426,10,7,379,10,7,338,10,7,426,10,7,379,60,7,127,20,0,284,20,7,426,10,7,379,10,7,338,10,7,319,10,7,284,20,7,426,20,7,426,5,0,426,20,7,426,5,0,213,20,7,319,10,7,284,10,7,253,10,7,225,10,7
1320 DATA 213,20,7,426,20,7,426,5,0,426,20,7,426,5,0,426,20,0,319,20,7,284,10,7,319,10,7,338,10,7,379,10,7,338,20,7,319,10,7,338,10,7,379,10,7,426,10,7,379,20,7,338,10,7,379,10,7,426,10,7,478,10,7,426,60,7
1330 DATA 338,10,7,379,10,7,426,10,7,478,10,7,426,60,7