3 'PROG : PUISSANCE 4
5 'Pour AMSTRAD CPC 464 7 'AUTEUR :Walschaerts William FEVRIER 1985 13 ' 15 'INITIALISATION 17 CLEAR:ON BREAK GOSUB 279 19 SYMBOL AFTER 91:DEFINT A-D,F-Z 21 SYMBOL 93,24,24,24,24,24,24,24,24:SYMBOL 95,0,0,0,255,255,0,0,0:SYMBOL 252,24,24,36,36,66,90,161,161:SYMBOL 253,161,153,66,66,36,36,24,24:SYMBOL 254,126,126,129,129,129,157,137,137:SYMBOL 255,137,137,169,145,129,129,126,126 23 SYMBOL 91,24,24,24,255,255,24,24,24:DIM A(200) 24 INK 0,1 25 DATA 119,106,95,89,80,71 31 ' BOUCLE PRINCIPALE 35 ' 37 ' PRESENTATION 39 SCP=0:SJO=0:BORDER 0:MODE 1:PAPER 0:PEN 3:PRINT" ** PUISSANCE **":PRINT:INK 3,6,24:FOR I=100 TO 120 STEP 1.5:ORIGIN I+55,200:DRAW I,110:NEXT:FOR I=200 TO 205:ORIGIN 170,I:DRAW 130,0:NEXT I 41 FOR I=250 TO 255:ORIGIN I,220:DRAW -15,-30:NEXT 43 PEN 1:LOCATE 4,23:PRINT"----------------------------------------";:LOCATE 4,25:PRINT"Copyright ";CHR$(164);" Walschaerts. W. FEV 85"; 45 LOCATE 2,14:PRINT STRING$(40,210);:PRINT" Appuyez sur ";:PEN 3:PRINT"<ENTER>";:PEN 1:PRINT" Pour commencer.":PRINT STRING$(40,208) 47 GOSUB 299 49 ENV 1,100,3,1:ENT 1,100,2,2:A=0 51 IF A=0 THEN A=120:SOUND 1,200,110,1,1,1 ELSE A=A-1 53 R$=INKEY$:IF R$="" OR R$>=" " THEN 51 55 ' ENTREE PARAMETRES JEUX 57 INK 3,1:CLS:B$="":LOCATE 1,10:PRINT"QUEL EST VOTRE PRENOM ??":LOCATE 13,12:PRINT CHR$(143):LOCATE 1,12:GR=140 59 R$=INKEY$:GR=GR XOR 15:PRINT CHR$(GR);CHR$(8);:IF R$="" THEN 59 61 R$=UPPER$(R$):IF (R$<" " AND ASC(R$)<>13) THEN 59 ELSE IF ASC(R$)=13 THEN 65 ELSE IF (R$>"Z" AND ASC(R$)<>127) THEN 59 ELSE IF ASC(R$)=127 AND LEN(B$)>0 THEN B$=LEFT$(B$,LEN(B$)-1):PRINT CHR$(8);" ";CHR$(8);CHR$(8);:GOTO 59 63 IF LEN(B$)>10 THEN PRINT CHR$(7);:GOTO 59 ELSE B$=B$+R$:PRINT RIGHT$(B$,1);:GOTO 59 65 CLS:BORDER 0:INK 3,1:PAPER 3:CLS:LOCATE 1,5:PRINT"> VOICI MES PIONS : ";CHR$(252):PRINT TAB(22);CHR$(253):PRINT:PRINT"> VOICI LES VOTRES : ";CHR$(254):PRINT TAB(22);CHR$(255) 67 PRINT:PRINT STRING$(40,210):E=0:PRINT"** NIVEAU (1 a 3)":PEN 1:PRINT:PRINT" 1 Jeu modere":PRINT" 2 Jeu defensif":PRINT" 3 Jeu d'attaque":PRINT:PRINT STRING$(40,210) 69 PRINT"SCORE : CPC ù ";B$:PRINT TAB(18);SCP;TAB(24);"ù";TAB(30);SJO 71 A$=INKEY$:IF A$="" OR A$<"1" OR A$>"3" THEN 71 ELSE E=VAL(A$):IF E=3 THEN E=0.5 73 INK 3,6 75 MODE 0:INK 15,9:PAPER 15 :WINDOW #1,1,20,22,25:PAPER #1,5:BORDER 15 77 ' 79 ' CADRE 81 ' 83 CLS:CLS #1:PEN 0:FOR N=1 TO 18 STEP 3:LOCATE 2,N:PRINT" [-[-[-[-[-[-[-[ ";:FOR I=1 TO 2:PRINT" ] ] ] ] ] ] ] ] ";:NEXT I,N 85 FOR I=1 TO 2:PRINT"-----------------":NEXT I:PRINT TAB(4);"1 2 3 4 5 6 7" 87 Q=42:G=0 89 FOR J=1 TO 7:A(J+90)=6:NEXT J:FOR I=1 TO 6:A(I+100)=7:NEXT I 91 FOR I=1 TO 6:FOR J=1 TO 7:A(I*9+J)=-1:NEXT J,I 93 FOR I=0 TO 7:A(I*9)=-2:A(I*9+8)=-2:NEXT I:FOR J=0 TO 8:A(J)=-2:A(63+J)=-2:NEXT J 95 IF FLG=0 THEN ZJ2=INT(RND*2):IF ZJ2>1 THEN 95 97 IF FLG=0 THEN FLG=1 ELSE ZJ2=(ZJ2=1)+1 99 IF ZJ2=1 THEN Z=1:GOTO 103 ELSE IF Z=0 THEN Z=2:GOTO 101 101 J=4:GOTO 119 103 CLS #1:PRINT#1,"En quelle colonne jouez vous ? ";:GOSUB 299 105 R$=INKEY$:IF R$="" OR R$<"1" OR R$>"7" THEN 105 ELSE J=VAL(R$) 107 IF A(J+90)=0 THEN 103 109 CLS #1 111 A=J 113 Z=1:GOSUB 147 115 IF G=1 THEN PRINT#1," BRAVO ! VOUS AVEZ GAGNE !!":GOSUB 285:SJO=SJO+1:GOTO 127 117 GOSUB 165 119 Z=0:GOSUB 147 121 IF G=1 THEN PRINT#1," AH AH AH !! J'AI GAGNE LA PARTIE":GOSUB 285:FOR J=1 TO 200:NEXT J:SCP=SCP+1:PRINT#1,"Je vous donne votre revanche, OK ...?":GOTO 129 123 IF Q<>0 THEN 103 125 PRINT#1," BIEN JOUE !! NOUS SOMMES A EGALITE...":ENT 1,20,3,5:FOR J=1 TO 4:SOUND 1,5,0,50,10,0,1:NEXT J:FOR J=1 TO 2000:NEXT J 127 PRINT#1,"UNE AUTRE PARTIE ???" 129 R$=INKEY$:IF R$="" OR (UPPER$(R$)<>"O" AND UPPER$(R$)<>"N") THEN 129 131 MODE 1:IF UPPER$(R$)="O" THEN GOTO 65 133 GOTO 39 135 RESTORE:FOR NUL=1 TO I:K=(2*J)+2:L=(NUL*2)+(NUL-1) 137 LOCATE K,L:IF Z=0 THEN INK 14,3:PEN 14:PRINT CHR$(252);:LOCATE K,L+1:PRINT CHR$(253);:GOTO 141 139 INK 8,5:PEN 8:PRINT CHR$(254);:LOCATE K,L+1:PRINT CHR$(255);:GOTO 141 141 ' 143 READ MUS:SOUND 1,MUS,10:FOR XY=1 TO 150:NEXT XY:IF NUL<I THEN LOCATE K,L:PRINT" ";:LOCATE K,L+1:PRINT" "; 145 NEXT NUL:RETURN 147 ' DEBUT CALCULS 149 I=A(J+90):GOSUB 135:A(A(J+90)*9+J)=Z:' AFFICHAGE DU PION 151 R=A(J+90):S=J 153 A(A(J+90)+100)=A(A(J+90)+100)-1:A(J+90)=A(J+90)-1 155 Q=Q-1 157 IF Z=0 THEN RETURN 159 ' 161 M=0:O=0:N=4:GOSUB 237:IF D=0 THEN G=0:RETURN 163 G=1:RETURN 165 N=4:S=1:O=2:M=45 167 R=A(S+90):IF R=0 THEN 175 169 A(R*9+S)=0:GOSUB 237 171 IF D=0 THEN A(R*9+S)=-1:GOTO 175 173 J=S:G=1:RETURN 175 S=S+1:IF S<8 THEN 167 177 n=4:s=1 179 R=A(S+90):IF R=0 THEN 187 181 A(R*9+S)=1:GOSUB 237 183 IF D=0 THEN A(R*9+S)=-1:GOTO 187 185 J=S:G=0:RETURN 187 S=S+1:IF S<8 THEN 179 189 FOR J=111 TO 117:A(J)=0:NEXT J 191 N=3:S=1 193 R=A(S+90):IF R=0 THEN 199 195 A(R*9+S)=0:GOSUB 237 197 A(S+110)=D/E:A(R*9+S)=-1 199 S=S+1:IF S<8 THEN 193 201 N=3:S=1 203 R=A(S+90):IF R=0 THEN 209 205 A(R*9+S)=1:GOSUB 237 207 A(S+110)=A(S+110)+D*E:A(R*9+S)=-1 209 S=S+1:IF S<8 THEN 203 211 N=3:S=1 213 R=A(S+90):IF R<2 THEN 223 215 A(R*9+S)=0:R=R-1:A(R*9+S)=1:GOSUB 237 217 IF D=0 THEN 221 219 A(S+110)=-D 221 A(R*9+S)=-1:R=R+1:A(R*9+S)=-1 223 S=S+1:IF S<8 THEN 213 225 K=-50:L=0:FOR J=111 TO 117:IF A(J)>K THEN K=A(J):L=J-110 227 NEXT J 229 IF A(L+90)=0 THEN A(L+110)=-60:GOTO 225 231 J=INT(RND*7)+1:IF A(J+90)=0 THEN 231 233 IF A(J+110)=K THEN RETURN 235 J=L:RETURN 237 Z=A(R*9+S) 239 IF A(S+90)>=5 THEN D=0:GOTO 249 241 I=R+1:J=S:P=1 243 IF A(I*9+J)=Z THEN P=P+1:I=I+1:GOTO 243 245 IF P<N THEN D=0:GOTO 249 247 D=1 249 IF A(R+100)>=6 THEN 263 251 I=R:V=1 253 J=V+S:P=1 255 IF A(I*9+J)=Z THEN P=P+1:J=J+V:GOTO 255 257 IF V<>-1 THEN V=-1:U=P:GOTO 253 259 P=P+U-1:IF P<N THEN 263 261 D=D+1 263 V=1:W=1 265 I=R+W:J=S+V:P=1 267 IF A(I*9+J)=Z THEN P=P+1:J=J+V:I=I+W:GOTO 267 269 IF V<>-1 THEN V=-1:W=-W:U=P:GOTO 265 271 P=P+U-1:IF P<N THEN 275 273 D=D+1 275 IF W<>1 THEN V=1:GOTO 265 277 RETURN 279 'RESTORE MODE 2. 281 ' 283 MODE 2:PAPER 0:PEN 1:BORDER 0:GOTO 307 285 ' 287 ' MUSIQUE FIN 289 ' 291 RESTORE 291:DATA 478,426,379,358,319,284,0,284,0,284,0,284,358,0,358,239,239,239,0,239,284,-1 293 READ MU:IF MU=-1 THEN 297 ELSE SOUND 1,MU,10,12:FOR I=1 TO 70:NEXT I 295 GOTO 293 297 RESTORE 291:RETURN 299 FOR I=1 TO 20:R$=INKEY$:NEXT I:RETURN 301 ' 303 'SORTIE PROG 305 ' 307 ON BREAK STOP:END |