Hebdogiciel n°74


1 !               REUNION
2 !                 PAR
3 !           PHILIPPE CAENEN
4 !            SUR EXEL 100
5 !
6 !
7 !
8 !
9 !
10 !               REGLES
11 !
12 !
13 RANDOMIZE
14 HAU=0
15 GOSUB 17
16 GOTO 26
17 CLS "Cbb"
18 CALL HRON("b",1,1)
19 CALL COLOR("0YLHIF")
20 LOCATE (3+HAU,13)
21 PRINT "RREEUUNNIIOONN"
22 LOCATE (4+HAU,13)
23 PRINT "RREEUUNNIIOONN"
24 CALL COLOR("0Yb")
25 RETURN
26 LOCATE (6,1)
27 PRINT "50 cartes vont apparaitre face cachee."
28 PRINT "au dos de ces cartes des dessins de"
29 PRINT "toutes sortes."
30 PRINT "Chaque carte est doublee "
31 PRINT "c'est a dire qu'il en existe une "
32 PRINT "identique dans le tableau "
33 PRINT
34 PRINT "Le but du jeu est de rassembler"
35 PRINT "ces paires"
36 PRINT
37 PRINT "Ce jeu se joue a 1 ou 2 joueurs , "
38 PRINT "avec 3 niveaux de difficultes et "
39 PRINT "en un nombre limite de coups "
40 GOSUB 67
41 PRINT "Au niveau 1 en debut de partie et "
42 PRINT "a chaque paire decouverte ,"
43 PRINT "EXEL 100 montre le tableau des figures"
44 PRINT
45 PRINT "Regardez alors attentivement "
46 PRINT "et fixez une paire ! "
47 PRINT
48 PRINT "Au niveau 2 les regles precedentes"
49 PRINT "s'appliquent mais le tableau est montre"
50 PRINT "ligne par ligne"
51 PRINT
52 PRINT "Au niveau 3 les cartes restent cachees !"
53 GOSUB 67
54 PRINT
55 PRINT "En vous servant des fleches du clavier,"
56 PRINT "deplacez le curseur sous la carte "
57 PRINT "choisie, appuyez alors sur RETURN "
58 PRINT "la carte se retourne."
59 PRINT "Retournez identiquement l'autre carte."
60 PRINT "EXEL 100 teste l'identicite des figures,"
61 PRINT "et s'occupe des scores en fonction "
62 PRINT "du resultat ":PRINT:PRINT
63 CALL COLOR("0WR"):PRINT "A tout moment du jeu l'on peut aller "
64 PRINT "directemnt a la fin du jeu en tapant "
65 PRINT "               sur [ESC]             "
66 GOSUB 67:GOTO 79
67 CALL COLOR("0Mb"):LOCATE (22,1)
68 PRINT "APPUYEZ SUR UNE TOUCHE POUR CONTINUER"
69 A$=KEY$
70 CLS:CALL COLOR("0Yb")
71 LOCATE (3,1)
72 CLS
73 RETURN
74 !
75 !
76 !          INITIALISATION
77 !
78 !
79 HAU=6
80 GOSUB 17
81 LOCATE (15,1)
82 PRINT "NIVEAU DE DIFFICULTE ?    FACILE     :1"
83 PRINT "MOYEN      :2             DIFFICILE  :3"
84 HAS=RND
85 CALL KEY1(XX,YY)
86 IF YY=0 THEN 84
87 DIF=XX-48
88 IF DIF<1 OR DIF>3 THEN 84
89 LOCATE (15,24)
90 PRINT DIF
91 LOCATE (20,1)
92 PRINT "1 OU 2 JOUEURS ?"
93 EE$=KEY$
94 IF EE$<>"1"AND EE$<>"2" THEN 91
95 LOCATE (20,25)
96 PRINT EE$
97 NJO=VAL(EE$)
98 IF NJO=2 THEN 103
99 PRINT "NOM DU JOUEUR :"
100 LOCATE (21,25)
101 ACCEPT BEEP VALIDATE(UALPHA)SIZE(11)NULL("***"),NOO$
102 GOTO 109
103 PRINT "NOM DU PREMIER JOUEUR :"
104 LOCATE (21,25)
105 ACCEPT BEEP VALIDATE(UALPHA)SIZE(11)NULL("JOUEUR 1"),NO$(0)
106 PRINT "NOM DU 2em JOUEUR :"
107 LOCATE (22,25)
108 ACCEPT BEEP VALIDATE(UALPHA)SIZE(11)NULL("JOUEUR 2"),NO$(1)
109 PAUSE .5
110 JOU=1
111 IF NJO=2 THEN NPA=15 ELSE NPA=24
112 HAU=7
113 GOSUB 17
114 DIM A(50),B$(50),C(50),D$(50),DD$(50),CC(50),K$(7,2)
115 CALL CHAR(18,"00000000000000000000")
116 CALL CHAR(19,"00000000000000000000")
117 CALL CHAR(20,"00000000000000000000")
118 CALL CHAR(21,"00000000000000000000")
119 CALL CHAR(22,"00000000000000000000")
120 CALL CHAR(23,"00000000000000000000")
121 CALL CHAR(24,"00000000000000000000")
122 CALL CHAR(25,"00000000000000000000")
123 CALL CHAR(26,"00000000000000000000")
124 !
125 CALL CHAR(28,"00000000000003070F1E")
126 CALL CHAR(29,"000000003CFFFFC30000")
127 CALL CHAR(30,"000000000000C0E0F078")
128 CALL CHAR(31,"1C38387070707038381C")
129 CALL CHAR(32,"00000000000000000000")
130 CALL CHAR(33,"381C1C0E0E0E0E1C1C38")
131 CALL CHAR(34,"1E0F0703000000000000")
132 CALL CHAR(35,"0000C3FFFF3C00000000")
133 CALL CHAR(36,"78F0E0C0000000000000")
134 !
135 CALL CHAR(38,"00000000000000000001")
136 CALL CHAR(39,"0018183C3C7E7EFFFFFF")
137 CALL CHAR(40,"00000000000000000080")
138 CALL CHAR(41,"01030307070707030301")
139 CALL CHAR(42,"E7E7C3C38181C3C3E7E7")
140 CALL CHAR(43,"80C0C0E0E0E0E0C0C080")
141 CALL CHAR(44,"01000000000000000000")
142 CALL CHAR(45,"FFFFFF7E7E3C3C181800")
143 CALL CHAR(46,"80000000000000000000")
144 !
145 CALL CHAR(48,"00040404243C003C2424")
146 CALL CHAR(49,"00000000000C1E3F3F1E")
147 CALL CHAR(50,"000000000000081C0808")
148 CALL CHAR(51,"243C002428302824003C")
149 CALL CHAR(52,"0C1E7FFFBFBFBFBFBFBF")
150 CALL CHAR(53,"0818F000000000000000")
151 CALL CHAR(54,"2038203C003C243C2824")
152 CALL CHAR(55,"B3333373616161E10000")
153 CALL CHAR(56,"00000080808080C00000")
154 !
155 CALL CHAR(58,"00000000000102040810")
156 CALL CHAR(59,"00000000FFFF7E7E7E3C")
157 CALL CHAR(60,"00000000008040201008")
158 CALL CHAR(61,"20607C7F7F7F7F7C6020")
159 CALL CHAR(62,"3C3C1899FFFF99183C3C")
160 CALL CHAR(63,"04063EFEFEFEFE3E0604")
161 CALL CHAR(64,"10080402010000000000")
162 CALL CHAR(65,"3C7E7E7EFFFF00000000")
163 CALL CHAR(66,"08102040800000000000")
164 !
165 CALL CHAR(68,"00000000000103030119")
166 CALL CHAR(69,"000000007EFFFFFFFFFF")
167 CALL CHAR(70,"000000000080C0C08098")
168 CALL CHAR(71,"3E3F7F7F7F7F7F7F3F3E")
169 CALL CHAR(72,"FF7EBDDBFFFFDBBD7EFF")
170 CALL CHAR(73,"7CFCFEFEFEFEFEFEFC7C")
171 CALL CHAR(74,"19010303010000000000")
172 CALL CHAR(75,"FFFFFFFFFF7E00000000")
173 CALL CHAR(76,"9880C0C0800000000000")
174 !
175 CALL CHAR(78,"000000000000000C0F07")
176 CALL CHAR(79,"000000001818183C3CBD")
177 CALL CHAR(80,"0000000000000030F0E0")
178 CALL CHAR(81,"0703010F7F7F0F010307")
179 CALL CHAR(82,"FFFFFFFFFFFFFFFFFFFF")
180 CALL CHAR(83,"E0C080F0FEFEF080C0E0")
181 CALL CHAR(84,"070F0C00000000000000")
182 CALL CHAR(85,"BD3C3C18181800000000")
183 CALL CHAR(86,"E0F03000000000000000")
184 !
185 CALL CHAR(88,"000000007F7F7E787070")
186 CALL CHAR(89,"00000000FFC300000000")
187 CALL CHAR(90,"00000000FEFE7E1E0E0E")
188 CALL CHAR(91,"60606040404040606060")
189 CALL CHAR(92,"003C7EFFFFFFFF7E3C00")
190 CALL CHAR(93,"06060602020202060606")
191 CALL CHAR(94,"7070787E7F7F00000000")
192 CALL CHAR(95,"00000000C3FF00000000")
193 CALL CHAR(96,"0E0E1E7EFEFE00000000")
194 !
195 FOR I=0 TO 7
196 J=I*10+18
197 FOR UU=0 TO 2
198 K$(I,UU)=CHR$(J+UU*3)&CHR$(J+UU*3+1)&CHR$(J+UU*3+2)
199 NEXT UU
200 NEXT I
201 DATA 1,1YB,1,1CM,1,1BC,1,1MY,2,1YB,2,1CM,2,1BC,2,1MY
202 DATA 3,1RW,4,1YB,4,1CM,4,1BC,4,1MY,5,1YB,5,1CM,5,1BC,5,1MY
203 DATA 6,1YB,6,1CM,6,1BC,6,1MY,7,1YB,7,1CM,7,1BC,7,1MY
204 RESTORE 201
205 FOR I=1 TO 25
206 READ AA,AAA$
207 A(2*I),A(2*I-1)=AA
208 B$(2*I),B$(2*I-1)=AAA$
209 NEXT I
210 FOR I=50 TO 1 STEP -1
211 AA=INTRND(I)
212 C(I)=A(AA)
213 D$(I)=B$(AA)
214 FOR J=AA TO I-1
215 A(J)=A(J+1)
216 B$(J)=B$(J+1)
217 NEXT J
218 NEXT I
219 FOR I=1 TO 50
220 DD$(I)="0RR"
221 CC(I)=0
222 NEXT I
223 GOTO 258
224 !
225 !
226 !         SOUS-PROGRAMMES 1
227 !
228 !
229 FOR Q=0 TO 49
230 IF JEU=1 THEN Z=C(Q+1):CALL COLOR(D$(Q+1)):GOTO 233
231 Z=CC(Q+1):IF Z=0 THEN 236
232 CALL COLOR(DD$(Q+1))
233 X=40*(Q/10-INT(Q/10))+1
234 Y=INT(Q/10)*4+2
235 GOSUB 238
236 NEXT Q
237 RETURN
238 FOR I=0 TO 2:LOCATE (Y+I,X):PRINT K$(Z,I):NEXT I
239 RETURN
240 I0,I1=0:FOR Y=2 TO 18 STEP 4
241 Q=0
242 Q=1+Q
243 FOR X=1 TO 37 STEP 4
244 IF Q=1 THEN 248
245 I0=I0+1
246 Z=CC(I0):CALL COLOR(DD$(I0))
247 GOTO 251
248 I1=I1+1
249 Z=C(I1)
250 CALL COLOR(D$(I1))
251 GOSUB 238:NEXT X:IF Q=1 THEN 242
252 NEXT Y:RETURN
253 CALL COLOR("0Rb")
254 H$=RPT$(RPT$(CHR$(160),3)&" ",10)
255 LOCATE (1,1):FOR I=1 TO 5:PRINT H$:PRINT H$:PRINT H$
256 PRINT:NEXT I:RETURN
257 !
258 !
259 !         CORPS DU JEU
260 !
261 !
262 CLS
263 CALL HRON("b",1,1)
264 GOSUB 253
265 ON DIF GOSUB 267,269,268
266 GOTO 270
267 JEU=1:GOSUB 229:PAUSE 1
268 GOSUB 253:JEU=2:GOSUB 229:RETURN
269 GOSUB 240:RETURN
270 JOU=1-JOU:IF NJO=2 THEN 274
271 LOCATE (22,1):CALL COLOR("0GbI"):PRINT NOO$&" :"
272 LOCATE (22,13):PRINT SCC
273 GOTO 278
274 LOCATE (22,JOU*23+1):CALL COLOR("0GbIF"):PRINT NO$(JOU)&" :"
275 LOCATE (22,JOU*23+13):CALL COLOR("0GbI"):PRINT SC(JOU)
276 LOCATE (22,(1-JOU)*23+1):PRINT NO$(1-JOU)&" :"
277 LOCATE (22,(1-JOU)*23+13):PRINT SC(1-JOU)
278 LOCATE (22,19):CALL COLOR("0WRI")
279 PRINT NPA
280 P(1),P(0)=0
281 II=0
282 U(II),M=2:V(II),N=5:GOSUB 324
283 CALL KEY1(E,F):IF F=0 THEN 283
284 IF E<>13 AND E<>27 AND E<>128 AND E<>129 AND E<>130 AND E<>131 THEN 283
285 IF E=27 THEN 333
286 IF E=13 THEN 296
287 ON E-127 GOTO 288,290,292,294
288 IF V(II)>5 THEN V(II)=V(II)-4
289 GOTO 295
290 IF U(II)<37 THEN U(II)=U(II)+4
291 GOTO 295
292 IF V(II)<18 THEN V(II)=V(II)+4
293 GOTO 295
294 IF U(II)>2 THEN U(II)=U(II)-4
295 GOSUB 324:GOSUB 326:M=U(II):N=V(II):GOTO 283
296 P(II)=(V(II)-5)*10/4+(U(II)+2)/4:IF CC(P(II))>0 THEN 283
297 IF P(0)=P(1)THEN 283
298 X=U(II)-1:Y=V(II)-3:Z=C(P(II))
299 CALL COLOR(D$(P(II))):GOSUB 238
300 II=II+1:IF II<2 THEN M=U(0):N=V(0):GOSUB 326:GOTO 282
301 PAUSE 1:M=U(1):N=V(1):GOSUB 326
302 IF D$(P(0))=D$(P(1))AND C(P(0))=C(P(1))THEN 310
303 IF C(P(0))=3 OR C(P(1))=3 THEN 310
304 FOR II=0 TO 1:X=U(II)-1:Y=V(II)-3
305 Z=0:CALL COLOR("0RR"):GOSUB 238
306 NEXT II
307 FOR TI=1 TO 2:CALL SPEECH("L,0D7C91B2BAB602FC"):NEXT TI
308 IF NJO=1 THEN SCC=SCC-1:GOTO 270
309 SC(JOU)=SC(JOU)-1:GOTO 270
310 !
311 CC(P(0))=C(P(0)):CC(P(1))=C(P(1))
312 DD$(P(0))=D$(P(0)):DD$(P(1))=D$(P(1))
313 BRUI$="L,0E683FC7031EF040043CE0010F78C0"
314 BRUI$=BRUI$&"0216B040042C60010F5840031AD08006FE"
315 CALL SPEECH(BRUI$)
316 IF NJO=1 THEN SCC=SCC+1+(DIF-1)*2:GOTO 318
317 SC(JOU)=SC(JOU)+1+(DIF-1)*2
318 NPA=NPA-1:IF NPA<1 THEN 330 ELSE 262
319 !
320 !
321 ! SOUS-PROGRAMMES 2
322 !
323 !
324 CALL COLOR("0GbIF"):LOCATE (V(II),U(II))
325 PRINT CHR$(222):RETURN
326 CALL COLOR("0Gb"):LOCATE (N,M)
327 PRINT " ":RETURN
328 !
329 !
330 ! FIN DU JEU
331 !
332 !
333 CLS:LOCATE (8,1):IF NJO=2 THEN 338
334 PRINT NOO$:PRINT:PRINT "SCORE :",SCC
335 LOCATE (16,1):PAUSE 2:PRINT "VOULEZ VOUS REJOUER ? (O/N)"
336 !
337 S$=KEY$:IF S$<>"O" AND S$<>"N" THEN 337
338 IF S$="O" THEN RUN ELSE END
339 IF SC(0)<>SC(1)THEN 340
340 PRINT "EGALITE DES DEUX JOUEURS:";SC(0);"POINTS":GOTO 335
341 IF SC(0)<SC(1)THEN JK=1 ELSE JK=0
342 PRINT NO$(1-JK)&" A PERDU PAR";SC(1-JK);"A";SC(JK)
343 PRINT:PRINT "LE GAGNANT EST :"
344 CALL COLOR("0YHFI"):LOCATE (10,20):PRINT NO$(JK)
345 LOCATE (11,20):PRINT NO$(JK)
346 CALL COLOR("0Yb"):GOTO 335
347 !SCORE A BATTRE:78 POINTS A UN JOUEUR
348 !AU NIVEAU 3 SANS PAPIER NI CRAYON


Ce listing est uniquement proposé pour un usage privé.
Sans accord écrit préalable, vous n'êtes pas autorisé à le distribuer, le transmettre ou le rediffuser.