PC poli pour Sharp PC1500 ( pas de programme ) tiré du magazine Hebdogiciel N°59 http://www.hebdogiciel.fr Bon Jeu ! Ouessan / Chistian DUBROEUCQ Nécessite l'extension PETOOLS. Vous rêviez depuis longtemps d'un monopoli sur votre PC1500. Aujourd'hui votre rêve devient réalité ( merci petit hippocampe ). Programme : 2 CLEAR:DIM A$(4)*9:DIM A(4):DIM NM$(32)*10:DIM NM(32,4):DIM P(4):DIM R(4):DIM F(4) 4 WAIT 0:PRINT " *copyright * p. leroy" 5 FOR I=1 TO 32:READ NM$(I):NEXT I 8 PRINT "*** m o n o p o l i ***" 10 FOR I=1 TO 32:FOR J=0 TO 4:READ NM(I,J):NEXT J:NEXT I 12 FOR I=1 TO 4:A(I)=150000:NEXT I:FOR I=1 TO 4:P(I)=I:NEXT I:TIME=0 14 INPUT "nombre de joueur 2->4:";Z:IF Z<2 OR Z>4 GOTO 14 16 FOR M=1 TO Z 18 PRINT "nom joueur n°";M;" ";:INPUT "";A$(M):IF LEN A$(M=>8 GOTO 18 20 CLS:PRINT " je dessine":GOSUB 176:NEXT M:TEXT 22 CLS:INPUT "temps de jeu: h.mn ";TP:IF TP>3 OR TP<.10 GOTO 22 24 IF TP-INT TP>.60 GOTO 22 26 IF TIME>TP GOTO 160 28 FOR JO=1 TO 2:WAIT 200:CLS:PRINT " joueur n° ";JO 30 IF R(JO)<=0 GOTO 34 32 PRINT "vous êtes en prison":R(JO)=R(JO)-1:GOSUB 308:NEXT JO:GOTO 26 34 IF A(JO)<0 PRINT "vous êtes ruiné":NEXT JO:GOTO 26 36 GOSUB 252:PRINT "vous êtes en ";NM$(P(JO)) 38 IF F(JO)=0 GOTO 62 40 WAIT 0:PRINT "liste des possessions(o/n)":IF INKEY$="o" BEEP 1:WAIT 200:GOSUB 206 42 IF INKEY$="n" BEEP 1:WAIT 200:GOTO 46 44 GOTO 40 46 IF NM(2,4)<>0 AND NM(2,4)=NM(3,4) AND NM(2,4)=JO LET I=2:I=1:GOSUB 222 48 IF NM(5,4)<>0 AND NM(6,4)=NM(7,4) AND NM(6,4)=NM(8,4) AND NM(6,4)=JO LET I=6:J=2:GOSUB 222 50 NM=NM(10,4):IF NM<>0 AND NM=NM(11,4) AND NM=NM(12,4) AND NM=JO LET I=10:J=2:GOSUB 222 52 NM=NM(14,4):IF NM<>0 AND NM=NM(15,4) AND NM=NM(16,4) AND NM=JO LET I=14:J=2:GOSUB 222 54 NM=NM(18,4):IF NM<>0 AND NM=NM(19,4) AND NM=NM(20,4) AND NM=JO LET I=18:J=2:GOSUB 222 56 NM=NM(22,4):IF NM<>0 AND NM=NM(23,4) AND NM=NM(24,4) AND NM=JO LET I=22:J=2:GOSUB 222 58 NM=NM(26,4):IF NM<>0 AND NM=NM(27,4) AND NM=NM(28,4) AND NM=JO LET I=26:J=2:GOSUB 222 60 IF NM(31,4)<>0 AND NM(31,4)=NM(32,4) AND NM(31,4)=JO LET I=31:J=1:GOSUB 222 62 S=0:GOSUB 254:P(JO)=P(JO)+J:IF P(JO)>32 GOSUB 296 64 PRINT "vous arrivez en ";NM$(P(JO)) 66 NM=NM(P(JO),4):IF NM=6 GOSUB 300 68 IF NM=JO PRINT "vous êtes chez vous":NEXT JO:GOTO 26 70 IF NM=5 PRINT "case départ recevez 20000$":A(JO)=A(JO)+20000:NEXT JO:GOTO 26 72 IF NM=7 PRINT "vous visitez la prison":NEXT JO:GOTO 26 74 IF NM=8 PRINT "vous êtes en prison":P(JO)=25:R(JO)=3:NEXT JO:GOTO 26 76 IF NM<>0 AND NM<5 PRINT "vous êtes chez ";A$(NM):GOTO 88 78 PRINT "terrain libre pour:";NM(P(JO),0);"$":GOSUB 252 80 IF A(JO)"o" GOTO 82 86 BEEP 1:F(JO)=1:WAIT 200:A(JO)=A(JO)-NM(P(JO),0):NM(P(JO),4)=JO:GOSUB 252:NEXT JO:GOTO 26 88 AG=NM(P(JO),3):NB=NM(P(JO),2):IF NB=0 LET AG=AG/2:GOTO 92 90 AG=AG*NB 92 WAIT 200:PRINT "vous devez payer";AG;"$":IF A(JO)4 AND NM(I,2)>3 GOTO 122 106 NEXT I 108 FOR I=1 TO 32:IF NM(I,4)=JO AND NM(I,2)=6 GOTO 120 110 NEXT I 112 FOR I=1 TO 32:IF NM(I,4)=JO AND NM(I,2)=0 GOTO 134 114 NEXT I:GOTO 86 116 PRINT "vendez-vous des hotels ?":IF INKEY$="o" BEEP 1:CLS:H=5:H$="1 hotel":GOTO 150 118 IF INKEY$<>"n" GOTO 116 120 BEEP 1:CLS:GOTO 104 122 PRINT "vendez-vous des maisons ?":IF INKEY$="o" BEEP 1:CLS:GOTO 140 124 IF INKEY$<>"n" GOTO 122 126 BEEP 1:CLS:GOTO 108 128 PRINT "vendez-vous des gares ?":IF INKEY$="o" BEEP 1:CLS:H=6:H$="":GOTO 150 130 IF INKEY$<>"n" GOTO 128 132 BEEP 1:CLS:GOTO 112 134 PRINT "vendez-vous des terrains ?":IF INKEY$="o" BEEP 1:CLS:H=0:H$="terrain":GOTO 150 136 IF INKEY$<>"n" GOTO 134 138 BEEP 1:CLS:GOTO 96 140 CURSOR 0:PRINT "combien de maison 1->4 ?":IF INKEY$="1" BEEP 1:H=1:H$="1 maison":GOTO 154 142 IF INKEY$="2" BEEP 1:H=2:H$="2 maisons":GOTO 154 144 IF INKEY$="3" BEEP 1:H=3:H$="3 maisons":GOTO 154 146 IF INKEY$="4" BEEP 1:H=4:H$="4 maisons":GOTO 154 148 GOTO 140 150 FOR I=1 TO 32:IF NM(I,4)=JO AND NM(I,2)=H GOSUB 158 152 NEXT I:GOTO 92 154 FOR I=1 TO 32:IF NM(I,4)=JO AND NM(I,2)>=H AND NM(I,2)<5 GOSUB 158 156 NEXT I:GOTO 92 158 CLS:P=NM(I,1)*H/2:IF H=0 OR H=6 LET P=NM(I,0)/2 160 CURSOR 0:PRINT H$;NM$(I);" pour";P:IF INKEY$="n" BEEP 1:CLS:RETURN 162 IF INKEY$<>"o" GOTO 160 164 BEEP 1:A(JO)=A(JO)+P:WAIT 200:GOSUB 252:NM(1,2)=NM(1,2)-H:IF H=0 LET NM(I,4)=0 166 GOTO 92 168 FOR JO=1 TO 2:FOR J=1 TO 32:IF NM(I,4)=JO GOSUB 174 170 NEXT I:COLOR JO-1:LPRINT A$(JO):LF 1 172 LPRINT "vous possédez":LF 1:LPRINT A(JO);" $":LF 4:NEXT JO:END 174 A(JO)=A(JO)+NM(I,0)+(NM(I,1)*NM(I,2)):RETURN 176 TEXT:LF 12:GRAPH:SORGN:LINE (0,0)-(216,216),0,0,B:LINE (24,24)-(192,192),0,0,B 178 FOR I=24 TO 192 STEP 24:LINE (I,216)-(I,192),0,0:LINE (I,24)-(I,0),0,0:NEXT I 180 FOR I=24 TO 192 STEP 24:LINE (0,I)-(24,I),0,0:LINE (192,I)-(216,I),0,0:NEXT I 182 CSIZE 3:GLCURSOR (7,195):LPRINT "d":CSIZE 2:GLCURSOR (93,197):LPRINT "g1":CSIZE 1:GLCURSOR (198,209):LPRINT "-->":CSIZE 2 184 GLCURSOR (200,194):LPRINT "p":GLCURSOR (194,101):LPRINT "G2":GLCURSOR (98,5):LPRINT "G3":CSIZE 3:GLCURSOR (7,3):LPRINT "p" 186 CSIZE 2:GLCURSOR(2,101):LPRINT "g4":COLOR 1:CSIZE 3:GLCURSOR (31,195):LPRINT "a":GLCURSOR (127,195):LPRINT "b" 188 GLCURSOR (199,171):LPRINT "c":GLCURSOR (199,75):LPRINT "e":GLCURSOR (175,3):LPRINT "f":GLCURSOR (79,3):LPRINT "h" 190 FOR I=4 TO 20 STEP 4:LINE (I,0)-(I,24),0,1:NEXT I 192 GLCURSOR (7,27):LPRINT "j":GLCURSOR (7,147):LPRINT "k":GLCURSOR (40,70):CSIZE 2:LPRINT "joueur n°:";M:CSIZE 3 194 COLOR 2:GLCURSOR (55,195):LPRINT "a":GLCURSOR (151,195):LPRINT "b":GLCURSOR (199,147):LPRINT "c":GLCURSOR (199,51):LPRINT "e" 196 GLCURSOR (151,3):LPRINT "f":GLCURSOR (55,3):LPRINT "h":GLCURSOR (7,51):LPRINT "j":GLCURSOR (7,171):LPRINT "k":GLCURSOR (43,50) 198 CSIZE 2:LPRINT A$(M):CSIZE 3:COLOR 3:GLCURSOR (79,195):LPRINT "?":GLCURSOR (76,194):CSIZE 1:LPRINT "1":CSIZE 3 200 GLCURSOR (175,195):LPRINT "b":GLCURSOR (199,123):LPRINT "c":GLCURSOR (199,27):LPRINT "e":GLCURSOR (199,3):LPRINT "?" 202 GLCURSOR (196,2):CSIZE 1:LPRINT "2":CSIZE 3:GLCURSOR (127,3):LPRINT "f":GLCURSOR (31,3):LPRINT "h":GLCURSOR (7,75):LPRINT "j" 204 GLCURSOR (7,123):LPRINT "?":GLCURSOR (4,122):CSIZE 1:LPRINT "3":CSIZE 3:GLCURSOR (38,99):LPRINT "monopoli":TEXT:LF 12:RETURN 206 PRINT "vous possédez:":FOR I=1 TO 32:IF NM(I,4)=JO GOSUB 210 208 NEXT I:RETURN 210 BEEP 1:A$=" maison":IF NM(I,2)>1 LET A$=A$+"s" 212 IF I+5 OR I=13 OR I=21 OR I=29 GOTO 220 214 IF NM(I,2)>4 GOTO 218 216 PRINT NM$(I);" avec ";NM(I,2);A$:RETURN 218 PRINT NM$(I);" avec un hotel":RETURN 220 PRINT NM$(I):RETURN 222 FOR T=I TO I+J 224 IF NM(T,2)>=5 NEXT T:RETURN 226 IF S=1 GOTO 234 228 WAIT 0:PRINT "vous construisez? (o/n)":IF INKEY$="q" BEEP 1:S=1:GOTO 234 230 IF INKEY$="n" BEEP 1:GOTO 62 232 GOTO 228 234 WAIT 200:PRINT NM$(T) 236 IF NM(T,2)=4 GOTO 246 238 WAIT 0:CURSOR 0:PRINT "une maison pour ";NM(T,1à;"$ ?":IF INKEY$="n" BEEP 1:WAIT 200:CLS:NEXT T:RETURN 240 IF INKEY$<>"o" GOTO 238 242 BEEP 1:WAIT 200:IF A(JO)"o" GOTO 246 250 BEEP 1:WAIT 200:GOTO 242 252 PRINT "argent disponible:";A(JO);"$":RETURN 254 CLS:WAIT 0:RANDOM:N=RND 3 256 FOR I=1 TO N 258 M=RND 12:IF N>I AND I<>N LET M=12 260 FOR J=2 TO M 262 CURSOR 14:PRINT "suspens":BEEP 1,10,3 264 GCURSOR 10 266 IF J=2 GPRINT "0000000000000000000000000000080000"; 268 IF J=3 GPRINT "0202000020200000000000000008080000"; 270 IF I=4 GPRINT "02020000202000000000000202002020"; 272 IF J=5 GPRINT "0202080820200000000000020200002020"; 274 IF J=6 GPRINT "0202080820200000000000020208082020"; 276 IF J=7 GPRINT "2222000022220000000000222200002222"; 278 IF J=8 GPRINT "2222080822220000000000222200002222"; 280 IF J=9 GPRINT "2222080822220000000000222200002222"; 282 IF J=10 GPRINT "2222080822220000000000222208082222"; 284 IF J=11 GPRINT "2A2A00002A2A0000000000222208082222"; 286 IF J=12 GPRINT "2A2A00002A2A00000000002A2A00002A2A"; 288 NEXT J 290 NEXT I 292 WAIT 200:J=J-1:PRINT J 294 RETURN 296 P(JO)=P(JO)-32:PRINT "vous avez passé le départ":PRINT "recevez 15000$" 298 A(JO)=A(JO)+15000:RETURN 300 C=RND 4:IF C=1 PRINT "recevez 10000$":A(JO)=A(JO)+10000:GOSUB 252:NEXT JO:GOTO 26 302 IF C=2 PRINT "allez en prison":P(JO)=9:R(JO)=3:GOTO 64 304 IF C=3 PRINT "allez en k vert":P(JO)=32:GOTO 64 306 IF C=4 PRINT "erreur de banque":PRINT "recevez 20000$":A(JO)=A(JO)+20000:NEXT JO:GOTO 26 308 GOSUB 254:IF J=2 OR J=4 OR J=6 OR J=8 OR J=10 OR J=12 GOTO 312 310 RETURN 312 BEEP 3:PRINT "double:sortez de prison":R(JO)=0:GOTO 30 314 DATA "départ" 316 DATA "a bleu" 318 DATA "a vert" 320 DATA "chance 1" 322 DATA "gare n°1" 324 DATA "b bleu" 326 DATA "b vert" 328 DATA "b rouge" 330 DATA "-> prison" 332 DATA "c bleu" 334 DATA "c vert" 336 DATA "c rouge" 338 DATA "gare n°2" 340 DATA "e bleu" 342 DATA "e vert" 344 DATA "e rouge" 346 DATA "chance 2" 348 DATA "f bleu" 350 DATA "f vert" 352 DATA "f rouge" 354 DATA "gare n°3" 356 DATA "h bleu" 358 DATA "h vert" 360 DATA "h rouge" 362 DATA " prison" 364 DATA "j bleu" 366 DATA "j vert" 368 DATA "j rouge" 370 DATA "gare n°4" 372 DATA "chance 3" 374 DATA "k bleu" 376 DATA "k vert" 378 DATA 0,0,0,0,5 380 DATA 5000,4000,0,4000,0 382 DATA 5000,4000,0,6000,0 384 DATA 0,0,0,0,0 386 DATA 10000,0,6,2000,0 388 DATA 8000,4000,0,6000,0 390 DATA 8000,4000,0,6000,0 392 DATA 8000,4000,0,8000,0 394 DATA 0,0,0,0,0 396 DATA 1000,5000,0,8000,0 398 DATA 10000,5000,0,8000,0 400 DATA 10000,5000,0,1000,0 402 DATA 10000,0,6,2000,0 404 DATA 12000,7000,0,10000,0 406 DATA 12000,7000,0,10000,0 408 DATA 12000,7000,0,12000,0 410 DATA 0,0,0,0,6 412 DATA 15000,10000,0,12000,0 414 DATA 15000,10000,0,12000,0 416 DATA 15000,10000,0,15000,0 418 DATA 10000,0,6,2000,0 420 DATA 20000,10000,0,15000,0 422 DATA 20000,10000,0,15000,0 424 DATA 20000,10000,0,10000,0 426 DATA 0,0,0,0,7 428 DATA 20000,10000,0,10000,0 430 DATA 20000,10000,0,10000,0 432 DATA 20000,10000,0,20000,0 434 DATA 10000,0,6,2000,0 436 DATA 0,0,0,0,6 438 DATA 30000,20000,0,20000,0 440 DATA 40000,20000,0,25000,0