| 1 REM CHASSE A L'HOMME / AMSTRAD CPC 464-664-6128 / OLIVIER RICHE / AVRIL 1987
2 DEFINT A-Z:SYMBOL AFTER 243:SYMBOL 255,0,0,0,0,8,16,0,0:SYMBOL 254,0,0,0,0,0,16,8,4:DIM LAB(25,20):DIM LAB2(25,20):DIM MAZ(11):FOR L=0 TO 20:FOR C=0 TO 25:READ LAB(C,L):LAB2(C,L)=LAB(C,L):NEXT C:NEXT L:SYMBOL 252,15,60,60,15,0,60,15,0 3 SYMBOL 244,0,7,24,32,32,64,64,64:SYMBOL 245,0,224,24,4,4,2,2,2:SYMBOL 246,2,2,2,4,4,24,224,0:SYMBOL 247,64,64,64,32,32,24,7,0 :SYMBOL 253,240,60,0,240,60,60,240,0:MAJ$=CHR$(252)+CHR$(253):B$=CHR$(244)+CHR$(245):C$=CHR$(247)+CHR$(246) 4 MODE 2:INK 1,26:INK 0,0:BORDER 0:PAPER 0:PEN 1:FOR C=2 TO 31:LOCATE C,1:PRINT CHR$(143):LOCATE C,16:PRINT CHR$(143):NEXT:FOR L=1 TO 16:LOCATE 2,L:PRINT CHR$(143):LOCATE 31,L:PRINT CHR$(143):NEXT 5 FOR C=50 TO 79:LOCATE C,1:PRINT CHR$(143):LOCATE C,16:PRINT CHR$(143):NEXT:FOR L=1 TO 16:LOCATE 50,L:PRINT CHR$(143):LOCATE 79,L:PRINT CHR$(143):NEXT 6 WINDOW 36,45,3,9:PAPER 1:PEN 0:CLS 7 LOCATE 3,2:PRINT "CHASSE":LOCATE 6,4:PRINT "a":LOCATE 3,6:PRINT "l'HOMME":WINDOW 1,80,1,25:FOR C=35 TO 46:LOCATE C,2:PRINT CHR$(207):LOCATE C,10:PRINT CHR$(207):NEXT C:FOR L=2 TO 10:LOCATE 35,L:PRINT CHR$(207):LOCATE 46,L:PRINT CHR$(207):NEXT L 8 LOCATE 41,5:PRINT CHR$(254):TIR=0:DIRECTION=0 9 PAPER 0:PEN 1:LOCATE 35,12:PRINT "Olivier RICHE":LOCATE 47,11:PRINT CHR$(255):LOCATE 39,14:PRINT "1987":LOCATE 11,1:PAPER 1:PEN 0:PRINT " PRISONNIER ":LOCATE 60,1:PRINT " CHASSEUR ":PAPER 0:PEN 1 10 FOR F=1 TO INT(RND*10)+1:NEXT F:PROUT=INT(RND*3)+1:ON PROUT GOTO 13,15,11 11 C1=INT(RND*24)+1:L1=INT(RND*19)+1:IF LAB(C1,L1)=1 THEN 11 ELSE LAB2(1,0)=5:C5=1:L5=0:DIREC=1:LAB2(C1,L1)=3:GOTO 12 12 C2=INT(RND*24)+1:L2=INT(RND*19)+1:IF LAB(C2,L2)=1 OR LAB2(C2,L2)=3 OR C2-1+L2<25 THEN 12 ELSE LAB2(C2,L2)=4:GOTO 17 13 C1=INT(RND*24)+1:L1=INT(RND*19)+1:IF LAB(C1,L1)=1 THEN 13 ELSE LAB2(9,13)=5:C5=9:L5=13:DIREC=3:LAB2(C1,L1)=3:GOTO 14 14 C2=INT(RND*24)+1:L2=INT(RND*19)+1:IF LAB(C2,L2)=1 OR LAB2(C2,L2)=3 OR ABS(C2-9)+ABS(L2-13)<25 THEN 14 ELSE LAB2(C2,L2)=4:GOTO 17 15 C1=INT(RND*24)+1:L1=INT(RND*19)+1:IF LAB(C1,L1)=1 THEN 15 ELSE LAB2(14,16)=5:C5=14:L5=16:DIREC=3:LAB2(C1,L1)=3:GOTO 16 16 C2=INT(RND*6)+19:L2=INT(RND*13)+1:IF LAB(C2,L2)=1 OR LAB2(C2,L2)=3 OR ABS(C2-14)+ABS(L2-16)<25 THEN 16 ELSE LAB2(C2,L2)=4:GOTO 17 17 DIR1=INT(RND*4)+1:PERS=1:C=C1:L=L1:DIR=DIR1:GOSUB 31:DIR2=INT(RND*4)+1:PERS=2:C=C2:L=L2:DIR=DIR2:GOSUB 31:LOCATE 1,19:PRINT "1 : PRISONNIER > JOYSTICK et CHASSEUR > CLAVIER":LOCATE 1,21:PRINT "2 : PRISONNIER et CHASSEUR > CLAVIER" 18 IF INKEY(13)=0 OR INKEY(64)=0 THEN CLAV=0:H2=72:D2=75:G2=74:H1=0:D1=1:G1=8:T1=6:GOTO 19 ELSE IF INKEY(14)=0 OR INKEY(65)=0 THEN CLAV=1:H2=58:G2=60:D2=53:H1=0:D1=1:G1=8:T1=6:GOTO 19 ELSE 18 19 LOCATE 1,19:PRINT STRING$(60," "):LOCATE 1,21:PRINT STRING$(60," "):LOCATE 3,18:PRINT "DISTANCE DE LA SORTIE: PAS":LOCATE 50,18:PRINT "DISTANCE DU PRISONNIER: PAS":GOSUB 359:GOSUB 360:A$="DIRECTION SUIVIE:":LOCATE 5,20:PRINT A$:LOCATE 53,20 20 PRINT A$:ON DIR2 GOTO 21,22,23,24 21 LOCATE 23,20:PRINT "NORD ":GOTO 25 22 LOCATE 23,20:PRINT "EST ":GOTO 25 23 LOCATE 23,20:PRINT "SUD ":GOTO 25 24 LOCATE 23,20:PRINT "OUEST " 25 ON DIR1 GOTO 26,27,28,29 26 LOCATE 71,20:PRINT "NORD ":GOTO 30 27 LOCATE 71,20:PRINT "EST ":GOTO 30 28 LOCATE 71,20:PRINT "SUD ":GOTO 30 29 LOCATE 71,20:PRINT "OUEST " 30 GOTO 139 31 REM 32 REM REPRESENTATION 3D 33 REM 34 ON DIR GOTO 35,38,40,42 35 MAZ(1)=LAB(C-1,L):MAZ(2)=LAB(C+1,L):MAZ(3)=LAB(C-1,L-1):MAZ(4)=LAB(C,L-1):MAZ(5)=LAB(C+1,L-1) 36 IF L=1 THEN 44 ELSE MAZ(6)=LAB(C-1,L-2):MAZ(7)=LAB(C,L-2):MAZ(8)=LAB(C+1,L-2) 37 IF L=2 THEN 44 ELSE MAZ(9)=LAB(C-1,L-3):MAZ(10)=LAB(C,L-3):MAZ(11)=LAB(C+1,L-3):GOTO 44 38 MAZ(1)=LAB(C,L-1):MAZ(2)=LAB(C,L+1):MAZ(3)=LAB(C+1,L-1):MAZ(4)=LAB(C+1,L):MAZ(5)=LAB(C+1,L+1):IF C=24 THEN 44 ELSE MAZ(6)=LAB(C+2,L-1):MAZ(7)=LAB(C+2,L):MAZ(8)=LAB(C+2,L+1) 39 IF C=23 THEN 44 ELSE MAZ(9)=LAB(C+3,L-1):MAZ(10)=LAB(C+3,L):MAZ(11)=LAB(C+3,L+1):GOTO 44 40 MAZ(1)=LAB(C+1,L):MAZ(2)=LAB(C-1,L):MAZ(3)=LAB(C+1,L+1):MAZ(4)=LAB(C,L+1):MAZ(5)=LAB(C-1,L+1):IF L=19 THEN 44 ELSE MAZ(6)=LAB(C+1,L+2):MAZ(7)=LAB(C,L+2):MAZ(8)=LAB(C-1,L+2) 41 IF L=18 THEN 44 ELSE MAZ(9)=LAB(C+1,L+3):MAZ(10)=LAB(C,L+3):MAZ(11)=LAB(C-1,L+3):GOTO 44 42 MAZ(1)=LAB(C,L+1):MAZ(2)=LAB(C,L-1):MAZ(3)=LAB(C-1,L+1):MAZ(4)=LAB(C-1,L):MAZ(5)=LAB(C-1,L-1):IF C=1 THEN 44 ELSE MAZ(6)=LAB(C-2,L+1):MAZ(7)=LAB(C-2,L):MAZ(8)=LAB(C-2,L-1) 43 IF C=2 THEN 44 ELSE MAZ(9)=LAB(C-3,L+1):MAZ(10)=LAB(C-3,L):MAZ(11)=LAB(C-3,L-1) 44 IF PERS=2 THEN ORIGIN 16,160:WINDOW 3,30,2,15:CLS:WINDOW 1,80,1,25 ELSE ORIGIN 400,160:WINDOW 51,78,2,15:CLS:WINDOW 1,80,1,25 45 IF MAZ(1)=1 THEN 46 ELSE GOTO 64 46 GOSUB 70:IF MAZ(4)=1 THEN 47 ELSE GOTO 48 47 GOSUB 113:IF MAZ(2)=1 THEN GOSUB 73:RETURN ELSE GOSUB 119:RETURN 48 IF MAZ(2)=1 THEN GOSUB 73:GOTO 49 ELSE GOSUB 86:GOTO 50 49 IF MAZ(5)=1 THEN GOSUB 83:GOTO 50 ELSE GOTO 51 50 IF MAZ(3)=1 THEN GOSUB 77:GOTO 52 ELSE GOTO 53 51 IF MAZ(3)=1 THEN GOSUB 77:GOTO 55 ELSE GOTO 56 52 IF MAZ(7)=1 THEN GOSUB 125:RETURN ELSE GOTO 54 53 IF MAZ(7)=1 THEN GOSUB 125:GOSUB 122:RETURN ELSE GOSUB 92:GOTO 58 54 IF MAZ(6)=1 THEN GOSUB 89:GOTO 58 ELSE GOTO 57 55 IF MAZ(7)=1 THEN GOSUB 128:GOSUB 125:RETURN ELSE GOSUB 98:GOTO 59 56 IF MAZ(7)=1 THEN GOSUB 122:GOSUB 125:GOSUB 128:RETURN ELSE GOSUB 92:GOSUB 98:GOTO 60 57 IF MAZ(8)=1 THEN GOSUB 95:GOTO 61 ELSE GOTO 62 58 IF MAZ(8)=1 THEN GOSUB 95:GOTO 60 ELSE GOTO 63 59 IF MAZ(6)=1 THEN GOSUB 89:GOTO 60 ELSE GOTO 61 60 IF MAZ(10)=1 THEN GOSUB 134:RETURN ELSE GOSUB 107:GOSUB 101:RETURN 61 IF MAZ(10)=1 THEN GOSUB 134:GOSUB 131:RETURN ELSE GOSUB 104:GOSUB 107:RETURN 62 IF MAZ(10)=1 THEN GOSUB 131:GOSUB 134:GOSUB 137:RETURN ELSE GOSUB 104:GOSUB 110:RETURN 63 IF MAZ(10)=1 THEN GOSUB 134:GOSUB 137:RETURN ELSE GOSUB 110:GOSUB 101:RETURN 64 IF MAZ(2)=1 THEN GOSUB 73:GOTO 65 ELSE GOTO 66 65 IF MAZ(4)=1 THEN GOSUB 116:GOSUB 113:RETURN ELSE GOTO 67 66 IF MAZ(4)=1 THEN GOSUB 113:GOSUB 116:GOSUB 119:RETURN ELSE GOSUB 80:GOSUB 86:GOTO 52 67 IF MAZ(3)=1 THEN GOSUB 80:GOTO 68 ELSE GOTO 55 68 IF MAZ(5)=1 THEN GOSUB 83:GOTO 52 ELSE GOTO 55 69 REM 70 REM DALLE 1 71 PLOT 0,180:DRAW 38,144:DRAW 38,28:DRAW 0,0 72 RETURN 73 REM DALLE 2 74 PLOT 223,180:DRAW 185,144:DRAW 185,28:DRAW 223,0 75 RETURN 76 REM DALLE 3 77 PLOT 38,144:DRAW 68,120:DRAW 68,48:DRAW 38,28 78 RETURN 79 REM DALLE 3' 80 PLOT 38,144:DRAW 68,120:DRAW 68,48:DRAW 38,28:DRAW 38,144:DRAW 0,144:PLOT 38,28:DRAW 0,28 81 RETURN 82 REM DALLE 5 83 PLOT 185,144:DRAW 155,120:DRAW 155,48:DRAW 185,28 84 RETURN 85 REM DALLE 5' 86 PLOT 185,144:DRAW 155,120:DRAW 155,48:DRAW 185,28:DRAW 185,144:DRAW 223,144:PLOT 185,28:DRAW 223,28 87 RETURN 88 REM DALLE 6 89 PLOT 68,120:DRAW 92,100:DRAW 92,66:DRAW 68,48 90 RETURN 91 REM DALLE 6' 92 PLOT 68,120:DRAW 92,100:DRAW 92,66:DRAW 68,48:DRAW 68,120:DRAW 38,120:PLOT 68,48:DRAW 38,48 93 RETURN 94 REM DALLE 8 95 PLOT 155,120:DRAW 131,100:DRAW 131,66:DRAW 155,48 96 RETURN 97 REM DALLE 8' 98 PLOT 155,120:DRAW 131,100:DRAW 131,66:DRAW 155,48:DRAW 155,120:DRAW 185,120:PLOT 155,48:DRAW 185,48 99 RETURN 100 REM DALLE 9 101 PLOT 92,100:DRAW 112,80:DRAW 92,66 102 RETURN 103 REM DALLE 9' 104 PLOT 92,100:DRAW 112,80:DRAW 92,66:DRAW 92,100:DRAW 68,100:PLOT 92,66:DRAW 68,66 105 RETURN 106 REM DALLE 11 107 PLOT 131,100:DRAW 112,80:DRAW 131,66 108 RETURN 109 REM DALLE 11' 110 PLOT 131,100:DRAW 112,80:DRAW 131,66:DRAW 131,100:DRAW 155,100:PLOT 131,66:DRAW 155,66 111 RETURN 112 REM DALLE CARREE 4 113 PLOT 38,144:DRAW 185,144:DRAW 185,28:DRAW 38,28:DRAW 38,144 114 RETURN 115 REM DALLE CARREE 3 116 PLOT 0,28:DRAW 38,28:DRAW 38,144:DRAW 0,144 117 RETURN 118 REM DALLE CARRE 5 119 PLOT 223,28:DRAW 185,28:DRAW 185,144:DRAW 223,144 120 RETURN 121 REM DALLE CARREE 6 122 PLOT 38,48:DRAW 68,48:DRAW 68,120:DRAW 38,120 123 RETURN 124 REM DALLE CARREE 7 125 PLOT 68,120:DRAW 155,120:DRAW 155,48:DRAW 68,48:DRAW 68,120 126 RETURN 127 REM DALLE CARREE 8 128 PLOT 185,48:DRAW 155,48:DRAW 155,120:DRAW 185,120 129 RETURN 130 REM DALLE CARREE 9 131 PLOT 68,66:DRAW 92,66:DRAW 92,100:DRAW 68,100 132 RETURN 133 REM DALLE CARREE 10 134 PLOT 92,66:DRAW 131,66:DRAW 131,100:DRAW 92,100:DRAW 92,66 135 RETURN 136 REM DALLE CARREE 11 137 PLOT 155,66:DRAW 131,66:DRAW 131,100:DRAW 155,100 138 RETURN 139 IF INKEY(H1)=0 THEN 145 140 IF INKEY(G1)=0 THEN 150 141 IF INKEY(D1)=0 THEN 151 142 IF INKEY(T1)=0 THEN 156 143 GOSUB 162:IF TIR=1 THEN GOSUB 304:GOTO 205 ELSE GOTO 205 144 C=C1:L=L1:DIR=DIR1:PERS=1:GOSUB 31:GOSUB 162:IF TIR=1 THEN GOSUB 304:GOTO 205 ELSE GOTO 205 145 ON DIR1 GOTO 146,147,148,149 146 IF LAB(C1,L1-1)=1 OR LAB2(C1,L1-1)>1 THEN 205 ELSE LAB2(C1,L1)=0:L1=L1-1:LAB2(C1,L1)=3:GOSUB 360:GOTO 144 147 IF LAB(C1+1,L1)=1 OR LAB2(C1+1,L1)>1 THEN 205 ELSE LAB2(C1,L1)=0:C1=C1+1:LAB2(C1,L1)=3:GOSUB 360:GOTO 144 148 IF LAB(C1,L1+1)=1 OR LAB2(C1,L1+1)>1 THEN 205 ELSE LAB2(C1,L1)=0:L1=L1+1:LAB2(C1,L1)=3:GOSUB 360:GOTO 144 149 IF LAB(C1-1,L1)=1 OR LAB2(C1-1,L1)>1 THEN 205 ELSE LAB2(C1,L1)=0:C1=C1-1:LAB2(C1,L1)=3:GOSUB 360:GOTO 144 150 ON DIR1 GOTO 154,155,152,153 151 ON DIR1 GOTO 152,153,154,155 152 DIR1=2:LOCATE 71,20:PRINT "EST ":GOTO 144 153 DIR1=3:LOCATE 71,20:PRINT "SUD ":GOTO 144 154 DIR1=4:LOCATE 71,20:PRINT "OUEST ":GOTO 144 155 DIR1=1:LOCATE 71,20:PRINT "NORD ":GOTO 144 156 IF TIR=1 THEN 143 157 ON DIR1 GOTO 158,159,160,161 158 IF LAB(C1,L1-1)=1 THEN 143 ELSE DIRECTION=1:SOUND 1,1000,20,7,0,0,30:TIR=1:C3=C1:L3=L1:GOTO 143 159 IF LAB(C1+1,L1)=1 THEN 143 ELSE DIRECTION=2:SOUND 1,1000,20,7,0,0,30:TIR=1:C3=C1:L3=L1:GOTO 143 160 IF LAB(C1,L1+1)=1 THEN 143 ELSE DIRECTION=3:SOUND 1,1000,20,7,0,0,30:TIR=1:C3=C1:L3=L1:GOTO 143 161 IF LAB(C1-1,L1)=1 THEN 143 ELSE DIRECTION=4:SOUND 1,1000,20,7,0,0,30:TIR=1:C3=C1:L3=L1:GOTO 143 162 ORIGIN 400,160:ON DIR1 GOTO 163,175,184,196 163 IF LAB2(C1,L1-1)>1 THEN 165 ELSE 164 164 IF LAB2(C1,L1-1)=1 THEN RETURN ELSE LOCATE 64,13:PRINT " ":GOTO 167 165 IF LAB2(C1,L1-1)=4 THEN LOCATE 64,13:PRINT CHR$(249):GOTO 167 166 IF LAB2(C1,L1-1)=5 AND DIREC=1 THEN PAPER 1:PEN 0:LOCATE 62,10:PRINT "SORTIE":PAPER 0:PEN 1:RETURN ELSE RETURN 167 IF LAB2(C1,L1-2)>1 THEN 169 ELSE 168 168 IF LAB2(C1,L1-2)=1 THEN RETURN ELSE LOCATE 65,12:PRINT " ":GOTO 171 169 IF LAB2(C1,L1-2)=4 THEN LOCATE 65,12:PRINT CHR$(249):GOTO 171 170 IF LAB2(C1,L1-2)=5 AND DIREC=1 THEN PAPER 1:PEN 0:LOCATE 62,10:PRINT "SORTIE":PAPER 0:PEN 1:RETURN ELSE RETURN 171 IF LAB2(C1,L1-3)>1 THEN 173 ELSE 172 172 IF LAB2(C1,L1-3)=1 THEN RETURN ELSE LOCATE 65,11:PRINT " ":PLOT 131,66:DRAW 112,80:RETURN 173 IF LAB2(C1,L1-3)=4 THEN LOCATE 65,11:PRINT CHR$(249):RETURN 174 IF LAB2(C1,L1-3)=5 AND DIREC=1 THEN PAPER 1:PEN 0:LOCATE 64,10:PRINT MAJ$:PAPER 0:PEN 1:RETURN ELSE RETURN 175 IF LAB2(C1+1,L1)>1 THEN 177 ELSE 176 176 IF LAB2(C1+1,L1)=1 THEN RETURN ELSE LOCATE 64,13:PRINT " ":GOTO 178 177 IF LAB2(C1+1,L1)=4 THEN LOCATE 64,13:PRINT CHR$(249):GOTO 178 178 IF LAB2(C1+2,L1)>1 THEN 180 ELSE 179 179 IF LAB2(C1+2,L1)=1 THEN RETURN ELSE LOCATE 65,12:PRINT " ":GOTO 181 180 IF LAB2(C1+2,L1)=4 THEN LOCATE 65,12:PRINT CHR$(249):GOTO 181 181 IF LAB2(C1+3,L1)>1 THEN 183 ELSE 182 182 IF LAB2(C1+3,L1)=1 THEN RETURN ELSE LOCATE 65,11:PRINT " ":PLOT 131,66:DRAW 112,80:RETURN 183 IF LAB2(C1+3,L1)=4 THEN LOCATE 65,11:PRINT CHR$(249):RETURN 184 IF LAB2(C1,L1+1)>1 THEN 186 ELSE 185 185 IF LAB2(C1,L1+1)=1 THEN RETURN ELSE LOCATE 64,13:PRINT " ":GOTO 188 186 IF LAB2(C1,L1+1)=4 THEN LOCATE 64,13:PRINT CHR$(249):GOTO 188 187 IF LAB2(C1,L1+1)=5 AND DIREC=3 THEN PAPER 1:PEN 0:LOCATE 62,10:PRINT "SORTIE":PAPER 0:PEN 1:RETURN 188 IF LAB2(C1,L1+2)>1 THEN 190 ELSE 189 189 IF LAB2(C1,L1+2)=1 THEN RETURN ELSE LOCATE 65,12:PRINT " ":GOTO 192 190 IF LAB2(C1,L1+2)=4 THEN LOCATE 65,12:PRINT CHR$(249):GOTO 192 191 IF LAB2(C1,L1+2)=5 AND DIREC=3 THEN PAPER 1:PEN 0:LOCATE 62,10:PRINT "SORTIE":PAPER 0:PEN 1:RETURN 192 IF LAB2(C1,L1+3)>1 THEN 194 ELSE 193 193 IF LAB2(C1,L1+3)=1 THEN RETURN ELSE LOCATE 65,11:PRINT " ":PLOT 131,66:DRAW 112,80:RETURN 194 IF LAB2(C1,L1+3)=4 THEN LOCATE 65,11:PRINT CHR$(249):RETURN 195 IF LAB2(C1,L1+3)=5 AND DIREC=3 THEN PAPER 1:PEN 0:LOCATE 64,10:PRINT MAJ$:PAPER 0:PEN 1:RETURN 196 IF LAB2(C1-1,L1)>1 THEN 198 ELSE 197 197 IF LAB2(C1-1,L1)=1 THEN RETURN ELSE LOCATE 64,13:PRINT " ":GOTO 199 198 IF LAB2(C1-1,L1)=4 THEN LOCATE 64,13:PRINT CHR$(249):GOTO 199 199 IF LAB2(C1-2,L1)>1 THEN 201 ELSE 200 200 IF LAB2(C1-2,L1)=1 THEN RETURN ELSE LOCATE 65,12:PRINT " ":GOTO 202 201 IF LAB2(C1-2,L1)=4 THEN LOCATE 65,12:PRINT CHR$(249):GOTO 202 202 IF LAB2(C1-3,L1)>1 THEN 204 ELSE 203 203 IF LAB2(C1-3,L1)=1 THEN RETURN ELSE LOCATE 65,11:PRINT " ":PLOT 131,66:DRAW 112,80:RETURN 204 IF LAB2(C1-3,L1)=4 THEN LOCATE 65,11:PRINT CHR$(249):RETURN 205 IF INKEY(H2)=0 THEN 210 206 IF INKEY(G2)=0 THEN 220 207 IF INKEY(D2)=0 THEN 221 208 GOSUB 226:IF TIR=1 THEN GOSUB 287:GOSUB 304:GOTO 269 ELSE GOTO 269 209 C=C2:L=L2:DIR=DIR2:PERS=2:GOSUB 31:GOSUB 226:IF TIR=1 THEN GOSUB 287:GOTO 269 ELSE GOTO 269 210 ON DIR2 GOTO 211,215,216,219 211 IF LAB(C2,L2-1)=1 AND LAB2(C2,L2-1)<>5 OR LAB2(C2,L2-1)=3 THEN 139 212 IF LAB(C2,L2-1)=0 AND LAB2(C2,L2-1)<>6 THEN LAB2(C2,L2)=0:L2=L2-1:LAB2(C2,L2)=4:GOSUB 360:GOSUB 359:GOTO 209 213 IF LAB2(C2,L2-1)=5 AND DIREC=1 THEN 352 ELSE GOTO 361 214 IF LAB(C2,L2-1)=5 THEN 352 215 IF LAB(C2+1,L2)=1 OR LAB2(C2+1,L2)=3 THEN 139 ELSE LAB2(C2,L2)=0:C2=C2+1:LAB2(C2,L2)=4:GOSUB 359:GOSUB 360:GOTO 209 216 IF LAB(C2,L2+1)=1 AND LAB2(C2,L2+1)<>5 OR LAB2(C2,L2+1)=3 THEN 139 217 IF LAB(C2,L2+1)=0 AND LAB2(C2,L2+1)<>6 THEN LAB2(C2,L2)=0:L2=L2+1:LAB2(C2,L2)=4:GOSUB 360:GOSUB 359:GOTO 209 218 IF LAB2(C2,L2+1)=5 AND DIREC=3 THEN 352 ELSE GOTO 361 219 IF LAB(C2-1,L2)=1 OR LAB2(C2-1,L2)=3 THEN 139 ELSE LAB2(C2,L2)=0:C2=C2-1:LAB2(C2,L2)=4:GOSUB 359:GOSUB 360:GOTO 209 220 ON DIR2 GOTO 224,225,222,223 221 ON DIR2 GOTO 222,223,224,225 222 DIR2=2:LOCATE 23,20:PRINT "EST ":GOTO 209 223 DIR2=3:LOCATE 23,20:PRINT "SUD ":GOTO 209 224 DIR2=4:LOCATE 23,20:PRINT "OUEST ":GOTO 209 225 DIR2=1:LOCATE 23,20:PRINT "NORD ":GOTO 209 226 ORIGIN 16,160:ON DIR2 GOTO 227,239,248,260 227 IF LAB2(C2,L2-1)>1 THEN 229 ELSE 228 228 IF LAB2(C2,L2-1)=1 THEN RETURN ELSE LOCATE 16,13:PRINT " ":GOTO 231 229 IF LAB2(C2,L2-1)=3 THEN LOCATE 16,13:PRINT CHR$(249):GOTO 231 230 IF LAB2(C2,L2-1)=5 AND DIREC=1 THEN PAPER 1:PEN 0:LOCATE 14,10:PRINT "SORTIE":PAPER 0:PEN 1:RETURN ELSE RETURN 231 IF LAB2(C2,L2-2)>1 THEN 233 ELSE 232 232 IF LAB2(C2,L2-2)=1 THEN RETURN ELSE LOCATE 17,12:PRINT " ":GOTO 235 233 IF LAB2(C2,L2-2)=3 THEN LOCATE 17,12:PRINT CHR$(249):GOTO 235 234 IF LAB2(C2,L2-2)=5 AND DIREC=1 THEN PAPER 1:PEN 0:LOCATE 14,10:PRINT "SORTIE":PAPER 0:PEN 1:RETURN ELSE RETURN 235 IF LAB2(C2,L2-3)>1 THEN 237 ELSE 236 236 IF LAB2(C2,L2-3)=1 THEN RETURN ELSE LOCATE 17,11:PRINT " ":PLOT 131,66:DRAW 112,80:RETURN 237 IF LAB2(C2,L2-3)=3 THEN LOCATE 17,11:PRINT CHR$(249):RETURN 238 IF LAB2(C2,L2-3)=5 AND DIREC=1 THEN PAPER 1:PEN 0:LOCATE 16,10:PRINT MAJ$:PAPER 0:PEN 1:RETURN ELSE RETURN 239 IF LAB2(C2+1,L2)>1 THEN 241 ELSE 240 240 IF LAB2(C2+1,L2)=1 THEN RETURN ELSE LOCATE 16,13:PRINT " ":GOTO 242 241 IF LAB2(C2+1,L2)=3 THEN LOCATE 16,13:PRINT CHR$(249):GOTO 242 242 IF LAB2(C2+2,L2)>1 THEN 244 ELSE 243 243 IF LAB2(C2+2,L2)=1 THEN RETURN ELSE LOCATE 17,12:PRINT " ":GOTO 245 244 IF LAB2(C2+2,L2)=3 THEN LOCATE 17,12:PRINT CHR$(249):GOTO 245 245 IF LAB2(C2+3,L2)>1 THEN 247 ELSE 246 246 IF LAB2(C2+3,L2)=1 THEN RETURN ELSE LOCATE 17,11:PRINT " ":PLOT 131,66:DRAW 112,80:RETURN 247 IF LAB2(C2+3,L2)=3 THEN LOCATE 17,11:PRINT CHR$(249):RETURN 248 IF LAB2(C2,L2+1)>1 THEN 250 ELSE 249 249 IF LAB2(C2,L2+1)=1 THEN RETURN ELSE LOCATE 16,13:PRINT " ":GOTO 252 250 IF LAB2(C2,L2+1)=3 THEN LOCATE 16,13:PRINT CHR$(249):GOTO 252 251 IF LAB2(C2,L2+1)=5 AND DIREC=3 THEN PAPER 1:PEN 0:LOCATE 14,10:PRINT "SORTIE":PAPER 0:PEN 1:RETURN 252 IF LAB2(C2,L2+2)>1 THEN 254 ELSE 253 253 IF LAB2(C2,L2+2)=1 THEN RETURN ELSE LOCATE 17,12:PRINT " ":GOTO 256 254 IF LAB2(C2,L2+2)=3 THEN LOCATE 17,12:PRINT CHR$(249):GOTO 256 255 IF LAB2(C2,L2+2)=5 AND DIREC=3 THEN PAPER 1:PEN 0:LOCATE 14,10:PRINT "SORTIE":PAPER 0:PEN 1:RETURN 256 IF LAB2(C2,L2+3)>1 THEN 258 ELSE 257 257 IF LAB2(C2,L2+3)=1 THEN RETURN ELSE LOCATE 17,11:PRINT " ":PLOT 131,66:DRAW 112,80:RETURN 258 IF LAB2(C2,L2+3)=3 THEN LOCATE 17,11:PRINT CHR$(249):RETURN 259 IF LAB2(C2,L2+3)=5 AND DIREC=3 THEN PAPER 1:PEN 0:LOCATE 16,10:PRINT MAJ$:PAPER 0:PEN 1:RETURN 260 IF LAB2(C2-1,L2)>1 THEN 262 ELSE GOTO 261 261 IF LAB2(C2-1,L2)=1 THEN RETURN ELSE LOCATE 16,13:PRINT " ":GOTO 263 262 IF LAB2(C2-1,L2)=3 THEN LOCATE 16,13:PRINT CHR$(249):GOTO 263 263 IF LAB2(C2-2,L2)>1 THEN 265 ELSE 264 264 IF LAB2(C2-2,L2)=1 THEN RETURN ELSE LOCATE 17,12:PRINT " ":GOTO 266 265 IF LAB2(C2-2,L2)=3 THEN LOCATE 17,12:PRINT CHR$(249):GOTO 266 266 IF LAB2(C2-3,L2)>1 THEN 268 ELSE 267 267 IF LAB2(C2-3,L2)=1 THEN RETURN ELSE LOCATE 17,11:PRINT " ":PLOT 131,66:DRAW 112,80:RETURN 268 IF LAB2(C2-3,L2)=3 THEN LOCATE 17,11:PRINT CHR$(249):RETURN 269 IF TIR=0 THEN GOTO 139 270 ON DIRECTION GOTO 271,275,279,283 271 L3=L3-1:IF LAB(C3,L3)=1 THEN TIR=0:LAB2(C3,L3+1)=0:GOSUB 287:GOSUB 304:GOTO 139 272 IF LAB2(C3,L3+1)<>3 THEN LAB2(C3,L3+1)=0 273 IF LAB2(C3,L3)=4 THEN 361 274 LAB2(C3,L3)=6:GOSUB 287:GOSUB 304:GOTO 139 275 C3=C3+1:IF LAB(C3,L3)=1 THEN TIR=0:LAB2(C3-1,L3)=0:GOSUB 287:GOSUB 304:GOTO 139 276 IF LAB2(C3-1,L3)<>3 THEN LAB2(C3-1,L3)=0 277 IF LAB2(C3,L3)=4 THEN 361 278 LAB2(C3,L3)=6:GOSUB 304:GOSUB 287:GOTO 139 279 L3=L3+1:IF LAB(C3,L3)=1 THEN TIR=0:LAB2(C3,L3-1)=0:GOSUB 287:GOSUB 304:GOTO 139 280 IF LAB2(C3,L3-1)<>3 THEN LAB2(C3,L3-1)=0 281 IF LAB2(C3,L3)=4 THEN 361 282 LAB2(C3,L3)=6:GOSUB 304:GOSUB 287:GOTO 139 283 C3=C3-1:IF LAB(C3,L3)=1 THEN TIR=0:LAB2(C3+1,L3)=0:GOSUB 287:GOSUB 304:GOTO 139 284 IF LAB2(C3+1,L3)<>3 THEN LAB2(C3+1,L3)=0 285 IF LAB2(C3,L3)=4 THEN 361 286 LAB2(C3,L3)=6:GOSUB 304:GOSUB 287:GOTO 139 287 ON DIR2 GOTO 288,292,296,300 288 IF LAB2(C2,L2-1)=6 THEN LOCATE 16,13:PRINT B$:LOCATE 16,14:PRINT C$:RETURN ELSE IF LAB(C2,L2-1)=0 THEN LOCATE 16,13:PRINT " ":LOCATE 16,14:PRINT " " 289 IF LAB(C2,L2-1)=1 THEN RETURN ELSE IF LAB2(C2,L2-2)=6 THEN LOCATE 16,12:PRINT "O":RETURN ELSE IF LAB(C2,L2-2)=0 THEN LOCATE 16,12:PRINT " " 290 IF LAB(C2,L2-2)=1 THEN RETURN ELSE IF LAB2(C2,L2-3)=6 THEN LOCATE 17,11:PRINT "O":RETURN 291 RETURN 292 IF LAB2(C2+1,L2)=6 THEN LOCATE 16,13:PRINT B$:LOCATE 16,14:PRINT C$:RETURN ELSE IF LAB(C2+1,L2)=0 THEN LOCATE 16,13:PRINT " ":LOCATE 16,14:PRINT " " 293 IF LAB(C2+1,L2)=1 THEN RETURN ELSE IF LAB2(C2+2,L2)=6 THEN LOCATE 16,12:PRINT "O":RETURN ELSE IF LAB(C2+2,L2)=0 THEN LOCATE 16,12:PRINT " " 294 IF LAB(C2+2,L2)=1 THEN RETURN ELSE IF LAB2(C2+3,L2)=6 THEN LOCATE 17,11:PRINT "O":RETURN 295 RETURN 296 IF LAB2(C2,L2+1)=6 THEN LOCATE 16,13:PRINT B$:LOCATE 16,14:PRINT C$:RETURN ELSE IF LAB(C2,L2+1)=0 THEN LOCATE 16,13:PRINT " ":LOCATE 16,14:PRINT " " 297 IF LAB(C2,L2+1)=1 THEN RETURN ELSE IF LAB2(C2,L2+2)=6 THEN LOCATE 16,12:PRINT "O":RETURN ELSE IF LAB(C2,L2+2)=0 THEN LOCATE 16,12:PRINT " " 298 IF LAB(C2,L2+2)=1 THEN RETURN ELSE IF LAB2(C2,L2+3)=6 THEN LOCATE 17,11:PRINT "O":RETURN 299 RETURN 300 IF LAB2(C2-1,L2)=6 THEN LOCATE 16,13:PRINT B$:LOCATE 16,14:PRINT C$:RETURN ELSE IF LAB(C2-1,L2)=0 THEN LOCATE 16,13:PRINT " ":LOCATE 16,14:PRINT " " 301 IF LAB(C2-1,L2)=1 THEN RETURN ELSE IF LAB2(C2-2,L2)=6 THEN LOCATE 16,12:PRINT "O":RETURN ELSE IF LAB(C2-2,L2)=0 THEN LOCATE 16,12:PRINT " " 302 IF LAB(C2-2,L2)=1 THEN RETURN ELSE IF LAB2(C2-3,L2)=6 THEN LOCATE 17,11:PRINT "O":RETURN 303 RETURN 304 ON DIR1 GOTO 305,309,313,317 305 IF LAB2(C1,L1-1)=6 THEN LOCATE 64,13:PRINT B$:LOCATE 64,14:PRINT C$:RETURN ELSE IF LAB(C1,L1-1)=0 THEN LOCATE 64,13:PRINT " ":LOCATE 64,14:PRINT " " 306 IF LAB(C1,L1-1)=1 THEN RETURN ELSE IF LAB2(C1,L1-2)=6 THEN LOCATE 64,12:PRINT "O":RETURN ELSE IF LAB(C1,L1-2)=0 THEN LOCATE 64,12:PRINT " " 307 IF LAB(C1,L1-2)=1 THEN RETURN ELSE IF LAB2(C1,L1-3)=6 THEN LOCATE 65,11:PRINT "O":RETURN 308 RETURN 309 IF LAB2(C1+1,L1)=6 THEN LOCATE 64,13:PRINT B$:LOCATE 64,14:PRINT C$:RETURN ELSE IF LAB(C1+1,L1)=0 THEN LOCATE 64,13:PRINT " ":LOCATE 64,14:PRINT " " 310 IF LAB(C1+1,L1)=1 THEN RETURN ELSE IF LAB2(C1+2,L1)=6 THEN LOCATE 64,12:PRINT "O":RETURN ELSE IF LAB(C1+2,L1)=0 THEN LOCATE 64,12:PRINT " " 311 IF LAB(C1+2,L1)=1 THEN RETURN ELSE IF LAB2(C1+3,L1)=6 THEN LOCATE 65,11:PRINT "O":RETURN 312 RETURN 313 IF LAB2(C1,L1+1)=6 THEN LOCATE 64,13:PRINT B$:LOCATE 64,14:PRINT C$:RETURN ELSE IF LAB(C1,L1+1)=0 THEN LOCATE 64,13:PRINT " ":LOCATE 64,14:PRINT " " 314 IF LAB(C1,L1+1)=1 THEN RETURN ELSE IF LAB2(C1,L1+2)=6 THEN LOCATE 64,12:PRINT "O":RETURN ELSE IF LAB(C1,L1+2)=0 THEN LOCATE 64,12:PRINT " " 315 IF LAB(C1,L1+2)=1 THEN RETURN ELSE IF LAB2(C1,L1+3)=6 THEN LOCATE 65,11:PRINT "O":RETURN 316 RETURN 317 IF LAB2(C1-1,L1)=6 THEN LOCATE 64,13:PRINT B$:LOCATE 64,14:PRINT C$:RETURN ELSE IF LAB(C1-1,L1)=0 THEN LOCATE 64,13:PRINT " ":LOCATE 64,14:PRINT " " 318 IF LAB(C1-1,L1)=1 THEN RETURN ELSE IF LAB2(C1-2,L1)=6 THEN LOCATE 64,12:PRINT "O":RETURN ELSE IF LAB(C1-2,L1)=0 THEN LOCATE 64,12:PRINT " " 319 IF LAB(C1-2,L1)=1 THEN RETURN ELSE IF LAB2(C1-3,L1)=6 THEN LOCATE 65,11:PRINT "O":RETURN 320 RETURN 321 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 322 DATA 1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1 323 DATA 1,0,0,0,1,0,1,0,1,1,1,0,1,0,1,0,1,0,1,0,1,1,1,1,0,1 324 DATA 1,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,1 325 DATA 1,0,0,0,1,0,1,0,1,0,1,1,1,0,1,1,1,1,1,0,1,0,1,1,0,1 326 DATA 1,1,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,1 327 DATA 1,0,1,1,0,1,0,1,1,1,1,0,0,0,1,1,1,1,1,0,1,1,1,1,0,1 328 DATA 1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1 329 DATA 1,0,1,1,1,0,1,1,1,0,1,0,1,0,1,0,1,0,1,0,1,1,0,1,1,1 330 DATA 1,0,1,0,0,0,1,0,0,0,1,0,1,0,1,0,1,1,1,0,0,0,0,0,0,1 331 DATA 1,0,0,0,1,0,0,0,1,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,0,1 332 DATA 1,1,1,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1 333 DATA 1,0,0,0,0,0,0,0,1,0,1,0,1,0,1,1,1,1,1,1,0,1,0,1,0,1 334 DATA 1,0,1,0,1,0,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1 335 DATA 1,0,1,0,1,0,1,0,1,0,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1 336 DATA 1,0,1,0,0,0,1,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1 337 DATA 1,0,1,0,1,0,0,0,1,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1 338 DATA 1,0,0,0,1,1,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1 339 DATA 1,0,1,1,1,1,0,0,0,1,0,1,0,1,1,1,0,1,1,1,0,1,1,0,1,1 340 DATA 1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1 341 DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 342 REM ****************************** 343 REM ***** POUR LES TRICHEURS ***** 344 REM ****************************** 345 MODE 1:DIM LAB(25,21) 346 FOR L=0 TO 20 347 FOR C=0 TO 25 348 READ LAB(C,L) 349 LOCATE C+2,L+2:IF LAB(C,L)=1 THEN PRINT CHR$(143) 350 NEXT C 351 NEXT L 352 FOR F=1 TO 900:NEXT 353 WINDOW 3,30,2,15:CLS:WINDOW 1,80,1,25 354 LOCATE 5,6:PRINT "BRAVO!! VOUS AVEZ REUSSI":LOCATE 5,8:PRINT "A SORTIR DU LABYRINTHE." 355 LOCATE 6,12:PRINT "Une autre partie ? (O/N)":FOR F=1 TO 100:NEXT 356 IF INKEY(34)=0 THEN RUN 357 IF INKEY(46)=0 THEN MODE 2:END 358 GOTO 356 359 LOCATE 25,18:PRINT ABS(C2-C5)+ABS(L2-L5):RETURN 360 LOCATE 73,18:PRINT ABS(C2-C1)+ABS(L2-L1):RETURN 361 WINDOW 3,30,2,15:CLS:WINDOW 1,80,1,25 362 ORIGIN 0,0 363 LOCATE 9,3:PRINT "VOUS ETES MORT" 364 PLOT 152,224:DRAW 152,272:DRAW 168,288:DRAW 168,320:DRAW 152,336:DRAW 96,336:DRAW 80,320:DRAW 80,288:DRAW 96,272:DRAW 96,224:DRAW 152,224 365 PLOT 152,240:DRAW 96,240:PLOT 152,256:DRAW 96,256 366 PLOT 16*8,18*16:DRAW 15*8,18*16:DRAW 15*8,17*16:DRAW 16*8,17*16:DRAW 16*8,18*16 367 PLOT 14*8,20*16:DRAW 12*8,20*16:DRAW 12*8,19*16:DRAW 13*8,18*16:DRAW 14*8,18*16:DRAW 14*8,20*16 368 PLOT 17*8,20*16:DRAW 17*8,18*16:DRAW 18*8,18*16:DRAW 19*8,19*16:DRAW 19*8,20*16:DRAW 17*8,20*16 369 LOCATE 5,14:PRINT "Une autre partie? (O/N)" 370 GOTO 356 |