Skip to main content

Full text of "SUPER JEUX AMSTRAD"

See other formats


AMSTRAD 

50 programmes de jeux en Basic 




Jean-Francois Sehan 



11 



Autres ouvrages relatifs a Amstrad 



— 102 programmes pour Amstrad - Jacques Deconchat 

— Amstrad en famille - Jean-Francois Sehan 

— Basic Amstrad : methodes pratiques - Jacques Boisgontier 



A paraitre 

— Clefs pour Amstrad - Daniel Martin 

— La decouverte de I'Amstrad - Daniel-Jean David 

— Exercices en Basic pour Amstrad - Maurice Charbit 

— Basic Plus - 80 routines sur Amstrad - Michel Martin 

— Assembleur de I'Amstrad - Marcel Henrot 



Ouvrages (('initiation 



— Visa pour I'informatique - Jean-Michel Jego 

— Visa pour le Basic - Jean-Michel Jego 

— Mon ordinateur - Jean-Claude Barbance 

— Le logotron informatique - Jean-Pierre Petit 

— L'ordinateur apprivoise - Francois Picard et Danielle Shaw 

— Les mots de la micro - Alan Freedman, adapte par Bernard Sauteur 



La loi du 1 1 mars 1 957 n'autonsant, aux termes des alienas 2 et 3 de I'article 41 , dune part, que les .copies ou 
reproductions strictement reservees a I'usage prive du copiste et non destmees a une utilisation collective", et 
d'autre part, que les analyses et les courtes citations dans un but d'exemple et d'lllustration, "toute representa- 
tion ou reproduction integrale, ou partielle, faite sans le consentement de lauteur ou de ses ayants droit ou 
ayants cause, est illicite» (aliena 1 er de I'article 40) 

Cette representation ou reproduction, par quelque procede que ce soit, constituerait done une contrefacon 
sanctionnee par les articles 425 et suivants du Code Penal 

& Editions du P.S.I. - B.P. 86 - 77402 Lagny cedex 

1985 

ISBN: 2-86595-257-6 



SUPER JEUX 
AMSTRAD 

50 programmes de jeux en Basic 



Jean-Francois Sehan 



m 



Editions du PSI 

1985 



AVERTISSEMENT 



Si vous voulez utiliser correctement les programmes de ce 
livre, lisez attentivement les conseils suivants : 

■ Avant de taper un programme, vous devez initialiser 
Amstrad en appuyant simultanement sur les touches 
[SHIFT], [CTRL] et [ESC]. 

Effectuez la meme operation avant de charger un 
programme a partir du datacorder. 

■ Pour gagner en rapidite d'execution certaines 
instructions NEXT ne sont pas suivies d'une variable (gain 
de10a20%). 

■ Si vous n'obtenez pas les memes resultats que sur les 
exemples, verifiez bien toutes les lignes et surtout celles 
contenant des DATA. 

■ Des que les programmes sont entres dans votre 
AMSTRAD, sauvez-les sur le datacorder. Pour les 
programmes tres longs, il est vivement conseille 
d'effectuer une premiere sauvegarde au milieu de leur 
frappe. N'attendez pas qu'ils soient entierement entres et 
testes... une coupure de courant est si vite arrivee ! 

■ Quand vous entrez des chiffres decimaux, assurez-vous 
que vous tapez un point et non une virgule entre deux 
chiffres. 

■ Assurez-vous que vous etes en majuscules des la mise 
en route, en appuyant sur CAPS LOCK. 



Super jeux Amstrad I 7 



SOMMAIRE 

CHAPITRE I : 
JEUX D'ADRESSE 



CHAPITRE II : 
JEUX DE REFLEXION 



Grenouille 

Canadair 

Chenille 

Incendie 

Course automobile 

Motos lumineuses 

Slalom 

Le Blob 

Petrole, petrole ! 

Reflexes 

Circuit 24 

Serpent infernal 

Guerre des etoiles 

Snake 

Murde briques 

Coconuts 

Autoroute 

Labyrinthe en trois dimensions 

Chien de berger 

Missionnaires et cannibales 

Parites 

Champ de carottes 

Balistique 

Puissance 4 

Blocages 

Bombe a retardement 

Piranhas 

Anagrammes 

Awari 

Fusee lunaire 

Chasse au tresor 

Tours de Hanoi 

Oxo 

Taquin 

Le compte est bon 

Baccalaureat 

Mots caches 

Inversion 

Jeu du morse 

Super nombre secret 

Debarquement immediat 



12 
17 
21 
25 
30 
36 
40 
43 
46 
50 
54 
58 
61 
65 
68 
71 
75 

80 
87 
91 
95 
101 
105 
110 
115 
120 
124 
128 
132 
139 
143 
146 
150 
154 
158 
162 
168 
172 
175 
179 
183 



Super jeux Amstrad 9 



CHAPITRE III : 
JEUX DE HASARD 



Jack-pot 

Monte-Carlo 

Baccara 

Buck Dice 

Tierce 

Poker 

Petits cochons 

Passe-dix 

Bataille navale 



188 
193 
199 
205 
209 
214 
220 
225 
229 



10 Super jeuxAmstrad 



CHAPITRE I : 
JEUX D'ADRESSE 




GRENOUILLE 



Si vous croyez que la vie d'une grenouille est de tout 
repos, vous allez vite changer d'idee. 

Car I'heroTne de ce programme s'est endormie sur son 
nenuphar et reve qu'elle se trouve au bord d'une route et 
d'une riviere qu'elle doit traverser pour regagner les 
rochers salutaires de I'autre rive. 

Apres avoir lance le programme, vous pouvez manceuvrer 
votre grenouille lateralement avec les touches P et Q ; vous 
devez la faire sauter en utilisant la barre d'espacement. 
Attention a bien viser entre les vehicules qui defilent 
impitoyablement ; sinon vous perdrez a coup sur une des 
trois vies qui vous sont allouees a chaque debut de partie. 
Out ! vous etes sur le bord de la riviere. II vous faut 
maintenant emprunter un tronc d'arbre ou un crocodile 
pour aller sauter sur I'un des rochers. Mais alors la pauvre 
grenouille se retrouve a nouveau sur le bord de la route. 
Son reve ne cessera que lorsqu'elle aura regagne 
successivement les cinq rochers. 

Alors, avos bonds, pret, partez !... 

A la fin de chaque partie, relevez votre score (en haut a 
gauche de I'ecran) et enfoncez la touche ENTER pour un 
autre jeu. 



12 



Super jeux Amstrad 



10 REM GRENOUILLE 

20 REM 

30 DEFIWT A-Z: SYMBOL AFTER 128 

40 DIM P(22),I(22):GOSUB 500 

50 V=2:LOCATE 24,1:PAPER 0:PEN 1:PRINT "VIE: 2" 

60 P=0 

70 T=0 

80 X=19:Y=22 

90 PEN I(Y):PAPER P(Y):LOCATE X,Y:PRINT CHR$(138): 

AX=X:AY=Y 

100 A=2:FOR 1=1 TO 8 

110 PEN I(I*2+A):PAPER P( I»2+A) : LOCATE 1,I»2+A:PRI 

NT MID$(L$(I),D(I),40) 

120 IF 1=4 THEN A=4 

130 NEXT 

140 IF Y=2 THEN IF C<1 THEN 1100 ELSE 1200 

150 FOR 1=1 TO 7 STEP 2 

160 D(I)=D(I)+1:IF D(I)=25 THEN D(I)=1 

170 D(I+1)=D(I+1)-1:IF D(I+1)=0 THEN D(I+1)=24 

180 NEXT 

190 PEN 1:PAPER 0:LOCATE 5,1:PRINT "POINTS: ";P 

280 REM — 

290 REM DEPLACEMENTS 

300 A$=INKEY$ 

310 IF A$="P" THEN X=X+1 

320 IFA$="Q" THEN X=X-1 

330 IF A$=" ■ THEN Y=Y-2:P=P+1 

340 IF AY=12 OR AY=22 THEN PEN I(AY):PAPER P(AY):L 

OCATE AX,AY:PRINT M ■ 

350 C=TEST(X*16-2,404-Y*16)+TEST(X*16-14,404-Y*16) 

360 IF Y<12 AND C>5 THEN 1100 

370 IF Y>12 AND C>0 THEN 1100 

380 IF X<2 OR X>39 THEN 1100 

390 IF AYOY THEN 90 

400 IF Y=4 OR Y=8 THEN X=X-1 

410 IF Y=6 OR Y=10 THEN X=X+1 

420 GOTO 90 

480 REM 

490 REM GRAPHIQUES 

500 SYMBOL 128,63,72,136,255,128,255,136,112 

510 SYMBOL 129,224,16,8,255,1,255,34,28 

520 SYMBOL 130,7,8,16,2-55,128,255,68,56 

530 SYMBOL 131,248,36,34,255,1,255,17,14 

540 SYMBOL 132,254,142,142,254,255,255,68,56 

550 SYMBOL 133,127,113,113,127,255,255,34,28 

560 SYMBOL 134,15,23,35,65,65,35,23,15 

570 SYMBOL 135,240,248,252,254,254,252,248,240 

580 SYMBOL 136,240,232,196,130,130,196,232,240 

590 SYMBOL 137,15,31,63,127,127,63,31,15 

600 SYMBOL 138,28,73,127,28,28,62,99,99 

610 SYMBOL 139,255,255,255,255,255,255,255,255 

620 SYMBOL 140,255,255,255,255,255,255,68,56 

630 SYMBOL 141,255,255,255,255,255,255,0,0 

640 SYMBOL 142,0,192,96,48,31,13,7,255 

Super jeux Amstrad I 13 



650 SYMBOL 143,0,8,0,0,255,255,255,255 

660 SYMBOL 144,0,0,0,0,192,240,252,255 

670 FOR 0=1 TO 4:A$="":READ N,M,0 

680 FOR 1=1 TO 

690 READ A: IF A=17 THEN A$=A$+" " ELSE A$=A$+CHR$( 

A+128) 

700 NEXT I 

710 FOR 1=1 TO M:L$(N)=L$(N)+A$:NEXT I 

720 NEXT J 

730 L$(3)=L$(1):L$(4)=L$(2) 

740 L$(7)=L$(5):L$(8)=L$(6) 

750 DATA 1,3,24,17,17,6,11,11,11,7,17,17,17,17,17, 

17,14,15,15,15,16,17,17,17,17,17,17 

760 DATA 2,3,24,9,11,11,8,17,17,17,17,17,17,17,17, 

9,11,11,8,17,17,17,17,17,17,17,17 

770 DATA 5,6,12,4,12,13,13,12,17,17,2,3,17,17,17 

788 DATA 6,6,12,12,12,5,17,17,17,17,0,1,17,17,17 

880 REM 

890 REM COULEURS 

900 MODE 1:INK 0,13:INK 1,24:INK 2, 6: INK 3,2:PAPER 

0:PEN 1:B0RDER 13:PRINT 
910 FOR 1=1 TO 22 

920 READ A,B:PAPER A:PEN B:PRINT STRING$(40, 32 ) ; 
938 P(I)=A:I(I)=B 
948 NEXT I 

950 DATA 8,1,0,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,2 
,1,2,1 

968 DATA 8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,0,1,0,1 
970 FOR 1=1 TO 7 STEP 4 
980 D(I)=1:D(I+1)=26 
990 D(I+2)=5:D(I+3)=21 
1888 NEXT I 
1818 PEN 1:PAPER 8 

1828 LOCATE 7,2:PRINT CHR$ ( 139)CHR$ ( 139) " "CHR$ 
(139)CHR$(139); 

1838 PRINT " M CHR$(139)CHR$(139)" "CHR$(139) 
CHR$(139)" "CHR$(139)CHR$(139) 
1040 RETURN 

1080 REM 

1090 REM PERDU 

1100 FOR 1=50 TO 500 STEP 5: SOUND 1,I,2:NEXT 

1110 V=V-1 

1128 IF V<8 THEN LINE INPUT A$:RUN 

1130 LOCATE X,Y:PRINT" ":LOCATE 24,1:PRINT M VIES:" 

;V 

1148 GOTO 88 

1188 REM 

1198 REM GAGNE 

1200 FOR 1 = 588 TO 50 STEP-5.-S0UND 1,1, 2.- NEXT 

1210 T=T+1:P=P+18 

1228 IF T=5 THEN GOSUB 1 818: P=P+58: GOTO 78 

1230 PEN lrPAPER 8:L0CATE X-1,Y:PRINT " 

1240 GOTO 80 



14 I Super jeux Amstrad 



Programme 



Lignes 30 a 80 : initialisation 

Cette premiere partie du programme appelle le sous- 
programme en 500 qui execute les taches suivantes: 

1 - Definition des caracteres graphiques (lignes 500 a 

660). 

2 - Definition du tableau L$ contenant les objets a 

deplacer sur I'ecran et les pointeurs correspondants 
(tableau D. lignes 670 a 780). 

3 - Affectation des codes couleurs pour le papier et 

I'encre a chaque ligne de I'ecran (lignes 900 a 1040). 

Les variables X et Y donnent la position de depart de la 
grenouille. 

Lignes 90 a 190 :lejeu 

Apres I'affichage de la grenouille et la sauvegarde de ses 

coordonnees dans AX et AY, on place sur I'ecran les 

chames de caracteres du tableau L$ a partir des pointeurs 

D(). 

Si la grenouille est deja sur la ligne 2 de I'ecran (ligne 

140), on va en 1200 pour le comptage des rochers. 

Les lignes 150 a 180 modifient le tableau des pointeurs D 
pour le deplacement des objets. 

Lignes 300 a 420 : (^placements 

En fonction de la touche qui vient d'etre appuyee, on 
modifie les variables X et Y. On place dans C la couleur qui 
correspond a ces nouvelles coordonnees. 

Si C est egal a un blanc et si la grenouille est sur la riviere 
(ligne 360), on vaen 1100 pour la phase « PERDU ». 
Idem quand C est different d'un espace et que la grenouille 
se trouve sur la route (ligne 370). 

Si la grenouille depasse les limites de I'ecran (en 
ligne 380), on va aussi en 1100. 

La grenouille devant suivre le cours de I'eau, on la deplace 
a droite ou a gauche suivant qu'elle se trouve sur un tronc 
d'arbre ou un crocodile (lignes 400 et 410). 

Lignes 1100 a 1240 : perdu et gagne 

Si Ton a perdu une vie, on decrements le compteur V, et 
Ton revient au jeu uniquement si V est encore superieur 
aO. 

Si Ton a gagne, on incremente le compteur de rochers T 
de 1 et le compteur de points de 10. Si T est inferieur a 5 
on continue le jeu, sinon, on recommence une partie en 
incremental le compteur P de 50 points. 



Super jeux Amstrad 15 



LlSTE 
DES VARIABLES : 



A utilise pour le emplacement des objets: A=2 

lignes du haut, A=4 lignes du bas 

AS derniere touche appuyie 

AX et AY anciennes coordonnees de la grenouille 

C couleur sous la grenouille 

D() pointeurs dans les chaines L$() 

I indice de boucle FOR/NEXT 

l() table des stylos 

J indice de boucle FOR/NEXT 

L$() chaines d'objets 

P nombre de points 

P() table des papiers 

T nombre de rochers 

V nombre de vies 

X et Y coordonnees de la grenouille 



POINTS: 11 



VIES: 





16 Super jeux Amstrad 




CANADAIR 



Qui n'a jamais reve d'etre seul maTtre a bord d'un avion ? 
Voila I'occasion d'exercer vos talents de pilote. 

Un feu de foret vient d'etre annonce et le canadair doit jeter 
son eau sur les flammes dessinees a I'ecran. 

Au premier tableau, le canadair va et vient, d'abord 
lentement, puis sa vitesse est doublee definitivement. 

Le largage de I'eau se fait par la barre d'espace ainsi que 
les changements de tableaux quand toutes les flammes 
sont eteintes, et les remises en jeu. 

Attention : aux tableaux suivants, les flammes montent 
de plus en plus haut et necessitent une bonne reflexion 
strategique pendant la descente. 

Quand I'avion heurte une flamme, il s'ecrase et repart a 
zero. 



POINTS: S7 



NIVEAU: 




Super jeux Amstrad 17 



10 REM CANAOAIR 

20 REM 

30 SYMBOL AFTER 128:GOSUB 1000 

40 MODE 1:INK 0, 0: INK 1,6: INK 2,24:INK 3,2:PAPER 6 

:PEN 1: BORDER 

50 RANDOMIZE TIME: N=l: P=0. 5 

60 I = P 

70 PEN 2:LOCATE 31 , 1: PRINT B NIVEAU: "; N: PEN 1 

180 REM 

190 REM DESSIN DU JEU 

200 FOR X=l TO 40 

210 A=INT(RND*N*4) 

220 LOCATE X,21-A:PRINT CHR$(128) 

230 FOR Y=22-A TO 22 

240 LOCATE X,Y:PRINT CHRS(129) 

250 NEXT Y 

260 NEXT X 

270 X=l 

280 Y=l 

380 REM 

390 REM LE JEU 

400 PEN 2: LOCATE X,Y: PRINT " " 

410 IF X>=40 THEN I=-P 

420 IF X<=1 THEN I=P:Y=Y+1 

430 IF Y = 4 THEN P=l 

440 IF Y=22 THEN 900 

450 X=X+I 

460 IF TEST(X*16-8,408-Y*16)>0 THEN 800 

470 IF I>0 THEN LOCATE X,Y:PRINT CHR$( 131 ): GOTO 49 



480 LOCATE X,Y:PRINT CHR$(132) 

490 FOR K=l TO 30:NEXT:IF F=l THEN 540 

500 IF INKEY$="" THEN 400 

510 F=l 

520 L=Y+1 

530 C=X 

540 LOCATE C,L: PRINT " " 

550 L=L+1 

560 IF L>=23 THEN F=0:GOTO 400 

570 IF TEST(C*16-8,408-L*16)>0 THEN 600 

580 PEN 3:LOCATE C.L.-PRINT CHR$(130) 

590 GOTO 400 

600 F = 0:T = T+1:PEN 2:t.OCATE 1,1: PRINT "POINTS: " ; T 

610 FOR J=L TO L+2 

620 IF J<23 THEN LOCATE C, J: PRINT " " 

630 NFXT J:L = l. + 2 

640 IF L>=22 THEN 400 

650 PFN l:LOCATE C,L:PR1NT CHRS(128) 

660 GOTO 400 

780 REM 

790 REM PERDU 

18 I Super jeux Amstrad 



806 
810 
820 
830 
31) 
840 
850 
860 
880 
890 
900 
910 
920 
930 
980 
990 
1000 

1010 

1020 
1030 
1040 
1050 



IF X>=40 THEN X = 39 

FOR I=Y TO 21 

LOCATE X, 1-1: PRINT" " 

LOCATE X, I:PRINT"**":LOCATE X T I + 1-: PRINT CHR$(1 



NEXT I 

IE INKEY$="" 

RUN 

REM 

REM GAGNE 
FOR 1=500 TO 
IF INKEY$=" " 
N=N+1= IF N=5 
GOTO 60 

REM 

REM GRAPHIQUES 



THEN 850 



50 STEP ■ 
THEN 910 
THEN N=4 



5: SOUND 1, I, 2: NEXT 



SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
RETURN 



128,8,24,56,60, 124, 126,126,63 
129,63,126,126,252,252,126,126,63 
130, 162,73,22, 169, 100, 18,91, 36 
131,32, 144,255,255,60, 16,32,0 
132,4,9,255,255,60,8,4,0 



LlSTE 
DES VARIABLES : 



A 


nombre aleatoire : hauteur des flammes 


CetL 


coordonnees de I'eau 


F 


drapeau: si F=1 I'eau est en cours de 




descente 


1 


indice de boucle FOR/NEXT 


J 


indice de boucle FOR/NEXT 


N 


niveau du jeu 


P 


increment de base 


T 


nombre de points 


XetY 


coordonnees de I'avion 



Super jeux Amstrad 



19 



Programme 



Lignes 30 a 70 : initialisation 

Apres la definition des graphiques par le sous-programme 
en 1000, on initialise les diverses variables (voir liste des 
variables). 

Lignes 200 a 280 : dessin du jeu 

La variable N donnant le niveau du jeu, on affiche a partir 
du bas de I'ecran des flammes dont la hauteur est 
determinee par un nombre aleatoire fonction de N. 

Les variables X et Y definissent la position du canadair. 

Lignes 400 a 660 : le jeu 

Si le canadair arrive a droite de I'ecran (X>=40), on 
change de direction en modifiant la valeur de I'increment I 
(tigne 410). 

On effectue I'operation inverse s'il arrive a gauche (X<=1 
en ligne 420) et Ton descend d'une ligne. 

Quand on arrive sur la quatrieme ligne (Y=4), on change 
I'increment de base pour aller plus vite (de 0.5 a 1). 

La 22 e ligne etant la derniere, on incremente le niveau du 
jeu N, et Ton commence une nouvelle partie (ligne 440). 

Une fois la position du canadair modifiee (ligne 450), on 

teste sur I'ecran le.caractere qui s'y trouve. Si celui-ci est 

different de (une flamme), on va en ligne 800 pour la fin 

du jeu. 

Suivant la valeur de I (positive ou negative), on affiche un 

canadair vers la gauche ou vers la droite (lignes 470 et 

480). 

Le drapeau F indique que de I'eau est deja en train de 
descendre. On va alors directement en ligne 540. 

Dans I'autre cas, on teste le clavier pour savoir si Ton doit 
jeter de I'eau ou non. 

Les lignes 520 a 590 affichent sur I'ecran I'eau qui 
descend. Des que celle-ci touche la flamme (testee en ligne 
570), on en efface une partie (lignes 600 a 660). 

Lignes 800 a 930 : perdu et gagne 

Si le canadair a touche une flamme, on le fait descendre 
jusqu'au bas de I'ecran. 

Mais si c'est gagne, on incremente le niveau du jeu N 
avant de reprendre une autre partie. 



20 



Super jeux Amstrad 




CHENILLE 



Vous devez constituer une chenille en avalant tous les 
elements apparaissant sur I'ecran. lis sont de deux sortes : 
les bons qui donnent un bonus (ceux qui sont rouges), et 
les autres qui en font perdre un (ceux qui sont violets). 

Le compte des bonus s'affiche en bas a droite de I'ecran: il 
faut bien sur que ce compteur soit superieur a pour 
pretendre manger un « anti-bonus ». 

La chenille s'allonge a chaque element qu'elle avale. Elle se 
deplace toute seule, le joueur devant modifier sa trajectoire 
avec les touches P et Q. 

Mais attention a ne pas heurter le bord du tableau ou 
enrouler entierement la chenille sur elle-meme ! 

A chaque tableau reussi succede un nouveau tableau 
comportant un nombre de plus en plus important 
d'elements. Ne vous decouragez surtout pas au premier 
tableau : la dexterite s'acquiert tres vite. 




# 



POINTS: 17 



BONUS : 3 



Super jeux Amstrad 21 



10 REM CHENILLE 

20 REM 

30 SYMBOL AFTER 128:QOSUB 1000 

40 DIM Y(20I),X(201) 

50 E=0:TT=0 

60 RANDOMIZE TIME 

80 REM 

90 REM DESSIN DU JEU 

100 P=1:Q=1:T=0:E=E+10:IF E>200 THEN E=200 

110 DX=0:DY=-1:X(1)=20:Y(1)=12:B=0 

120 MODE 1:INK 0,1:INK 1,24:INK 2,6:INK 3,8:PAPER 

1:PEN lrBORDER 1 

130 FOR 1=1 TO 40 

140 LOCATE 1,1: PRINT M M :LOCATE I,23:PRINT " " 

150 IF K23 THEN LOCATE 1, I: PRINT " ":LOCATE 40,1: 

PRINT " H 

160 NEXT I: PAPER 

170 LOCATE X(1),Y(1):PRINT CHR$(128) 

180 FOR 1=1 TO E 

190 Y=INT(RND»21)+2:X=INT(RND*38)+2 

200 IF TEST(X»16-8,408-Y*16)>0 THEN 190 

210 IF I>E/2 THEN PEN 2:LOCATE X,Y:PRINT CHR$(130) 

ELSE PEN 3:LOCATE X,Y:PRINT CHR$( 131 ) 
220 NEXT I 
230 PEN l:LOCATE 2, 24: PRINT"POINTS: " ; TT ; TAB(28) : "B 

ONUS: 0" 

240 IF INKEY$="" THEN 240 

280 REM 

290 REM LE JEU 

300 D$=INKEY$:IF D$= H " THEN 380 

310 IF DY=0 THEN 350 

320 IF D$= H Q" THEN DX=DY:GOTO 340 

330 DX=-DY 

340 DY=0:GOTO 380 

350 IF [}$ = "?» THEN DY=DX:GOTO 370 

360 DY=-DX 

370 DX=0 

380 LOCATE X(P) , Y(P) : PRINT CHR$(129) 

390 AP=P:P=P+1:IF P=202 THEN P=l 

400 X(P)=X(AP)+DX:Y(P)=Y(AP)+DY 

410 A=TEST(X(P)*16-8,408-Y(P)*16):IF A<>0 THEN 500 

420 LOCATE X(Q) , Y(Q) : PRINT " " 

430 Q=Q+1:IF Q=202 THEN Q=l 

440 LOCATE X(P) , Y(P ): PRINT CHR$(128) 

450 GOTO 300 

480 REM 

490 REM ELEMENT RENCONTRE ? 

500 IF A=l THEN 800 

510 IF A=2 THEN B=B+l:GOTO 550 

520 IF B=0 THEN 800 

530 B=B-1 

22 Super jeux Amstrad 



550 T=T+1:TT=TT+1 

560 LOCATE 9,24:PRINT TT:LOCATE 35,24:PRINT B; 

570 IF T=E THEN 100 

580 GOTO 440 

786 REM 

790 REM FIN 

800 LOCATE 9,24:PRINT TT.-LOCATE 35,24:PRINT B ; 

810 LOCATE X(Q),Y(Q):PRINT " " 

820 Q=Q+1: IF Q=202 THEN Q=l 

830 IF Qop THEN 810 

840 IF INKEY$<>CHR$(13) THEN 840 

850 RUN 

980 REM 

990 REM GRAPHIQUES 

1000 SYMBOL 128,60,110,207,255,247,143,126,60 
1010 SYMBOL 129,60,126,255,255,255,255,126,60 
1020 SYMBOL 130,198,40,56,124,254,186,56,238 
1030 SYMBOL 131,170,186,186,254,124,56,40,238 
1040 RETURN 



LlSTE 
DES VARIABLES : 



A couleur du point rencontre par la chenille 

AP ancienne valeur de P 

B nombre de bonus 

D$ derniere touche enfoncee 

DX et DY sens du deplacement en X et en Y de la 

chenille 
E nombre d'elements a eliminer 

I indice de boucle FOR/NEXT 

P pointeur de la tete de la chenille dans X() et 

Y() 
Q idem pour la queue de la chenille 

T nombre de points du tableau 

TT total des points de la partie 

X et Y nombres aleatoires : coordonnees des bonus 

et anti-bonus 
X() et Y() coordonnees de chaque element de la chenille 



Super jeux Amstrad 23 



Programme 



Lignes 30 a 60 : initialisation 

Apres la definition des caracteres graphiques par le sous- 
programme en 1000, on dimensionne deux tableaux X et Y 
pour connattre a tout moment la position des elements qui 
composent la chenille. 

Le compteur E donne le nombre d'elements a eliminer, 
tandis que TT compte le nombre de points de toutes les 
parties. 

La ligne 60 initialise les nombres aleatoires. On utilise pour 
cela la variable systeme TIME. Celle-ci etant toujours 
differente, on ne peut connattre sa valeur a I'avance. 

Lignes 100 a 240 : dessin du jeu 

Apres I'effacement de I'ecran et le dessin du cadre (lignes 
120 a 160), on affiche aleatoirement sur I'ecran les deux 
sortes d'elements (caracteres graphiques 130 et 131). 

Lignes 300 a 450 : le jeu 

Si une touche est appuyee, on modifie en consequence les 
increments de direction DX et DY (lignes 300 a 370). Puis 
Ton affiche, a la place de la tete de la chenille pointee par la 
variable P, un element du corps. 

Apres I'increment de P, on modifie le contenu de X(P) et 
Y(P) avec les increments DX et DY (ligne 400). 

Si un element est rencontre (teste par TEST en ligne 410), 
on va en 500 pour identification. 

Dans le cas contraire, on efface le dernier element de la 
chenille pointe par la variable Q. Cette derniere variable est 
incremented dans la limite des tableaux X et Y. 

Pour terminer cette partie du programme, on affiche la tete 
de la chenille aux coordonnees pointees par P. 

Lignes 500 a 580 : element rencontre 

Si I'element rencontre est le bord ou la chenille (A=1), on 
va directement en ligne 800 pour la fin du jeu. 

Par contre, s'il s'agit d'un bonus, on incremente le 
compteur B. Puisqu'il ne reste plus que les « anti-bonus » 
a tester, on va en ligne 800 pour la fin du jeu si le 
compteur Best a zero. 

Dans I'autre cas, on decremente la variable B. 

La variable T indique le nombre d'elements deja elimines. 
On la compare done a E pour connattre le moment de fin 
d'un tableau. Si ces deux variables sont egales, on va en 
ligne 100 ou le compteur E est incremente de 10 pour le 
nouveau tableau (dans la limite de 200 elements). 



24 Super jeuxAmstrad 




INCENDIE 



Apres le lancement du programme, un decor se dessine 
instantanement sur I'ecran. 

Dans le ciel, des etoiles et, au milieu de I'ecran, une 
maison, une ambulance et deux pompiers. Ces derniers 
doivent rattraper tous les personnages (1 , puis 2, puis 3, 
jusqu'a 10) qui tombent de la maison en feu, et les mettre 
dansl'ambulance. 

Vous les manceuvrez aves les touches P et Q. 

Vous gagnez un point quand I'un des personnages atteint 
I'ambulance. Par contre vous perdez une des trois vies qui 
vous sont donnees au depart quand I'un des bonhommes 
s'ecrase au sol. De plus, au bout de 50 points, vous 
gagnez une nouvelle vie. 

De quoi peut-etre faire nattre une vocation ! 




Super jeux Amstrad 



25 



le REM INCENDIE 

20 REM 

30 SYMBOL AFTER 128:DIM X( 15) , Y( 15) , C( 15) : GOSUB 11 

00 

40 RANDOMIZE TIME 

50 MODE 1:INK 0,3:INK 1,0:INK 2,15:INK 3,2:PAPER 

:PEN 1: BORDER 3: GOSUB 900 

60 N=1:P=1:S=2:T=0 

70 IF INKEY$="" THEN 70 

180 REM 

190 REM LE JEU 

200 GOSUB 800 

210 PEN lrLOCATE 11,22:PRINT A$(P) 

220 FOR 1=1 TO N 

230 P(I)=0 

240 NEXT I 

250 FOR 1=1 TO N 

260 IF 1=1 THEN 290 

270 IF P(I-1)=4 THEN LOCATE 9, 1 3+INT(RND+0. 5)»4: PR 

INT CHR$(132) 

280 IF P(I-1)<6 THEN 440 

290 IF P(I)>14 THEN 440 

300 A$=INKEY$ 

310 P = P + (A$="P")*(P<3)-(A$="Q ,, )*(P>1) 

320 LOCATE 11, 22: PRINT A$(P) 

330 IF P(I)=0 THEN LOCATE 9,13:PRINT " ".-LOCATE 9, 

17:PRINT " ":GOTO 350 

340 LOCATE X(P(I ) ) , Y(P{ I ) ): PRINT " " 

350 P(I)=P(I)+1 

360 IF P(I)<>15 THEN 390 

370 T=T+1:IF T/50=INT(T/50) THEN S=S+l:GOSUB 800 

380 PEN 2:LOCATE 1,1:PRINT T; CHR$ (7 ) ; : PEN l:GOTO 4 

40 

390 LOCATE X(P( I ) ) , Y(P( I ) ) : PRINT CHR$( 128+C( P( I ) ) ) 

400 FOR J=l TO 11-N 

410 IF J=l THEN A$=INKEY$:P=P+(A$="P")*(P<3)-(A$=" 

Q")*(P>l):LOCATE 11, 22: PRINT A$(P) 

420 NEXT 

430 IF Y(P(I))=21 THEN SOUND 1, 500, 2: IF TEST(X(P(I 

))*16-8,58)=0 THEN 600 

440 NEXT I 

450 FOR J=l TO N 

460 IF P(J)<15 THEN 250 

470 NEXT J 

480 N=N+1:IF N>10 THEN N=10 

490 GOTO 200 

580 REM 

590 REM PERDU 

600 LOCATE X(P(I)),21:PRINT " " 

610 LOCATE X(P(I)),22:PRINT CHR$( 131 ) 

620 SOUND 1,426, 2:SOUND 1 , 478, 2: SOUND 1,379,2 

630 S=S-l:GOSUB 800 

640 P(I)=16 

26 Super jeux Amstrad 



650 IF S>-1 THEN 446 

660 FOR 1=50 TO 500 STEP 5: SOUND 1,1, 2: NEXT 
670 IF INKEY$<>CHR$(13) THEN 670 ELSE 50 
780 REM 

790 REM AFFICHE LES VIES 

800 PEN 3:LOCATE 33,1:PRINT" 

810 FOR J=l TO S 

820 LOCATE 32+J,l:PRINT CHR$(132): " " 

830 NEXT J 

840 PEN 1:RETURN 

880 REM 

890 REM DESSIN DU JEU 

900 PLOT 0,238:DRAW 126,238:DRAW 126,48:DRAW 0,48: 

DRAW 0,238 

910 PLOT 126,190:ORAW 144,190:DRAW 144,198 

920 PLOT 126,126:DRAW 144,126:DRAW 144,134 

930 PLOT 48, 222: DRAW 80, 222: DRAW 80, 190: DRAW 48,19 

0: DRAW 48,222 

940 PLOT 48,158:DRAW 80,158:DRAW 80,126:DRAW 48,12 

6: DRAW 48,158 

950 LOCATE 24,21:PRINT CHR$( 135)CHR$( 136) 

960 LOCATE 24,22:PRINT CHR$( 137)CHR$ ( 138) 

970 FOR 1=1 TO 10 

980 LOCATE 1+RND*40, 1+RND*8: PRINT "*" 

990 NEXT I 

1000 RETURN 

1080 REM 

1090 REM GRAPHIQUES 

1100 SYMBOL 128,56,186,146,126,56,40,38,48 

1110 SYMBOL 129,2,116,228,88,29,111,6,0 

1120 SYMBOL 130,0,8,17,223,248,221,19,16 

1130 SYMBOL 131,54,20,20,28,127,73,93,93 

1140 SYMBOL 132,28,29,9,63,92,92,20,22 

1150 SYMBOL 133,129,66,60,0,0,0,0,0 

1160 SYMBOL 134,56,184,144,252,58,42,40,232 

1170 SYMBOL 135,0,2,1,0,255,128,140,158 

1180 SYMBOL 136,0,0,0,128,240,72,68,66 

1190 SYMBOL 137,158,140,128,176,200,255,120,48 

1200 SYMBOL 138,127,1,1,25,37,255,60,24 

1210 A$(1)=CHR$(132)+CHR$(133)+CHR$(134)+" 

1220 A$(2)=" "+CHRS(132)+CHR$(133)+CHR$(134)+" 

1230 A$(3)=" "+CHR$(132)+CHR$(133)+CHR$(134 

1240 FOR 1=1 TO 14 

1250 READ X(I),Y(I),C(I) 

1260 NEXT I 

1270 RETURN 

1280 DATA 10,15,1,11,18,2,12,21.3,13,18,2 

1290 DATA 14,15,1,15,18,2,16,21,3,17,18,2 

1300 DATA 18,15,1,19,18,2,20,21,3,21,18,2,22,15,3, 

23, 18,2 

Super jeux Amstrad 27 



Programme 



Lignes 30 a 70 : initialisation 

Pour connaitre la position des personnages et les 
caracteres graphiques qui s'y rapportent, on dimensionne 
trois tableaux X, Y et C. Ceux-ci sont remplis par le sous- 
programme 1100. C'estaussi ce sous-programme qui 
definit les caracteres graphiques. 

Lignes 200 a 490 : le jeu 

Le sous-programme en 800 affiche des personnages en 
haut de I'ecran pour indiquer au joueur le nombre de vies 
restantes. 

Chaque personnage a une position bien determined 
contenue dans le tableau P. Celui-ci est done remis a zero 
aux lignes 220 a 240. 

La variable N donnant le nombre de personnages a 
recuperer, on effectue cette boucle de 1 a N le nombre de 
fois qu'il faut pour qu'ils soient tous dans I'ambulance. 

Les personnages apparaissent au balcon uniquement si le 
precedent a deja couvert quatre positions (ligne 270), et ils 
sautent uniquement quand le precedent en est a six 
positions (ligne 280). 

Le caractere saisi par INKEYS en ligne 300 permet de 
determiner la position du drap (variable P). On utilise pour 
cela une expression logique pour modifier la valeur de P 
(ligne 310). Pour permettre de bouger plus rapidement le 
drap, on repete cette ligne en 410. 

Quand un personnage atteint la position 15 (I'ambulance), 
on incremente le compteur de points T (ligne 370). Si T est 
divisible par 50, on ajoute une vie (compteur S). 

Dans le cas ou un personnage arrive sur le sol, on teste 
par la fonction TEST la presence du drap (ligne 430). Si la 
couleur trouvee a cet endroit est (un blanc), on va a la 
ligne 600 pour la fin du jeu. 

Les lignes 450 a 470 testent si tous les personnages sont 
dans I'ambulance. Si ce n'est pas le cas, on revient en 
ligne 250. Tous les personnages etant arrives a bon port, 
on incremente le compteur N pour en agrandir la famille au 
prochain tour (ligne 480). 



28 



Super jeux Amstrad 



LlSTE 
DES VARIABLES : 



A$() 


dessin du drap pour les trois positions 


CO 


pointeurs des caracteres graphiques de 




chaque position des personnages 


1 


indice de boucle FOR/NEXT 


J 


indice de boucle FOR/NEXT 


N 


nombre de sauvetages a effectuer 


P 


position du drap 


P() 


position de chaque personnage 


S 


nombre de vies 


T 


nombre de points 


X()etY() 


toutes les coordonnees possibles des 




personnages. 



Super jeux Amstrad 



29 




COURSE 
AUTOMOBILE 



Eviterez-vous la voiture infernale de I'ordinateur qui mule 
en sens inverse, tout en passant sur chaque portion du 
circuit ? 

Deux commandes sont necessaires a votre deplacement ; 
la touche P pour vous diriger vers le centre et la touche Q 
pour aller vers I'exterieur. 

Des le debut de la course, trois parties gratuites vous sont 
allouees. Chaque deplacement donne un point. Les points 
sont affiches en haut de I'ecran a chaque deplacement vers 
le centre ou vers I'exterieur. Si vous passez sur toutes les 
portions du circuit, une nouvelle piste s'affiche avec le 
total general et le jeu reprend de plus belle. 

Bonne chance... et pas d'imprudence ! 




30 Super jeuxAmstrad 



10 REM COURSE AUTOMOBILE 

20 REM 

30 SYMBOL AFTER 128:G0SUB 1300 
40 DEFINT A-Z 
50 GOSUB 1100 

60 X(0)=1:X(2)=-1:Y(1)=1:Y(3)=-1 

70 PG=3 

80 FOR 1=1 TO PG 

90 LOCATE 31 + I«2,1:PRINT CHR$ ( 132 ) CHR$ ( 133 ) " M -L 

OCATE 3.1 + 1*2, 2: PRINT CHR$ ( 1 34 )CHR$( 135 ) " 

100 NEXT I 

110 S=0:SO=3 

120 X=8:Y=4:X0=32: YO=23 

130 L=5:LO=5rD=0:A=32 

180 REM 

190 REM LE JEU 

200 PEN 2:L0CATF X,Y:PRINT CHR$( 136) : PEN 1 

210 X=X+X(S): Y=Y+Y(S) 

220 IF TEST(X»16-8,406-Y*16)=0 THEN G=G+1:IF G=279 

THEN 800 
230 LOCATE X,Y:PRINT CHR$(S+128) 

240 PEN 2.-LOCATE XO,YO:PRINT CHR$(A):PEN l:XO = XO+X 
(SO):YO=YO+Y(SO) 

250 A=TEST(XO»16-8,406-YO*16):LOCATE XO,YO:PRINT C 
HR$(S0+128):.TF A = 2 THEN A = 136 ELSE A = 32 
260 IF L<LO THEN D=3 
270 IF L>LO THEN 0=1 

280 IF D<>0 AND TEST( (XO+X( ( SO+D ) MOO 4))«16-8,406 
-(YO+Y((SO+D) MOO 4))*16)=0 AND TE$T( (XO+X( SO) *16 
-8,406-(YO+Y(SO))*16)<>3 THEN 700 

lit Z=TEST((X+X(S))*16-8,406-(Y+Y(S))*16):IF Z=l T 
HEN 800 

300 IF Z=0 OR Z=2 THEN 320 

310 S=(S+1) MOD 4 

320 B$=INKEY$:IF B$<>"" THFN C$=B$ 

330 IF C$="P M THEN 500 

340 IF C$="Q" THEN 600 

350 Z=TEST((XO+X(SO))*16-8,406-(YO+Y(SO))*16):IF Z 
=0 OR Z=2 THEN 200 ' 

360 SO=(SO+3) MOO 4 
370 GOTO 200 

480 REM 

490 REM DEPLACEMENT CENTRE 

500 IF TEST((X+X((S + 1) MOD 4) )*1 6-8, 406- ( Y+Y( ( S + l ) 

MOO 4))*16)<>0 THEN 350 
510 SOUND 1,200,1:PEN 2:L0CATE X,Y:PRINT CHR$(136) 

: PEN 1 

520 X = X + X((S + 1) MOD 4)+X((S + l) MOD 4 ) : Y = Y+Y( ( S + l ) 

MOD 4)+Y((S+l ) MOD 4) 

530 L=L-1:IF L<1 THEN L=l 

540 IF TEST(X*16-8,406-Y*16)=0 THEN G=G+1 

Super jeuxAmstrad I 31 



550 LOCATE 25,1: PRINT G 

560 C$="":QOTO 350 

580 REM 

590 REM DEPLACEMENT EXTERIEUR 

600 IF TEST((X+X((S+3) MOD 4) )*16-8, 406-( Y+Y( ( S+3) 

MOD 4))*16)<>0 THEN 350 
610 SOUND 1,50,1:PEN 2:LOCATE X,Y:PRINT CHR$(136): 
PEN 1 

620 X=X+X((S+3) MOD 4)+X((S+3) MOD 4) : Y=Y+Y( ( S+3) 
MOD 4)+Y((S+3) MOD 4) 
630 L=L+1 

640 IF TEST(X*16-8,406-Y*16)=0 THEN G=6+l 
650 LOCATE 25, 1: PRINT Q 
660 C$="": GOTO 350 

680 REM 

690 REM DEPLACEMENT AMSTRAD 

700 PFN 2:LOCATE XO,YO:PRINT CHRS(A):PEN 1 

710 XO=XO+X((SO+D) MOD 4)+X((S0+D) MOD 4):Y0=Y0+Y( 

(SO+D) MOD 4)+Y( (SO+D) MOD 4) 

720 IF = 1 THEN 1.0 = 1.0+1 ELSE L0 = L0-1 

730 D=0: A=TEST(XO*16-8,406-YO*16): IF A = 2 THEN A=13 

6 ELSE A=32 

740 GOTO 290 

780 REM 

790 REM FIN DE PARTIE 

800 PEN ?:LOCATE XO,YO:PRINT CHR$ ( A ): LOCATE X,Y:PR 

INT CHR$(136):PEN 1 

810 IF G = 279 THEN G=280: PG=PG+1 : FOR 1=500 TO 50 ST 

EP-5:S0UND 1,I,2:NEXT ELSE FOR 1=50 TO 500 STEP 5: 

SOUND 1,1, 2: NEXT 

820 PG = PG-1:TP = TP + G:G = 0:LOCATE 4, 1 ; PRINT "TOTAL: "; T 

P 

830 FOR 1=3 TO 12 STEP 2: FOR J = TO 30-1*2 

840 LOCATE I+5+J, 1+1 : PRINT" ":LOCATE I + 5+J, 27-1: P 

RINT" ":IF J<26-I*2 THEN LOCATE 1 + 5, I + J+l : PRINT " " 

rLOCATE 35-1, I+J+l : PRINT" " 

850 NEXT: NEXT 

860 IF PG=0 THEN 1000 

870 GOTO 80 

980 REM 

990 REM FIN DU JEU 

1000 LOCATE 33, 1 r PR] NT " "rLOCATE 33,2:PRINT " " 

1010 LOCATE 16, 1 4: PR INT "GAME OVER" 

1020 IF INKFY$oCHR$(13) THEN 1020 

1030 RUN 

1080 REM 

1090 REM DESSIN DU JEU 

1100 MODE 1: INK 0,1:INK 1, 24: INK 2,6:INK 3, 15: PAPE 

R 3:PEN 1:B0RDER 1 

1110 FOR 1=2 TO 13 STEP 2: FOR J=0 TO 30-1*2 



32 Super jeux Amstrad 



1120 LOCATE I+5+J,I+l:PRINT" MOCATE 1+5+0, 27-I:P 

RINT" ":IF J<26-I*2 THEN LOCATE 1+5, I+J+l: PRINT" " 

:LOCATE 35-I,I+a+l:PRINT" - 

1138 NEXT:NEXT 

1140 PAPER 0: LOCATE 9,14:PRINT" ": LOCATE 25, 

14:PRINT" 

1150 FOR 1=5 TO 12 

1160 LOCATE 20,I:PRINT - ":LOCATE 20, 1+12: PRINT " 

ii 

1170 NEXT I 

1180 LOCATE 19, 1:PRINT"SC0RE: " 

1190 RETURN 

1288 REM 

1290 REM GRAPHIQUES 

1300 SYMBOL 128,224,231,66,255,255,66,231,224 

1310 SYMBOL 129,219,255,219,24,24,90,126,90 

1320 SYMBOL 130,7,231,66,255,255,66,231,7 

1330 SYMBOL 131,90,126,90,24,24,219,255,219 

1340 SYMBOL 132,12,14,27,53,106,213,170,213 

1350 SYMBOL 133,0,0,0,128,192,96,240,152 

1360 SYMBOL 134,107,53,26,14,4,0,0,0 

1370 SYMBOL 135,12,6,3,1,0,0,0,0 

1380 SYMBOL 136,0,0,0,24,24,0,0,0 

1390 RETURN 



Super jeux Amstrad I 33 



Programme 



Lignes 30 a 380 : le jeu 

Apres I ' initialisation des graphiques et du dessin du jeu 
(sous-programme en 1300 et 1100), on affiche en hautde 
I'ecran le nombre de parties gratuites. 

La ligne 200 place un point sur la position du joueur. 

Si la nouvelle position comporte un espace (TEST=0), on 
incremente le compteur de points G. Si G=279 on va en 
800 pour une nouvelle partie. 

On repete la meme sequence pour la voiture de 
I'ordinateur. 

Les variables L et LO donnant le numero de piste (L=5 
pour la piste exterieure et L=1 pour la piste interieure) on 
place dans D le sens du deplacement de I'ordinateur (D=3 
pour I'interieur et D=1 pour I'exterieur). Dans le cas ou D 
est differente de zero et qu'une case blanche est adjacente, 
on va en 700 pour le deplacement d'Amstrad. 

Si la voiture du joueur rencontre celle de I'ordinateur (ligne 
290), on saute a la fin de partie (ligne 800). 

La touche appuyee (stockee dans B$) est gardee en 
memoire dans la variable C$ jusqu'au prochain carrefour. 
Les lignes 330 et 340 orientent alors sur les parties 
concernees du programme. 

Lignes 500 a 560 : deplacement centre 

La touche P etant appuyee, on deplace la voiture du joueur 
vers le centre dans le cas ou il existe une case blanche 
adjacente (TEST=0). 

Puis Ton incremente les variables X,Y et Ton decremente 
le compteur L pour que I'ordinateur sache sur quelle piste 
on setrouve. 

La ligne 550 affiche le nombre de points acquis. 

Lignes 600 a 660 : deplacement exterieur 

Identiques aux lignes 500 a 560 mais pour I'exterieur. 

Lignes 700 a 740 : deplacement d'Amstrad 

La variable D (sens du deplacement de la voiture du 
joueur) etant differente de zero, on deplace la voiture 
d'Amstrad vers I'exterieur (si D=1) ou vers I'interieur (si 
D=3). 

Puis Ton incremente les variables XO, YO et le compteur 
LO pour que I'ordinateur sache sur quelle piste il se trouve. 

Lignes 800 a 870 : fin de partie 

Si la voiture du joueur a rencontre celle de I'ordinateur ou 
si toutes les portions du circuit ont ete couvertes, on 
affiche le score total et Ton efface les points pour une 
nouvelle partie. 



34 Super jeux Amstrad 



Lignes 1000 & 1030 : fin du jeu 

Comme il ne reste plus aucune partie gratuite (variable 
PG), on affiche un nouveau jeu des que la touche ENTER 
est enfoncee. 



LlSTE 
DES VARIABLES : 



A contient le caractere qui effacera la voiture 

d'Amstrad au prochain deplacement 
BS derniere touche enfoncee 

D difference entre le joueur et Amstrad 

G nombre de points dans une partie 

I indice de boucle FOR/NEXT 

J indice de boucle FOR/NEXT 

L numerode la piste du joueur 

LO numero de la piste d'Amstrad 

PG nombre de parties gratuites 

S sens du deplacement du joueur 

SO sens du deplacement d'Amstrad 

TP total des points 

X et Y coordonnees de la voiture du joueur 

XO et YO coordonnees de la voiture d'Amstrad 
X() et Y() nombre de caracteres de deplacement dans 

les 4 directions 
Z couleur devant la voiture du joueur ou 

d'Amstrad 



Super jeux Amstrad 



35 




MOTOS 
LUMINEUSES 



Votre moto dejouera-t-elle les pieges tendus par celle 
d'Amstrad ? 

Les motos laissent une trace lumineuse derriere elles. II 
faut done eviter non seulement la trace de I'adversaire, 
mais aussi celle de votre propre moto. Celle-ci se dirige 
avec les touches P et Q du clavier. 

Vous aurez besoin de beaucoup de dexterite pour enfermer 
la moto de I'ordinateur de maniere a ce qu'elle revienne sur 
elle-meme ou touche le bord de I'ecran. 

A chaque fin de partie, les scores du joueur et d'Amstrad 
s'affichent en bas de I'ecran, et le jeu reprend pour mettre 
une fois de plus vos reflexes a dure epreuve. 




36 



Super jeux Amstrad 



10 REM MOTOS LUMINEUSES 

20 REM 

30 SYMBOL AFTER 128 

40 MODE 1:INK 0,1:INK 1,24:INK 2,6:INK 3,15:PAPER 

1: BORDER 1:60SUB 700: PAPER 

50 RANDOMIZE TIME 

60 X(0)=-1:X(2)=1:Y(1)=1:Y(3)=-1 

70 X1=20:Y1=21:D1=3:X2=20:Y2=11:D2=INT(RND*4) 

80 N=0:N1=0:N2=0 

180 REM 

190 REM LE JEU 

200 A$=INKEY$ 

210 IF A$="Q" THEN Dl=(Dl+l)MOD 4 

220 IF A$="P" THEN Dl=(Dl+3)MOD 4 

230 X1=X1+X(D1):Y1=Y1+Y(D1) 

240 IF TEST(Xl*16-8,408-Yl*16)<>0 THEN 610 

250 PEN 2:L0CATE X1,Y1:PRINT CHR$(129) 

260 IF TEST((X2+X(D2))*16-8,408-(Y2+Y(D2))*16)<>0 

OR N>N2 THEN GOSUB 400 ELSE N1=RND*8 

270 X2=X2+X(D2):Y2=Y2+Y(D2) 

280 PEN 3:L0CATE X2,Y2:PRINT CHR$(129) 

290 N=N+INT(RND*2):GOTO 200 

380 REM 

390 REM MOUVEMENTS DE L'ORDINATEUR 

400 N=0:N2=N2+N1 

410 IF X(D2)=0 THEN 470 

420 IF Y<10 AND NK6 THEN 440 

430 IF TEST(X2*16-8,408-(Y2-l)*16)=0 THEN D2=3:GOT 

520 

440 IF TEST(X2*16-8,408-(Y2+l)«16)=0 THEN D2=l:GOT 

520 

450 IF TEST(X2*16-8,408-(Y2-l)*16)=0 THEN D2=3:GOT 

520 

460 GOTO 510 

470 IF X>30 AND NK6 THEN 490 

480 IF TEST((X2+l)*16-8,408-Y2*16)=0 THEN D2=2:GOT 

520 

490 IF TEST((X2-l)*16-8,408-Y2*16)=0 THEN D2=0:GOT 

520 

500 IF TE$T((X2+l)*16-8,408-Y2*16)=0 THEN D2=2:GOT 

520 

510 IF TEST((X2+X(D2))*16-8 f 408-(Y2+Y(D2))*16)<>0 

THEN 600 

520 RETURN 

580 REM 

590 REM FIN DE PARTIF 

600 Tl=Tl+l:GOTO 620 

610 T2=T2+1 

620 PEN 3:LOCATE 1,25:PRINT " VOUS: " : Tl ; TAB (28) : " 

AMSTRAD: ";T2; 

630 IF INKEY$<>CHR$(13) THEN 630 

Super jeux Amstrad 37 



646 GOTO 46 

686 REM 

696 REM DESSIN DU JEU 

766 SYMBOL 128,136,17,34,68,136,17,34,68 

718 SYMBOL 129,85,176,85,178,85,176,85,170 

720 FOR 1=1 TO 46 

738 LOCATE 1,1: PRINT " ": LOCATE 1,24 

746 IF K25 THEN LOCATE 1,1: PRINT " 

PRINT " " 

758 NEXT I 

768 PAPER 8: PEN 3: LOCATE 1,25: PRINT 

AB(28); "AMSTRAO: ";T2; 

778 RETURN 



PRINT ■ 
: LOCATE 



46,1: 



VOUS:"jTl;T 



LlSTE 
DES VARIABLES : 



A$ demiere touche enforce 

D1 et D2 direction prise par le joueur et I'ordinateur 

(dans les tableaux X et Y) 
I indice de boucle FOR/NEXT 

J indice de boucle FOR/NEXT 

N, N1 et N2 drapeaux pour determiner la meilleure 

direction a prendre par I'ordinateur 

total des points du joueur et de I'ordinateur 

coordonn^es des motos du joueur et de 

I'ordinateur 

nombre de caracteres de deplacement dans 

les 4 directions 



T1 et T2 
X1.X2.Y1 

etY2 
X()etY() 



38 Super jeuxAmstrad 



Programme 



Lignes 30 a 80 : initialisation 

Apres le dessin du jeu et la definition des caracteres 
graphiques par le sous-programme en 700, on place dans 
les tableaux X() et Y() le nombre de caracteres de 
deplacement pour les quatre directions. 

Lignes 200 a 290 : le jeu 

Le caractere saisi au clavier etant stocke dans la variable 
A$, on modifie suivant sa valeur la variable D1 . On utilise 
pour cela une fonction modulo (MOD) qui evite le test IF 
THEN beaucoup trop long. D1 = (D1 +3) MOD 4 remplace 
D1=D1— 1 : IF D1 = — 1 THEN D1=3 et D1 = (D1+1) MOD 
4 remplace D1 = D1 + 1 : IF D1=4 THEN D1=0. 
Si la moto du joueur rencontre celle d'Amstrad ou le bord 
de I'ecran, le programme va en 61 pour la fin de la partie. 

Dans le meme cas, pour la moto de I'ordinateur, on va en 
400 pourtrouver une solution. 

Lignes 400 a 520 : mouvements de I'ordinateur 

La moto d'Amstrad ayant rencontre un obstacle, le 
programme cherche une nouvelle direction. S'il n'y a plus 
de solution, le programme saute a la ligne 600 pour la fin 
de partie. 



Super jeux Amstrad 



39 




SLALOM 



Quoi de plus propice qu'une bonne piste de ski pour 
exercer ses talents d'agilite et d'endurance ? 

En langant le programme, vous vous retrouverez 
directement parmi les sapins pour le slalom le plus long du 
monde. 

Le skieur se manoeuvre a I'aide des fleches droite et 
gauche. Le nombre de points gagnes s'inscrit selon les 
conditions suivantes : une porte passee vaut un point et 
une porte ratee fait perdre cinq points. Le score s'affiche 
en permanence en haut a gauche de la piste. 

Alors, prets pour une descente ? 




40 



Super jeux Amstrad 



10 REM SLALOM 

20 REM 

30 SYMBOL AFTER 128:G0SUB 1000 

40 MODE 1:INK 0,13:INK 1,0:INK 2,6:INK 3,18:PAPER 

0:PEN lrBOROER 13 

50 X=20:C=242 

80 REM 

90 REM LE OEU 

100 A=INT(RND*15)+12 

IF TEST(X«16-8,360)<>0 OR TEST ( (X+l )*1 6-8, 360 ) 

THEN 400 

IF T/8<>INT(T/8) THEN 160 

PEN 2:LOCATE A,25:PRINT CHRS(140)" 



PRINT CHRS(142) ; 
"CHR$(141) 



110 
<>0 

120 

130 

140) 

140 PEN l:SYMBOL 142, A: 

T TAB(A);CHR$(141)" 

150 GOTO 200 

160 IF T/6<>INT(T/6) THEN 190 

170 PEN 3:LOCATE A,25:PRINT CHR$( 136)CHR$ ( 137) 

NT TAB(A);CHR$(138)CHR$(139) 

180 GOTO 200 

LOCATE 1,25:PRINT:PRINT 
T=T+1:PEN 2:LOCATE 36,1:PRINT V:PEN 1 
C$ = INKEY$:IF CSo"" THEN C = ASC(C$) 
IF C=242 THEN LOCATE X,1:PRINT CHR$( 128)CHR$( 1 
PRINT CHR$(130)CHR$(131)" H :IF X 



"CHR$( 
PEN 2:PRIN 



PRI 



190 
200 
210 
220 
29) 
>11 
230 



1: PRINT " "CHR$(132)C 
"CHR$(134)CHR$(135): 



":LOCATE X,2: 

THEN X=X-1 

IF C=243 THEN LOCATE X-l. 
HR$(133):LOCATE X-1,2:PRINT 
IF X<29 THEN X=X+1 
240 P=0:FOR 1=14 TO STEP-2:IF TEST( 14-1 , 382) =1 T 

P=P+2T(I/2) 

NEXT I: IF P=0 THEN 100 

IF X>=P AND X<P+7 THEN V=V+l:GOTO 100 

V=V-5:GOTO 100 

REM 

REM PERDU 

PEN 2:LOCATE 36, 1:PRINT V 

FOR 1=50 TO 500 STEP 5: SOUND 1,1,2: NEXT 

IF INKEY$oCHR$(13) THEN 420 

RUN 

REM 

REM GRAPHIQUES 



HEN 
250 
260 
270 
380 
390 
400 
410 
420 
430 
980 
990 
1000 

1010 
1020 

1030 
1040 
1050 
1060 
1070 
1080 
1090 
1100 
1110 
1120 
1130 
1140 



SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
RETURN 



128 
129 
138 
131 
132 
133 
134 
135 
136 
137 
138 
139 
140 
141 



3,3, 1,7,15, 11,19,11 

128,128,0,192,224,160,192,160 

6,3,2,2,3,2,21,10 

148, 168,212,160,192,128,0,0 

1,1,0,3,7,5,3,5 

192, 192,128,224,240,208,200,208 

41,21,43,5,3,1,0,0 

96,192,64,64, 192,64,168,80 

0,0, 1,3,7,15, 15,31 

0,0,0, 128,192,224,224,240 

63,63,127,255,3,3,3,0 

248, 248, 252, 254, 128, 128, 128, 

1,3,7, 15,31,63, 1,1 

1.1,1.1.1,1.1,1 



Super jeux Amstrad 41 



Programme 



Liste 
des variables : 



Lignes 30 a 50 : initialisation 

Apres la definition des caracteres graphiques par le sous- 
programme en 1000, la ligne 50 initialise a 20 la position 
de depart du skieur sur I'ecran (variable X). 

Lignes 100 a 270 :lejeu 

Le nombre aleatoire contenu dans A donne la position sur 
I'ecran des prochains piquets ou sapins (ligne 100). 

Avant d'afficher sapins ou piquets, on teste par la fonction 
TEST si I'ecran est vide devant le skieur. Si ce n'est pas le 
cas, on va en 400 pour la fin du jeu. 

Le compteur T indique au programme le nombre de lignes 
d6ja passees. Si celui-ci est divisible par 8, on affiche a 
I'ecran deux piquets a partir de la position donnee par A 
(lignes 120 a 150). Dans la premiere colonne de cette 
ligne, on affiche un caractere de code A pour connattre par 
la suite la position des piquets. 

Par contre, si le compteur T est divisible par 6, on effectue 
la meme operation mais cette fois-ci pour un sapin (lignes 
160 a 180). 

Suivant le code du caractere saisi dans la variable C$, on 
affiche a la position X un skieur vers la droite ou vers la 
gauche et Ton incremente ou Ton decremente X de la 
memefagon. 

La ligne 240 teste le premier caractere de la ligne pour 
detecter la presence des piquets. Si c'est ie cas on 
compare ce caractere avec la position du skieur. En dehors 
des limites des piquets, on decremente de 5 le compteur 
de points V, sinon on I'incremente de 1 . 



A 
C 
CS 



nombre aleatoire : position des piquets ou 

sapins 

sens du deplacement 242 = gauche, 243 = 

droite 

derniere touche enfoncee 

indice de boucle FOR/NEXT 

caractere sur le bord de I'ecran. Indique la 

presence des piquets 

nombre de lignes deja passees 

nombre de points 

position du skieur 



42 



Super jeuxAmstrad 




LE BLOB 



II s'agit de bloquer dans le coin en haut a gauche un Blob 
qui rebondit sur les bords de I'ecran. 

Pour I'amener a cet endroit precis, vous devez construire 
un mur en vue de reduire le plus possible son champ de 
rebond. Les briques se dessinent avec les quatre fleches 
de deplacement et s'effacent en appuyant simultanement 
sur SHIFT et I'une des quatre fleches. 

Vous avez 5000 fractions de seconde pour neutraliser le 
Blob et le temps restant constituera votre score. 






w 1 1 ii 1 1 u: 



I I I 1 I I I I rTTTTT TI I I I I I I ITTT 




SCORE : 3O40 



Super jeux Amstrad I 43 



10 REM BLOB 

20 REM 

30 SYMBOL AFTER 128:M0DE 1:INK 0,1:INK 1,24:INK 2, 

6:INK 3,15:PAPER 1:PEN lrBORDER 1 

40 SYMBOL 128,128,64,34,18,10,6,62,1 

50 SYMBOL 129,60,126,255,255,255,255,126,60 

60 SYMBOL 130,255,129,129,129,129,129,129,255 

70 SYMBOL 131,93,93,89,127,28,28,20,119 

80 FOR 1=1 TO 40 

90 LOCATE 1,1: PRINT" ":LOCATE I,22:PRINT" " 

100 IF K22 THEN LOCATE 1,I:PRINT" ":LOCATE 40,I:P 

RINT" M 

110 NEXT I:PAPER 

120 RANDOMIZE TIME 

130 LOCATE 1,1:PRINT CHRS(128) 

149 X=INT(RND*30)+6:Y=INT(RND«17)+5 

150 C = 160:T = 5000:V = 6:W = 6:H = 1:D = 1: F = 
160 LOCATE 16,24:PRINT "SCORE:" 

170 GOTO 420 

280 REM 

290 REM DEPLACEMENT JOUEUR 

300 IF TEST(46,352)>0 AND V=2 AND W=2 THEN 800 

310 T=T-10:LOCATE 22,24:PRINT T; " ":IF T=0 THEN 70 



320 A$=INKEY$:IF A$=" B THEN 500 

330 AX=0:AY=0 

340 IF A$=CHR$(242) THEN C=1:AX=-1 

350 IF A$=CHR$(243) THEN C=1:AX=1 

360 IF A$=CHR$(241) THEN C=1:AY=! 

370 IF A$=CHR$(240) THEN C=1:AY=-1 

380 IF A$=CHR$(246) THEN C=2:AX=-1 

390 IF A$=CHRS(247) THEN C=2:AX=1 

400 IF A$=CHR$(244) THEN C=2:AY=-1 

410 IF A$=CHR$(245) THEN C=2:AY=1 

420 IF TEST((X+AX)«16-8,400-(Y+AY)*16)=l THEN 500 

430 PEN 2:IF C=l THEN LOCATE X,Y:PRINT CHR$(130) E 

LSE LOCATE X,Y:PRINT" " 

440 PEN 3:X=X+AX:Y=Y+AY:LOCATE X,Y:PRINT CHRS(131) 

480 REM 

490 REM MOUVEMENT DU BLOB 

500 IF TEST((V+H)»16-2,400-(W+D)»16)=0 THEN 540 

510 IF TEST((V+H)*16-2,400-W«16)<>0 AND TEST(V*16- 

2,400-(W+D)*16)<>0 THEN D=-D: H=-H: GOTO 300 

520 IF TEST((V+H)*16-2,400-W»16)=0 THEN D=-D:IF TE 

ST((V+H)*16-2,400-(W+D)*16)=0 THEN 540 

530 H=-H:GOTO 300 

540 LOCATE V,W:PRINT H H 

550 V=V+H:W=W+D 

560 PEN lrLOCATE V,W:PRINT CHR$(129) 

570 GOTO 300 

680 REM 

690 REM PERDU 

700 FOR 1=50 TO 500 STEP 5: SOUND 1,1, 2: NEXT 

710 IF INKEY$OCHR$(13) THEN 710 

720 RUN 

780 REM 

790 REM GAGNE 

800 FOR 1=500 TO 50 STEP-5: SOUND 1,1, 2: NEXT 

810 GOTO 710 

44 Super jeux Amstrad 



Programme 



Liste 
des variables : 



Lignes 30 a 170 : initialisation 

Apres la definition des caracteres graphiques, on initialise 
les diverses variables (voir liste des variables). 

Lignes 300 a 440 : emplacement du joueur 

Si le Blob est coince en haut a gauche (V=1 etW=1), le 
programme va a la ligne 800 pour la phase « gagne ». 

A chaque passage dans cette partie du programme, on 
decremente le compteur T de 10 points. Si celui-ci est a 
zero, on va en ligne 700 pour la fin de partie. 

La touche appuyee etant stockee dans la variable A$, on 
modifie les variables AX, AY et C en fonction de celle-ci. 

Lignes 500 a 570 : mouvement du Blob 

On deplace continuellement le Blob a 45° sur I'ecran tant 
que Ton ne rencontre pas d'obstacle (bord de I'ecran ou 
mur construit par le joueur). Sinon on modifie les 
increments D et H pour prendre une nouvelle direction. 



AS 


derniere touche appuyee 


AX et AY 


deplacement en X et en Y du joueur 


C 


type de caractere a afficher : C=1 pour les 




briques, C=2 pour effacer les briques 


DetH 


direction prise par le Blob 


I 


indice de boucle FOR/NEXT 


J 


indice de boucle FOR/NEXT 


T 


nombre de points 


VetW 


coordonnees du blob 


XetY 


coordonnees du joueur 



Super jeux Amstrad 45 




PETROLE, 
PETROLE ! 



Dans le cadre des economies d'energie, le conducteur 
d'une voiture doit faire le plus de kilometres possible avec 
une quantite limitee d'essence. 

La voiture est dirigee avec les touches P et Q. Elle doit 
parcourir 400 kilometres pour passer au tableau suivant. 

Mais si, au premier tableau, chaque deplacement vaut trois 
kilometres, il n'en vaut plus que deux au deuxieme et un 
au troisieme et suivants. Attention ! Repasser aux memes 
endroits vous fait perdre autant de kilometres. 

Le nombre de kilometres par tableau et le total general 
s'affichent en bas de I'ecran ainsi que le contenu du 
reservoir, sachant que chaque passage a la pompe permet 
un reapprovisionnement de 10 litres. 

Les taches d'huile sur la route ajoutent une difficult au 
jeu : en effet, le glissement sur Tune d'elles envoie la 
voiture a n'importe quel endroit de I'ecran. 

II faut garder tout son sang-froid pour la reperer avant 
qu'elle ne touche le bord du tableau. Dans ce cas, le jeu 
repartazero. 




46 Super jeuxAmstrad 



10 REM PETROLE, PETROLE ! 

20 REM 

30 SYMBOL AFTER 128:GOSUB 1000 

40 N=3:GOTO 100 

50 N=N-1:IF N=0 THEN N=l 

60 FOR 1=500 TO 50 STEP-5: SOUND 1,1, 2: NEXT 

70 IF INKEY$="" THEN 70 

80 REM 

90 REM DESSIN OU JEU 

100 E=10:K=0 

110 DX=0:DY=-1:X=19:Y=10 

120 MODE 1:INK 0,1:INK 1,24:INK 2,6:INK 3,15:PAPER 

1:PEN l:BORDER 1 
130 FOR 1=1 TO 40 

140 LOCATE I,1:PRINT" M :LOCATE I,23:PRINT" " 
150 IF K23 THEN LOCATE 1,I:PRINT" ":LOCATE 40,I:P 
RINT" ■ 

160 NEXT I: PAPER 
170 LOCATE X,Y:PRINT CHR$(129) 
180 FOR 1=1 TO 15 

190 W=INT(RND*21)+2:V=INT(RND*38)+2 
200 IF TEST(V*16-8,408-W*16)>0 THEN 190 
210 IF Kll THEN PEN 2:LOCATE V,W:PRINT CHR$(130) 
ELSE PEN 3:LOCATE V,W:PRINT CHR$(128) 
220 NEXT I 

230 PEN l.-LOCATE 2,24:PRINT" KM: T.KM:":KK: 
TAB(27) H ESSENCE: 10" 
240 IF INKEY$= M " THEN 240 

280 REM 

290 REM LE JEU 

300 D$=INKEY$:IF D$= M " THEN 380 

310 IF DY=0 THEN 350 

320 IF D$= M Q" THEN DX=DY:GOTO 340 

330 DX=-DY 

340 DY=0:GOTO 380 

350 IF D$="P" THEN DY=DX:GOTO 370 

360 DY=-DX 

370 DX=0 

380 PEN l:LOCATE X,Y:PRINT "." 

400 X=X+DX:Y=Y+DY 

410 A=TEST(X*16-8,408-Y*16) 

420 IF A=l THEN 800 

430 IF A=3 THEN E=E+10 

440 IF TEST(X*16-8,402-Y»16)=l THEN K=K-2*N: KK=KK- 

2»N:IF K<0 THEN 800 

450 IF A<>2 THEN 480 

460 Y=INT(RND*21)+2:X=INT(RND*38)+2 

470 IF TEST(X»16-8,408-Y*16)>0 THEN 460 

480 K=K+N:KK=KK+N:E=E-0.1:IF E<=0 THEN 800 

490 IF K>=400 THEN 50 



Super jeux Amstrad I 47 



560 LOCATE 7,24:PRINT K; " MOCATE 19,24:PRINT KK; 
" MOCATE 35 T 24:PRINT INT(E); M " 
510 LOCATE X,Y:PRINT CHR$(129) 
520 GOTO 300 

780 REM 

790 REM FIN 

800 LOCATE 7,24:PRINT K; " H :LOCATE 19,24:PRINT KK; 

" H :LOCATE 35 f 24:PRINT INT(E+0. 001 ) ; H M 

810 FOR 1=50 TO 500 STEP 5: SOUND 1,1, 2: NEXT 

820 IF INKEY$<>CHRS(13) THEN 820 

830 RUN 

980 REM 

990 REM QRAPHIQUES 

1000 SYMBOL 128,249,138,254,250,249,253,255,248 

1010 SYMBOL 129,60,66,129,129,255,255,255,102 

1020 SYMBOL 130,0,62,252,255,63,252,127,251 

1030 RANDOMIZE TIME 

1040 RETURN 



48 Super jeux Amstrad 



Programme 



Liste 
des variables : 



Lignes 30 a 70 : initialisation 

Apres la definition des caracteres graphiques par le. sous- 
programme en1000, on place dans la variable N le niveau 
du jeii. 

Lignes 100 a 240 : dessin du jeu 

Apres I'effacement de I'ecran et le dessin du cadre (lignes 
120 a 160), on affiche aleatoirement sur I'ecran les deux 
sortes d'elements (caracteres graphiques 128 et 130). 

Lignes 300 a 520 : le jeu 

Si une touche est appuyee, on modifie en consequence les 
increments de direction DX et DY (lignes 300 a 370). Puis 
Ton affiche un point a la place de la voiture. 

Ensuite, on modifie le contenu de X et Y avec les 
increments DX et DY (ligne 400). 

On teste si un element a ete rencontre avec la fonction 
TEST (ligne 410). Si celui-ci est le bord de I'ecran (A=1), 
on va directement en ligne 800 pour la fin du jeu. 

Par contre, s'il s'agit d'une pompe (A=3), on increments 
le compteur Ede 10. 

S'il s'agit d'un point, on decrements le nombre de 
kilometres K de 2 fois le niveau. 

En ce qui concerne I'huile (A=2), on modifie aleatoirement 
les coordonnees X et Y de la voiture. 

Apres I'increment du compteur K, on teste si celui-ci n'est 
pas superieur ou egal a 400. Si c'est le cas, on va en ligne 
50 pour changer de niveau, sinon, on affiche la voiture a 
X,Y, et le jeu continue normalement. 



A 

D$ 

DX et DY 



I 

J 

K 

KK 

N 

VetW 

XetY 



couleur du point rencontre par la voiture 

derniere touche enfoncee 

sens du deplacement en X et en Y de la 

voiture 

nombre de litres d'essence dans la voiture 

indice de boucle FOR/NEXT 

indice de boucle FOR/NEXT 

nombre de kilometres parcourus 

total des kilometres de toutes les parties 

niveau du jeu 

coordonnees aleatoires des divers elements 

coordonnees de la voiture 



Super jeux Amstrad 49 




REFLEXES 



Avez-vous de bons reflexes ? 

Le jeu suivant vous aidera a le savoir. II s'agit de guider un 
anneau le long d'un fil electrique qukdessine des courbes 
aleatoires plus ou moins compliquees. 

Pour cela, vous disposez des fleches haut et bas. 
Faites partir I'anneau en tapant sur une touche et rectifiez 
sans arret son glissement alors qu'il a tendance a revenir a 
I'horizontale. 

Une sonnerie intempestive se declenche quand vous 
heurtez le fil et quand vous gagnez. 

Ce programme est a utiliser de preference les jours de fete 
pour tester la lucidite de tous les joyeux convives. . . 




50 Super jeuxAmstrad 



10 REM REFLEXES 

20 REM 

30 MODE 1:INK 0, 13: INK 1,0:PAPER 0:PEN l:BOROER 13 

:SPEED KEY 5,3 

40 GOSUB 900 

50 RANDOMIZE TIME 

60 PLOT 0,220:DRAW 40,220 

70 X=40:Y=220 

80 S = l 

90 X=X+50 

100 IF RND(1)>0.5 THEN S=-S 

110 IY=RND«50*S 

120 IF Y+IY<180 OR Y+IY>380 THEN 100 

130 DRAW X.Y+IY 

140 Y=Y+IY 

150 IF X>448 THEN 170 

160 GOTO 90 

170 DRAW X+100,220 

180 DRAW X+134,220 

190 PLOT X+134,?30:DRAW X+134,208 

280 REM 

290 REM INITIALISATION CURSEUR 

300 X=10:Y=230:P=5:D=1 

310 FOR 1=1 TO 5 

320 X(I)=X:Y(I)=Y 

330 PLOT X(I),Y(I) 

340 PLOT X(I),Y(I)-28 

350 X=X+2 

360 NEXT I 

370 IF INKEY$="" THEN 370 

480 REM 

490 REM DEPLACEMENT 

500 A$=INKEY$ 

510 S=2*(A$=CHR$(241))-2»(A$=CHR$(240)) 

520 IF TEST(X(P)+2,Y(P))=1 THEN 700 

530 IF TEST(X(P)+2,Y(P)-18)=1 THEN 700 

540 PLOT X(D),Y(D),0:PLOT X(D) , Y(D)-20, 

550 PLOT X(D),140:DRAW X( D ) , Y(D )-20, 

560 X(D)=X(P)+2:Y(D)=Y(P)+S 

570 PLOT X(0),'Y(D), l.-PLOT X(D),Y(D)-20 

580 P=P+1: IF P=6 THEN P=l 

590 D=D+1: IF D = 6 THEN D = l 

600 PLOT X(D),140:DRAW X(D),Y(D)-20 

610 GOTO 500 

680 REM 

690 REM SONNETTE 

700 IF X(P)>590 THEN 760 

710 SOUND 1,600,20 

720 FOR 1=1 TO 25 

730 SOUND 1,60, 10: SOUND 1,100, 5: NEXT 

740 IF INKEY$<>CHR$(13) THEN 740 

Super jeux Amstrad 51 



750 RUN 

760 SOUND 1,600,20 

770 FOR 1=1 TO 25 

780 SOUND 1,600, 10:SOUND 1,300,5:NEXT 

790 IF INKEY$<>CHRS(13) THEN 790 

800 RUN 

880 REM 

890 REM DESSIN DU JEU 

900 FOR 1=1 TO 7 

910 READ N,X,Y:X=X*2:Y=400-Y*2 

920 PLOT X,Y,1 

930 FOR J=l TO N 

940 READ X,Y.-X = X*2:Y = 400-Y*2:DRAW X,Y 

950 NEXT J, I 

960 FOR 1=0 TO 3.14159 STEP 0.06 

970 PLOT 204-SIN(I)*30,36-COS(I)*30:DRAW 204+SIN(I 

)*30,36-COS(I)*30 

980 PLOT 242-SIN(I)*6,30-COS(I)*6:DRAW 242,30-COS( 

I)*6 

990 NEXT I 

1000 FOR 1=182 TO 230 STEP 4 

1010 PLOT I, 110:DRAW 1,70 

1020 NEXT I 

1030 PLOT 250,110:DRAW 240,30 

1040 LOCATE. 6, 23: PRINT "220v " 

1050 RETURN 

1080 REM 

1090 REM 6RAPHIQUES 

1100 DATA 13,0,90,0,140,50,140,50,145,53,145,53,14 

0,93,140,93,145, 113, 145 

1110 DATA 113,140,307,140,307,130,5,130,5,95 

1120 DATA 8,48,145,48,150,44,150,44,160,60,160,60, 

150,56, 150,56, 145,48, 145 

1130 DATA 3,45,160,45,170,49,170,49,160 

1140 DATA 3,55,160,55,170,59,170,59,160 

1150 DATA 4,88,145,88,165,118,165,118,145,88,145 

1160 DATA 3,86,153,83,153,83,158,86,158 

1170 DATA 3,119,153,122,153,122,158,119,158 



52 I Super jeux Amstrad 



Programme 



Liste 
des variables : 



Lignes 30 a 190 : initialisation 

On dessine sur I'ecran le.jeu a I'aide des DATA en fin de 
programme (sous-programme en 900). Les lignes 60 a 
190 dessinent la ligne brisee en utilisant des nombres 
aleatoires pour corser le jeu. 

Lignes 300 a 370 : initialisation du curseur 

Chaque point du curseur est place dans les tableaux X et Y 
pour en connaitre a tout moment sa position. La variable P 
pointe le premier de ces points, et D le dernier. 

Lignes 500 a 610 : defacement 

La touche appuyee etant placee dans A$, on determine par 
une fonction logique la valeur de S (ligne 510). 

Les lignes 520 et 530 testent I'ecran a cote du curseur 
pour savoir si la ligne brisee est touchee. 

Apres I'effacement du dernier point du curseur ( a X(D), 
Y(D) ) et de la ligne de raccord electrique, on definit le 
dernier point comme etant maintenant le premier, et on 
modifie en consequence les tableaux X() et Y(). 

II ne reste plus qu'a afficher le nouveau point, a 
incrementer les pointeurs P et D, et a afficher la ligne de 
raccord electrique. 

Lignes 700 a 800 : sonnette 

Si I'on a perdu ( X(P)<590), on simule une sonnette avec 
des instructions SOUND. 

Lignes 900 a 1050 : dessin du jeu 

Les traits qui composent le dessin sont effectues en 
plusieurs temps. Le premier DATA (variable N) donne le 
nombre de traits a tracer, les deux suivants le point de 
depart pour PLOT (variables X et Y), et les N fois 2 DATA 
qui suivent les coordonnees absolues des instructions 
DRAW. 



AS 
D 

I 

IY 

J 

N 

P 



XetY 

X()etY() 



derniere touche enfoncee 

pointeur du dernier point du curseur dans les 

tableaux X() et Y() 

indice de boucle FOR/NEXT 

increment dans le trace de la ligne brisee 

indice de boucle FOR/NEXT 

nombre de lignes a tracer a partir de PLOT 

pointeur du premier point du curseur dans les 

tableaux X() et Y() 

sens de deplacement : S=-1 pour le haut et 

S=1 pour le bas 

coordonnees des points de trace du jeu 

coordonnees des points du curseur 



Super jeuxAmstrad 53 




CIRCUIT 24 



Trois formes de circuit vous sont proposees aleatoirement. 

Vous pouvez les parcourir en deplacant votre formule 1 a 
I'aide des touches 7" et "\". Vous disposez aussi de trois 
vitesses a faire varier avec les touches Z (moins vite) et X 
(plus vite) 

La premiere vitesse donne 1 point a chaque deplacement, 
la deuxieme, deux points, etc. La vitesse et les scores 
s'affichent en bas de I'ecran. 

Trois vies (symbolisees par des drapeaux) vous sont 
allouees au depart de chaque course. Faites attention, un 
derapage est si vite arrive ! 




54 Super jeux Amstrad 



19 REM CIRCUIT 24 

20 REM 

38 SYMBOL AFTER 128:DEFINT A-Z:GOSUB 1000 

48 MODE 1:INK 0,1:INK 1,24: INK 2, 6: INK 3,15:PAPER 

8:PEN 3: BORDER 1 

58 RANDOMIZE TIME 

60 T=2:A=INT(RND»3)+1 

78 IF A=l THEN RESTORE 1100 

80 IF A=2 THEN RESTORE 1300 

90 IF A=3 THEN RESTORE 1500 

100 FOR 1=0 TO 22 

110 IF Kl OR I>20 THEN FOR J=l TO 40:PRINT CHR$(1 

38); :NEXT:GOTO 168 

128 READ A$:A$=" "+A$ 

130 FOR 0=1 TO 40 

140 IF MID$(A$, J,l)="8" THEN PRINT " " ; ELSE PRINT 

CHRS(130); 
150 NEXT 
160 NEXT 
170 PEN 2:L0CATE 1,24:PRINT "VITESSE: 1":TAB(16) : " 

POINTS: ";P:PEN 1 

180 DX=-1:DY=0:X=26:Y=4:V=1 

190 LOCATE X,Y:PRINT CHR$(129) 

288 FOR 1=1 TO 2 

218 LOCATE 31+1*2, 24 : IF T>=I THEN PRINT CHR$(133)C 

HR$(134) ELSE PRINT" " 

228 LOCATE 31+1*2,25: IF T>=I THEN PRINT CHRS(135)C 

HR$(136) ; ELSE PRINT" " ; 

230 NEXT I 

240 IF INKEYS="" THEN 240 

280 REM 

290 REM DEPLACEMENTS 

380 D$=INKEYS:IF DS="" THEN 408 

310 IF DSo"Z" AND D$o"X" THEN 350 

320 IF D$="Z" AND V>1 THEN V=V-1 

330 IF DS="X" AND V<3 THEN V=V+1 

340 LOCATE 9,24:PRINT V:GOTO 400 

350 IF DY=0 THEN 380 

360 IF D$="/" THEN DX=DY ELSE DX=-DY 

370 DY = 0.-GOTO 400 

380 IF D$="\" THEN DY=DX ELSE DY=-DX 

390 DX = 

400 PEN lrLOCATE X,Y:PRINT " " 

410 X=X+DX:Y=Y+DY 

420 IF TEST(X»16-8,408-Y*16)>0 THEN 500 

430 LOCATE X,Y:PRINT CHR$ ( 130+DX+DY*2 ) 

440 FOR 1=1 TO (3-V)*50:NEXT 

450 P=P+V:LOCATE 23,24:PRINT P 

460 GOTO 300 

480 REM 

490 REM FIN 

500 FOR 1=50 TO 500 STEP 5:S0UND 1 , I , 2: NEXT: T=T-1 : 

IF T>-1 THEN 170 

510 LOCATE 31,24: PRINT "GAME OVER" 

520 IF INKEY$<>CHR$(13) THEN 520 

530 RUN 

980 REM 

990 REM GRAPHIQUES 

1080 SYMBOL 128,90,126,90,24,24,219,255,219 

1010 SYMBOL 129,231,66,255,255,66,231,7 

1020 SYMBOL 130,126,255,255,255,255,255,255,126 

1030 SYMBOL 131,224,231,66,255,255,66,231,224 

1040 SYMBOL 132,219,255,219,24,24,90,126,90 

1050 SYMBOL 133,12,14,27,53,106,213,170,213 

1060 SYMBOL 134,0,0,0,126,192,96,240,152 

1070 SYMBOL 135,107,53,26,14,4,0,0,0 

1088 SYMBOL 136,12,6,3,1,0,0,0,0 



Super jeux Amstrad I 55 



1096 RETURN 

1100 DATA" 000080800006608000 

1110 DATA" 00006886086086060000 

1120 DATA" 0000000000000000000000 

1130 DATA "000000000000000006000008 

1140 DATA"00000 00886 

1158 DATA"0000 008800000 0806 

1160 DATA"0000 00000000808 8066 

1170 DATA"0000 0000000008000 0688 

1180 DATA'0000 00000 86660 00008 

1190 DATA'0000 0000 0006 0608 

1200 DATA"0000 0000 0000 0000 

1210 DATA"0000 0086 0086 6868 

1220 DATA"8800 0300 0000 0000 

1230 DATA"0800 8888 88066 00008 

1240 DATA"0000 0000 0000 00080 

1250 DATA"0000 0000 00000 00000 

1260 DATA'0000000000 000080880000000 

1270 DATA"000600000 0000000000080 

1280 DATA" 0000000 00000000000 

1290 DATA" 00000 080000000 

1300 DATA" 000000808088008000880000000 

1310 DATA "00000008888880886888860000000 

1320 DATA "00000000000000000000000000000 

1330 DATA "00000000000000000000000000000 

1340 DATA"0000 0000 

1350 DATA"0000 000000 0000 

1360 DATA"0000 00000000 0000 

1370 DATA"0000 0000888800 0000 

1380 DATA"0000 000000000000 0000 

1396 DATA"0000 00060 08000 0000 

1408 DATA"0000 00000 0008 0000 

1410 DATA"0000 00000 0000 0000 

1420 DATA"0000 00000 0000 0000 

1430 DATA"0000 00000 0088 0000 

1440 DATA"0000 66800 0008 0800 

1450 DATA"6808 08860 0668 8800 

1460 DATA"000000000 000000066 

1470 DATA"08000000 000000806 

1480 DATA"0000000 000000880 

1490 DATA" 60000 0000000 

1500 DATA" 006000000000 

1510 DATA" 00000000000000 

1520 DATA" 00000000000000 

1530 DATA" 00000000000000 

1540 DATA" 0000 0000 

1550 DATA" 0000 0000 

1560 DATA" 0000 0000 

1570 DATA" 00000000000 0000 

1580 DATA" 000000000000 0000 

1590 DATA" 0000000000000 0000 

1600 DATA" 0000000000000 0000 

1610 DATA" 00000 0000 

1620 DATA" 00000 0000 

1630 DATA" 00000 0000 

1640 DATA" 00000 0000 

1650 DATA"00000 0000 

1660 DATA "0000000000000000000 00000000 00 

1670 DATA "00000000000000000000000000000 

1680 DATA "000000000000000000000000000 00 

1690 DATA" 000000000000000000000000000 



56 Super ieux Amctrari 



Programme 



Liste 
des variables : 



Lignes 30 a 240 : initialisation 

Apres la definition des caracteres graphiques par le sous- 
programme en 1000, on place dans la variable T le nombre 
de vies. 

La variable A (nombre aleatoire) determine le type du 
circuit. En fonction de celle-ci, on effectue un RESTORE 
des DATA situees en fin de programme. 
Les lignes 100 a 160 affichent a I'ecran le dessin du circuit 
choisi par A en lisant les DATA. Chaque espace est 
remplace par un carre noir, les etant remplaces par des 
espaces. II est done possible d'ajouter vos propres circuits 
a la suite des DATA deja definies. 
Les lignes 200 a 230 affichent le nombre de vies restantes 
(les petits drapeaux en bas de I'ecran). 

Lignes 300 a 460 : le jeu 

Si une touche est appuyee, on modifie en consequence la 
Vitesse de la voiture (variable V) ou les increments de 
direction DX et DY (lignes 350 a 390). Puis Ton affiche un 
espace a la place de la voiture. 

Ensuite, on modifie le contenu de X et Y avec les 
increments DX et DY (ligne 410). 
On teste si le bord de la piste a ete touche avec la fonction 
TEST (ligne 420). Si e'est le cas, on va directement a la 
ligne 500 pour la fin de la partie. Sinon, on affiche la 
voiture a X,Y et on incremente le nombre de points P en 
fonction de la vitesse actuelle. 



A 
AS 


type de circuit 

chaine de caracteres utilisee pour afficher le 


DS 


jeu 

derniere touche enfoncee 


DX et DY 


sens du deplacement en X et en Y de la 




voiture 


I 


indice de boucle FOR/NEXT 


J 


indice de boucle FOR/NEXT 


P 
T 


nombre de points 
nombre de vies 


V 
XetY 


vitesse de la voiture (entre 1 et 3) 
coordonnees de la voiture 



Super jeux Amstrad 57 




SERPENT 
INFERNAL 



A vous de guider avec dexterite un serpent infernal qui se 
precipite comme un fou surtous les obstacles. 

Au premier niveau, il faut le manipuler entre quarante-cinq 

paves avec les touches P et Q. Chaque deplacement 

rapporte un point. Vous changez de niveau chaque fois que 

vous avez atteint cent points (appuyez sur ENTER pour le 

le tableau suivant). Mais a chaque nouveau niveau un pave 

supplemental apparait. 

Pour mieux suivre le jeu, Amstrad vous signale en bas de 

I'ecran le nombre de vos points depuis que vous jouez, le 

nombre de points acquis dans le niveau ou vous evoluez 

et, enfin, ce niveau. 

Alors, pret pour le domptage ? 





( 










— - — " — 










^^^^^ 




\ 


■ 




■ 
































0T6L: 143 POINTS: 49 TTnjEl 















58 I Super jeux Amstrad 



18 REM SERPENT INFERNAL 

20 REM 

30 MODE 1:INK 0,1:INK 1,24:INK 2,6:INK 3,15:PAPER 
0:PEN l:BORDER 1 

40 N=l 

59 CLS: RESTORE: GOSUB 600 

60 RANDOMIZE TIME 

70 X(0)=-1:X(2)=1:Y(1)=1:Y(3)=-1 

80 X=19:Y=18:D=3 

180 REM 

190 REM LE JEU 

200 A$=INKEY$ 

210 IF A$= M Q M THEN D=(D+1) MOD 4 

220 IF A$="P" THEN D=(D+3) MOD 4 

230 X=X+X(D):Y=Y+Y(D) 

240 IF TEST(X»16-8,408-Y*16)<>0 THEN 400 

250 PAPER 3:LOCATE X,Y:PRINT " ":PAPER 

260 T=T+1 

270 LOCATE 24,24:PRINT T 

280 IF T=100 THEN 400 

290 GOTO 200 

380 REM 

390 REM FIN DE PARTIE 

400 TT=TT+T 

4.10 LOCATE 7,24:PRINT TT 

420 IF INKEY$oCHR$(13) THEN 420 

430 IF T<100 THEN RUN 

440 T=0:N=N+1 

450 GOTO 50 

580 REM 

590 REM DESSIN DU JEU 

600 PAPER 1 

610 FOR 1=1 TO 40 

620 LOCATE I, 1 : PRINT" ": LOCATE I,23:PRINT" " 

630 IF K24 THEN LOCATE 1,I:PRINT" ":LOCATE 40,I:P 

RINT" " 

640 NEXT 

650 PAPER 2 

660 FOR 1=5 TO 37 STEP 4 

670 FOR J=4 TO 20 STEP 4 

680 LOCATE I, J: PRINT" " 

690 NEXT: NEXT 

700 FOR 1=1 TO N 

710 A=INT(RND*38)+2:B=INT(RND*21)+2 

720 IF TEST(A*16-8,408-B*16)<>0 THEN 710 

730 LOCATE A, B: PRINT" " 

740 NEXT 

750 PAPER 

760 LOCATE 1 , 24: PRINT-TOTAL :"; TAB ( 17 ); "POINTS: "; TA 

B(30); "NIVEAU: ";N 

770 RETURN 

Super jeux Amstrad 59 



Programme 



Liste 
des variables : 



Lignes 30 a 80 : initialisation 

On place dans les tableaux X et Y le nombre de caracteres 
de deplacement pour les quatre directions. C'est la ligne 
60 qui initialise les nombres aleatoires. 

Lignes 200 a 290 : le jeu 

La direction du serpent est modifiee en fonction de la 
derniere touche appuyee. On incremente alors les 
coordonnees du serpent X et Y en se referant aux tableaux 
X()etY(). 

La ligne 240 verifie si Ton rencontre un objet sur I'ecran. 
Si c'est le cas, on va a la ligne 400 pour la fin du jeu. 

Lignes 400 a 450 : fin de partie 

Si le serpent rencontre un objet, on recommence une autre 
partie (ligne 430), sinon, on incremente le niveau du jeu et 
Ton revient en ligne 50 pour un nouveau tableau. 

Lignes 600 a 770 : dessin du jeu 

Les lignes 610 a 640 affichent le cadre, les lignes 660 a 
690 affichent les obstacles et les lignes 700 a 740 affichent 
les obstacles aleatoires. 



AetB 


coordonnees du point affiche aleatoirement 


AS 


derniere touche appuyee 


D 


direction du serpent 


I 


indice de boucle FOR/NEXT 


J 


indice de boucle FOR/NEXT 


N 


niveau du jeu 


T 


nombre de points d'un tableau 


TT 


nombre de points d'une partie 


XetY 


coordonnees du serpent 


X()etY() 


nombre de caracteres de deplacement dans 




les quatre directions 



60 



Super jeux Amstrad 




GUERRE DES 
ETOILES 



Les vaisseaux-robots ont envahi I'espace et il devient de 
plus en plus difficile de voyager vers Mars. Voila pourquoi 
les pilotes s'entrainent sur ce simulateur de vol avant de 
partiren mission. 

Des le depart, Amstrad indique le temps de vol (1000 
unites en tout). Le nombre de lasers restants (50 au 
depart) et d'ennemis abattus apparait a chaque essai. 

II est possible de viser les vaisseaux en deplagant votre 
navette a I'aide des quatre fleches de direction. 

Le briefing final se fait dans deux cas: vous n'avez plus de 
lasers, ou le temps imparti est ecoule. En appuyant sur la 
touche ENTER vous repartirez pour une autre mission. 



ENNEMIS : 



LASERS: 31 



TEMPS: 7fi3 



Super jeux Amstrad 61 



16 REM GUERRE DES ETOILES 

20 REM 

39 SYMBOL AFTER 128:GOSUB 1609 

46 RANDOMIZE TIME 

50 MODE 1:INK 0,3: INK 1,0: PAPER 0:PEN 1: BORDER 3 

60 PLOT 26, 380,1: DRAW 620, 380: DRAW 620, 20: DRAW 20, 

20: DRAW 20 380 

70^PLOT 320, 386: DRAW 320, 280: PLOT 320, 120: DRAW 320 

80 PLOT 20, 200: DRAW 120, 280: PLOT 520, 206: DRAW 620, 

200 

90 FOR 1=40 TO 100 STEP 20 

100 PLOT 300,400-I : DRAW 340, 400-1: PLOT 300,140-I-D 
RAW 340, 140-1 

110 PLOT I.220.-DRAW I,180:PLOT 1+500, 220: DRAW 1+56 

, 1 80 

120 NEXT I 

130 LOCATE 3, 23: PRINT-TEMPS: " 

140 LOCATE 3,3:PRINT"ENNEMIS:" 

150 LOCATE 27, 3: PRINT-LASERS:" 

180 REM 

190 REM LE JEU 

209 L=50:T=1000:E=0 

210 Z=INT(RND«3)+1 

220 X=INT(RND«24)+9:Y=INT(RND*8)+9 

230 X=X-1+INT(RND*3):Y=Y-1+INT(RND*3) 

240 IF T=0 OR L=0 THEN 709 

250 IF X<9 THEN X=9 

260 IF X>30 THEN X=30 

270 IF Y<9 THEN Y=9 

280 IF Y>17 THEN Y=17 

290 LOCATE X,Y:PRINT A$(Z) 

300 A$=INKEY$:IF A$<>«" THEN 400 

310 LOCATE X,Y:PRINT M 

320 T=T-l:LOCATE 9,23:PRINT T 

330 GOTO 230 

380 REM 

390 REM DEPLACEMENT 

400 IF A$=" " THEN 480 

410 LOCATE X,Y: PRINT" 

428 IF A$=CHR$(242) THEN X=X-1 

430 IF A$=CHR$(243) THEN X = X+1 

440 IF A$=CHR$(240) THEN Y=Y-1 

450 IF A$=CHR$(241) THEN Y=Y+1 

460 T=T-l:LOCATE 9,23:PRINT T 

470 GOTO 240 

480 A=TEST(312,206) 

490 FOR 1=0 TO 160 STEP 20 

500 PLOT 140+1,20+1, 1:DRAW 150+1, 30+1: PLOT 500-1 ? 
0+1: DRAW 490-1,30+1 
510 PRINT CHRS(7) ; 

62 I Super jeux Amstrad 



520 NEXT I 

530 FOR 1=0 TO 160 STEP 20 

540 PLOT 140+1,20+1, 0:DRAW 150+1, 30+1: PLOT 500-1.2 

0+1: DRAW 490-1,30+1 

550 NEXT I 

560 L=L-l:LOCATE 34,3:PRINT L 

570 IF A=0 THEN 310 

580 E=E+l:LOCATE 11,3:PRINT E 

590 LOCATE X, Y: PRINT"***" : FOR 1=500 TO 50 STEP-10- 

SOUND 1,1,1: NEXT 

600 LOCATE X,Y:PRINT" 

610 GOTO 210 

680 REM 

690 REM RESULTATS 

700 CLS:PRINT TAB(7) ; "RESULTATS" 

710 PRINT:PRINT:PRINT:PRINT 

720 PRINT E ; "ENNEMIS DETRUITS": PRINT 

730 PRINT " EN"; 1000-T; "UNITES TEMPS":PRINT 

740 PRINT" AVEC";50-L; "LASERS" 

750 PRINT:PRINT:PRINT 

760 PRINT" MISSION REUSSIE A" ; INT( (E/ (50-L) )*1 00) : 

770 IF INKEY$<>CHR$(13) THEN 770 ELSE RUN 
980 REM 

990 REM GRAPHIQUES 

1000 SYMBOL 128,28,49,99,255,255,99,49,28 

1010 SYMBOL 129,255,129,24,36,36,24,129,255 

1020 SYMBOL 130,56,140,198,255,255,198,140,56 

1030 SYMBOL 131,9,17,34,64,128,255,0,0 

1040 SYMBOL 132,255,24,24,126,129,153,129,126 

1050 SYMBOL 133,144,136,68,2,1,255,0,0 

1060 SYMBOL. 134,31,48,96,192,192,255,0,0 

1070 SYMBOL 135,255,0,60,90,165,165,90,60 

1080 SYMBOL 136,248,12,6,3,3,255,0,0 

1090 AS(1)=CHR$(128)+CHR$(129)+CHR$(130) 

1100 AS(2)=CHRS(131)+CHR$(132)+CHR$(133) 

1110 A$(3)=CHR$(134)+CHR$(135)+CHR$(136) 

1120 RETURN 



Super jeux Amstrad I 63 



Programme 



Liste 
des variables : 



Lignes 30 a 150 : initialisation 

L'appel du sous-programme en 1000 initialise les 
caracteres graphiques et place dans le tableau A$ le dessin 
desennemis. 

Les lignes 50 a 120 affichent sur I'ecran le dessin de la 
mire de tir avec des caracteres semi-graphiques. 

Lignes 200 a 330 : le jeu 

La position de depart du vaisseau ennemi est donnee par 
les valeurs aleatoires continues dans les variables X et Y. 
Pour chaque mouvement, on ajoute a celles-ci une valeur 
comprise entre — 1 et 1 . 

Si le temps imparti est ecoule (T=0) ou s'il ne reste plus 
de laser (L=0), on va directement a la ligne 700 pour la fin 
du jeu. 

Si aucune touche n'est enfoncee (ligne 300) on revient a la 
ligne 230 pour modifier a nouveau la position du vaisseau 
ennemi. 

Lignes 400 a 610 : deplacemenl 

Si la touche enfoncee est une fleche, on modifie en 
fonction de celle-ci les coordonnees X et Y et Ton revient a 
la ligne 240 pour continuer le jeu. 

Dans le cas de la barre d'espace, on affiche le laser. Si 
I'ennemi est touche, on increments le compteur E et Ton 
revient a la ligne 210 pour changer de type de vaisseau et 
placer dans X et Y de nouvelles coordonnees aleatoires. 



A 


caractere en dessous du laser 


AS 


derniere touche enfoncee 


A$() 


dessin des ennemis 


E 


nombre d'ennemis abattus 


I 


indice de boucle FOR/NEXT 


L 


nombre de lasers 


T 


temps imparti 


Z 


type d'ennemi a afficher 


XetY 


coordonnees du vaisseau ennemi 



64 Super jeuxAmstrad 




SNAKE 



Saurez-vous cteplacer un serpent le plus longtemps 
possible sans qu'il heurte un des innombrables petits 
Carre's qui surgissent devant lui ? 

Pour cela, servez-vous des touches P et Q et gardez votre 
sang-froid. 

En cas de collision tapez sur n'importe quelle touche pour 
une autre partie. 




Super jeux Amstrad 65 



10 REM SNAKE 

20 REM 

30 SYMBOL AFTER 128 

40 SYMBOL 128,136,17,34,68,136,17,34,68 

50 MODE 1:INK 0,1:INK 1,24:PAPER 1: PEN l:BORDER 1: 

GOSUB 400 

60 RANDOMIZE TIME 

70 X(0)=-8:X(2)=8:Y(l)=8:Y(3)=-8 

80 X=320:Y=296:D=1 

180 REM 

190 REM LE JEU 

200 A$=INKEY$ 

210 IF A$="P" THEN D=(D+1) MOD 4 

220 IF A$="Q" THEN D=(D+3) MOD 4 

230 X=X+X(D):Y=Y+Y(D) 

240 IF TEST(X,Y)>0 THEN FOR 1=50 TO 500 STEP 5:SOU 

ND 1,I,2:NEXT:WHILE INKEY$= "": WEND: RUN 

250 PLOT X + 2,Y + 2:DRAWR 2,0:DRAWR 0,2,-DRAWR -2,0:DR 

AWR 0,-2:PLOT X,Y:DRAWR 4,0:DRAWR 0,4:DRAWR -4,0:D 

RAWR 0,-4 

260 V=INT(RND*152)*8+16:W=400-INT(RND*88)*8 

270 IF TEST(V,W)>0 THEN 260 

280 PLOT V+2,W+2:DRAWR 2,0:DRAWR 0,2:DRAWR -2,0:DR 

AWR 0,-2:PLOT V.W.-DRAWR 4,0:DRAWR 0,4:DRAWR -4,0:D 

RAWR 0,-4 

290 P=P+l:LOCATE 23,25:PRINT P; 

300 SOUND 1,40,1 

310 GOTO 200 

380 REM 

390 REM DESSIN DU OEU 

400 FOR 1=1 TO 40 

410 LOCATE 1,1: PRINT " ":LOCATE I,24 : .PRINT " " 

420 IF K25 THEN LOCATE 3,1: PRINT " *':LOCATE 40,1: 

PRINT " " 

430 NEXT I 

440 PAPER 0: LOCATE .16, 25: PRINT "POINTS.- " ; 

450 RETURN 



66 I Super jeux Amstrad 



Programme 



Liste 
des variables : 



Lignes 30 a 80 : initialisation 

Apres la definition des caracteres graphiques et le dessin 
du jeu par le sous-programme en 400, on place dans les 
tableaux X() et Y() le nombre de caracteres de deplacement 
pour les quatre directions. 

Lignes 200 a 310 : le jeu 

Le caractere saisi au clavier etant stocke dans la variable 
A$, on modifie suivant sa valeur la variable D. On utilise 
pour cela une fonction modulo (MOD) qui evite le test IF 
THEN beaucoup trop long. D=(D+3) MOD 4 remplace 
D=D-1: IF D=-1 THEN D=3 et D=(D+1) MOD 4 
remplace D=D+1 : IF D=4 THEN D=0. 

Si le serpent rencontre un petit carre ou le bord de I'ecran, 
le programme effectue un RUN des qu'une touche est 
appuyee. 

Les lignes 260 a 280 affichent a une position aleatoire de 
I'ecran un petit carre. On verifie avant de I'afficher qu'il n'y 
a pas d'autre carre ou partie du serpent a cet endroit. 



AS 

D 

I 

P 

VetW 

XetY 

X()etY() 



demiere touche enfoncee 

direction prise par le joueur 

indice de boucle FOR/NEXT 

total des points 

coordonnees du prochain petit carre a afficher 

coordonnees de la tete du serpent 

nombre de caracteres de deplacement dans 

les quatre directions. 



Super jeux Amstrad 67 




MUR 
DE BRIQUES 



Vous allez pouvoir vous entraTner inlassablement chez vous 
a ce celebre jeu video qui consiste a descendre une par une 
toutes les briques d'un mur. 

La balle que vous utilisez pour cela est receptionnee par la 
raquette au bas de I'ecran. Celle-ci est manceuvree avec les 
touches 7" et"\". 

Vous n'avez le droit de laisser echapper la balle que trois 
fois, sinon le mur se redresse et tout est a recommencer. 

























[ * 


>CORE 


: 2 UIES: 3 


J 






_ 
















{ 






































j 




















. 


















i 






























J 
























• 



























68 Super jeux Amstrad 



10 REM MUR DE BRIQUES 

20 REM 

30 DEFINT A-Z:SPEED KEY 5,3 

40 RANDOMIZE TIME 

50 V = 3 

60 MODE 1:INK 0,1:INK 1,24:INK 2,6:INK 3,15:PAPER 

0:PEN l:BORDER lrGOSUB 600 

70 CLS 

80 LOCATE 25,1:PRINT"VIES: " ; V 

90 FOR 1=2 TO 21 

100 PAPER 2:LOCATE 9+I,2:PRINT " " 

110 LOCATE 10,I:PRINT " ■ 

120 LOCATE 31,1: PRINT M " 

130 IF K10 AND I>5 THEN PAPER 0:PEN 3:L0CATE 11,1 

:PRINT STRING$(20,128) 

140 NEXTrPAPER 

150 P = H:T = 

160 X = INT(RND«U)+15:Y = 20:DX = -1:DY=-1 

280 REM 

290 REM LE JEU 

300 PEN l:LOCATE 10, 1 : PRINT"SCORE: " ; T+TT 

310 A$ = INKEY$:P = P + 1*(A$= ,, / H AND P>10)-1*(A$=" \ " AN 

D P<28) 

320 LOCATE P,22:PRINT" ";:PAPER 1:PRINT" ";:PAPER 

0: PRINT" " 
330 Z=TEST((X+DX)»16-2,408-Y«16):IF Z<>0 THEN SOUN 
D 1,200,1:DX=-DX: IF Z=3 THEN SOUND 1, 50, 1: LOCATE X 
-DX,Y:PRINT" ":T=T+1 

340 Z=TEST(X*16-2,408-(Y+DY)»16):IF Z<>0 THEN SOUN 
D 1,200, 1:DY=-DY: IF Z=3 THEN SOUND 1, 50, 1 : LOCATE X 
,Y-DY:PRINT" ":T=T+l:GOTO 330 ELSE 330 
350 Z=TEST((X+DX)»16-2,408-(Y+DY)»16):IF Z<>0 THEN 

SOUND 1,200,1:DY=-DY:IF Z=3 THEN SOUND 1,50,1:LOC 
ATE X+DX,Y-DY:PRINT" ■ : T=T+1: GOTO 330 ELSE 330 
360 A$=INKEYS:P=P+1»(A$="/" AND P>18)-1»{ A$=" \ " AN 
D P<28) 
370 LOCATE P,22:PRINT" ";:PAPER 1:PRINT" ";:PAPER 

0: PRINT" " 
380 LOCATE X,Y:PRINT" " 
390 IF T=80 THEN TT=TT+T:GOTO 70 
400 X=X+DX:Y=Y+DY 
410 IF Y>21 THEN 500 
420 LOCATE X,Y:PRINT CHR$(129) 
430 GOTO 300 

480 REM 

490 REM FIN DE PARTIE 

500 V=V-l:LOCATE 25, 1 : PRINT"VIES: " ; V 

510 IF INKEY$<>CHR$(13) THEN 510 

520 IF V<1 THEN RUN 

530 LOCATE X,Y:PRINT M " 

540 GOTO 160 

580 REM 

590 REM GRAPHIQUES 

600 SYMBOL AFTER 128 

610 SYMBOL 128,255,129,129,129,129,129,129,255 

620 SYMBOL 129,60,126,255,255,255,255,126,60 

630 RETURN 

Super jeux Amstrad 69 



Programme 



Liste 
des variables : 



Lignes 30 a 160 : initialisation 

Le DEFINT de la ligne 30 precise au basic que Ton veut des 
variables entieres pour accelerer I'execution du 
programme. 

Le SPEED KEY de la ligne 30 evite le temps d'attente avant 
repetition au clavier pour que le deplacement du curseur 
soitcontinu. 

La boucle des lignes 90 a 1 40 affiche le jeu. C'est la ligne 
130 qui affiche les briques. 

Les variables X et Y definissent la position initiale de la 
balle sur I'ecran. 

Lignes 300 a 430 : le jeu 

C'est la variable P qui determine la position de la raquette. 
On la modifie en fonction de la derniere touche enfoncee. 

Les lignes 330 a 350 modifient la trajectoire de la balle 
(increment DX et DY) en fonction des elements rencontres 
(mur, briques ou raquette). 

La ligne 310 est repetee en 360 pour que le curseur se 
deplace plus rapidement. 

La ligne 410 teste si la balle sort du jeu. Si c'est le cas, le 
programme va a la ligne 500 pour supprimer une vie. 

Lignes 500 a 540 : fin de partie 

On decrements le compteur de vies V. Si celui-ci est a 
zero, on reprend une nouvelle partie. 



AS 


derniere touche appuyee 


DX et DY 


direction de la balle 


I 


indice de boucle FOR/NEXT 


J 


indice de boucle FOR/NEXT 


P 


position du curseur 


T 


total des points d'un tableau 


TT 


total des points d'une partie 


V 


nombre de vies 


XetY 


position de la balle 


Z 


caractere sous la balle 



70 Super jeux Amstrad 




COCONUTS 



Essayez d'attraper le plus grand nombre de noix de coco 
en deplagant le singe sous les trois cocotiers d'ou elles 
tombent. 

Pour cela, vous devez utiliser les touches P et Q. 

Votre score s'affiche en haut de I'ecran et la frequence des 
noix s'accroit toutes les 5 bien receptionnees. 

Trois precieuses vies vous sont attributes au debut d'une 
partie. Faites-en bon usage. Mais si vous les perdez, le jeu 
repart tout seul pour un autre entramement. 





rv< 



Super jeux Amstrad I 71 



10 


REM COCONUTS 










20 

38 


% EM 










SPEED KEY 5, 3: SYMBOL 


AFTER 


128: 


GOSUB 


40 


DIM C(10 f 3) 










50 


RANDOMIZE TIME 










60 


GOSUB 2000 










70 


P=1:Q=1:D=1:T=0:V=3: 


N=0. 


6 






80 


GOSUB 1000 










180 REM - -- 











3000 



190 REM LE JEU 

200 FOR J=l TO 3 

210 A$=INKEY$:P=P+(A$="P")*(P<3)-(A$="Q")*(P>1) 

220 PEN 2:LOCATE 7,19:PRINT A$(P):LOCATE 7,28:PRIN 

T B$(P) 

230 Q=D 

240 FOR 1=1 TO 9 

250 PEN 3: IF C(Q,J)=1 THEN LOCATE J*5+3, 1+9: PRINT 

CHR$(135) ELSE LOCATE J*5+3, 1+9: PRINT ■ " 

260 Q=Q+1: IF Q=ll THEN Q=l 

270 NEXT 

280 A$=INKEY$:P=P+(A$="P")*(P<3)-(A$="Q")*(P>1) 

290 PEN 2:LOCATE 7,19:PRINT A$(P):LOCATE 7,20:PRIN 

T B$(P) 

300 IF C(Q,J)=0 THEN 369 

310 IF POJ THEN 420 

320 PRINT CHR$(7);:T=T+1:IF T/5=INT(T/5) THEN N=N+ 

0.1 

330 C(Q F J)=0 

340 A$=INKEY$:P=P+(A$="P" )*( P<3 )- ( A$= "Q" )*( P> 1 ) 

350 PEN 2:LOCATE 7,19:PRINT A$(P) : LOCATE' 7, 20: PRIN 

T B$(P) 

360 NEXT 

370 LOCATE 7,1:PRINT T 

380 D=Q 

390 IF RND>N THEN 200 

400 C(Q,INT(RND*3)+1)=1 

410 GOTO 200 

420 FOR 1=50 TO 500 STEP 10:SOUND 1,1,2: NEXT 

430 V=V-1 

440 GOSUB 1000 

450 IF V>0 THEN 360 

460 IF INKEY$oCHR$(13) THEN 460 

470 RUN 

980 REM 

990 REM AFFICHE LES VIES 

1000 PEN 3: FOR K=l TO 3 

1010 IF V<K THEN 1050 

1020 LOCATE 13+K*2, 1:PRINT LEFT$ ( A$ ( 1 ) , 2 ) 

1030 LOCATE 13 + K«2,2:PRINT LEFT$ ( B$ ( 1 ) , 2 ) 

1040 GOTO 1070 

1050 LOCATE 13+K*2,1: PRINT " " 

72 Super jeux Amstrad 



I960 LOCATE 13+K*2, 2: PRINT " " 

1070 NEXT K 

1080 RETURN 

1980 REM 

1990 REM DESSIN DU JEU 

2000 MOOE 0:INK 0,1: INK 1,24: INK 2, 15: INK 3,6:PAPE 

R 0:PEN lrBORDER 1 

2010 FOR 1=1 TO 3 

2020 LOCATE I*5,4:PRINT CHR$ ( 1 28)CHR$( 129) : LOCATE 

I*5,5:PRINT CHR$(130)CHR$(131 ) 

2030 FOR J=6 TO 15 

2040 LOCATE I«5,J;PRINT CHR$(132) 

2050 NEXT J 

2060 LOCATE 1*5, 16: PRINT CHR$( 133 )CHR$( 134) 

2070 NEXT I 

2080 LOCATE 1,1: PRINT "SCORE: " 

2090 RETURN 

2980 REM --- 

2990 REM GRAPHIQUES 

3000 SYMBOL 128,0,112,252,222,143,3,59,127 

3010 SYMBOL 129,0,0,30,63,115,97,65,240 

3020 SYMBOL 130,250,228,201,201,145,27,21,17 

3030 SYMBOL 131,248,188,62,30,14,14,12,8 

3040 SYMBOL 132,27,21,17,17,27,21,17,17 

3050 SYMBOL 133,91,53,17,153,149,83,49,255 

3060 SYMBOL 134,0,68,72,80,32,80,136,254 

3070 SYMBOL 135,0,60,126,255,255,255,255,126 

3080 SYMBOL 136,255,85,106,63,199,197,103,51 

3090 SYMBOL 137,254,84,172,248,198,70,204,152 

3100 SYMBOL 138,31,15,15,15,14,12,28,56 

3110 SYMBOL 139,240,224,224,224,224,96,112,56 

3120 A$(1)=CHR$(136)+CHR$(137)+" 

3130 B$(1)=CHR$(138)+CHR$(139)+" 

3140 A$(2)=" "+CHR$(136)+CHR$( 137)+" 

3150 B$(2)=" "+CHR$(138)+CHR$( 139)+" 

3160 A$(3)=" "+CHR$(136)+CHR$(137) 

3170 B$(3)=" "+CHR$(138)+CHR$(139) 

3180 RETURN 



Super jeux Amstrad I 73 



Programme 



Liste 
des variables : 



Lignes 30 a 80 : initialisation 

Apres la definition des caracteres graphiques (sous- 
programme en 3000), on dimensionne un tableau C pour 
connaitre a tout moment la position des noix de coco sur 
I'ecran. 

Le sous-programme en 2000 dessine le jeu et celui en 
1000 affiche les vies restantes. 
La ligne 70 initialise les diverses variables (voir liste des 
variables). 

Lignes 200 a 470 : le jeu 

La boucle J des lignes 200 a 360 permet d'examiner a la 
suite les trois cocotiers. La boucle I, par contre, permet 
d'examiner les 9 positions possibles des noix de coco sur 
chaque arbre. 

A chaque boucle J, on teste le clavier et Ton modifie la 
position du singe (variable P) en utilisant une fonction 
logique (ligne 210). 

La ligne 310 teste si le singe se trouve bien sous la noix de 
coco qui arrive sur le sol. Si ce n'est pas le cas, on va 
directement en ligne 420 pour enlever une vie. 

Si le nombre aleatoire qui vient d'etre tire est inferieur au 
niveau en cours (variable N), on place dans le tableau C 
une nouvelle noix de coco (lignes 390 a 410). 

Les lignes 420 a 470 enlevent une des vies (variable V). 
S'il n'en reste plus, le programme effectue un RUN des 
qu'unetoucheestappuyee. 



A$ 

A$() et B$() 

C(,) 



J 
K 
N 
P 
Q 
T 
V 



derniere touche appuyee 

dessin des singes pour les trois positions 

(A$=premiere ligne, B$=deuxieme ligne). 

tableau des positions des noix sur chaque 

cocotier 

derniere valeur de Q 

indice de boucle FOR/NEXT 

indice de boucle FOR/NEXT 

indice de boucle FOR/NEXT 

niveau du jeu 

position du singe 

pointeur dans le tableau C 

nombre de points 

nombre de vies restantes 



74 Super jeux Amstrad 




AUTOROUTE 



Aidez ce fou du volant qui a pris I'autoroute sur la voie 
inverse a faire le plus de kilometres possible sans accident. 

Pour lui faire eviter tout ce qui surgit en face de lui, pilotez 
sa voiture a I'aide des touches P et Q. 

Si, par malheur, un accident se produisait quand meme, le 
programme donne alors le nombre de kilometres 
parcourus sans accident. 

En tapant sur une touche du clavier, vous retrouverez le 
conducteur imprudent qui a plus que jamais besoin de 
vous. 




Super jeux Amstrad 



75 



10 REM AUTOROUTE 

20 REM 

30 SYMBOL AFTER 128:60SUB 1000 

40 MODE 1:INK 0,1:INK 1,24:INK 2.13.-INK 3,6:PAPER 

0:PEN l:BOROER 1 

50 RANDOMIZE TIME 

60 INPUT "NIVEAU (1 OU 2)";N 

70 IF N<1 OR N>2 THEN 60 

80 N=N+1 

90 X = 18 

100 P=0 

180 REM 

190 REM LE JEU 

200 A=INT(RND(1)»16)+11 

210 PEN l:LOCATE 10,24:PRINT CHR$ ( 136) ; : PEN 2:PRIN 

T TAB(A);CHR$(132);CHRS(134) ; 

220 PEN 1:PRINT TAB(28) ; CHR$( 136) 

230 PEN 2:PRINT TAB( A) ; CHR$( 133 ) ; CHR$( 135) 

240 FOR 1=1 TO N: PRINT: NEXT I 

250 A$=INKEY$:IF A$<>"" THEN C$ = A$ 

260 IF C$="P" AND X<26 THEN X=X + 1 

270 IF C$="Q" AND X>11 THEN X=X-1 

280 P=P+1 

290 PEN 3:LOCATE X,1:PRINT CHR$ ( 128) ; CHR$( 130) 

300 PRINT TAB(X) ; CHR$(129);CHR$(131) 

310 IF TEST(X*16,365)=0 AND TEST(X«16-16 f 365)=0 AN 

D TEST(X»16+16,365)=0 THEN 200 

380 REM 

390 REM FIN 

400 FOR 1=0 TO 5 

410 PRINT CHR$(7) 

420 LOCATE X+I + l , 1 + 1 : PRINT " ":PRINT TAB (X+I+2 ) ; CH 

R$(130) 

430 LOCATE X-I , 1+1: PRINT " ":PRINT TAB(X-I-1 ) ; CHR$ 

(128) 

440 LOCATE X+I+l , 1+2: PRINT " M :PRINT TAB (X+I + 3) : CH 

R$( 131 ) 

450 LOCATE X-I , 1 + 2: PRINT " H :PRIN7 TAB(X-I-2) : CHR$ 

(129) 

460 NEXT I 

470 CLS 

480 PRINT P ; " KILOMETRES" 

490 A$=INKEY$:IF A$="" THEN 490 

500 GOTO 90 

980 REM 

990 REM GRAPHIQUES 

1000 SYMBOL 128,2,55,55,63,55,55,7,5 

1010 SYMBOL 129,5,6,3,11,15,11,3,1 

1020 SYMBOL 130,64,236,236,252,236,236,224,160 

1030 SYMBOL 131,160,96,192,208,240,208,192,128 

1040 SYMBOL 132,1,3,11,15,11,3,3,3 

1050 SYMBOL 133,3,3,3,55,55,63,55,51 

1060 SYMBOL 134,128,192,208,240,208,192,192,192 

1070 SYMBOL 135,192,192,192,236,236,252,236,204 

1080 SYMBOL 136,60,60,60,60,60,60,60,60 

1090 RETURN 

76 I Super jeux Amstrad 



Programme 



Liste 
des variables : 



Lignes 30 a 100 : initialisation 

On definit les caracteres graphiques des voitures par le 
sous-programme en 1000. 

La variable X donne la position de depart de la voiture du 
joueur et P le nombre de kilometres parcourus. 
La variable N saisie au clavier determine la rapidite du jeu. 
Lignes 200 a 310 : le jeu 

Le nombre aleatoire contenu par la variable A donne 
I'emplacement de la voiture en sens inverse. Celle-ci est 
affichee simplement par une fonction PRINT ce qui a pour 
effet de faire monter I'ecran de deux lignes vers le haut. 

La ligne 250 teste le sens de deplacement donne par la 
touche tapee au clavier. 

Si un deplacement est effectue, on modifie la valeur de la 
variable X avant d'afficher a I'ecran le dessin de la voiture 
(lignes 260 a 300). 

Si des caracteres differents de (couleur du fond) sont en 
face de la voiture du joueur (testes par TEST), on va 
directement a la fin du jeu (ligne 400). 

Lignes 400 a 500 : fin de partie 

Des caracteres differents de se trouvant devant la voiture 
du joueur, on affiche le nombre de kilometres parcourus 
avant de revenir a une autre partie des qu'une touche est 
enfoncee. 



A 
AS 
CS 
I 


position de la voiture en face 
derniere touche enfoncee 
sens du deplacement 
indice de boucle FOR/NEXT 


N 
P 
X 


niveau du jeu 

nombre de kilometres parcourus 

position de la voiture du joueur 



Super jeux Am strad 



77 



CHAPITRE II : 
JEUX DE REFLEXION 




LABYRINTHE EN 

TROIS 

DIMENSIONS 



Saurez-vous sortir de ce labyrinthe mysterieux ? 

II comporte en tout 400 pieces (20 en largeur et 20 en 
longueur) et s'affiche en trois dimensions. 

Amstrad vous indique toujours la piece ou vous vous 
trouvez et dessine en plus une boussole pour ne pas vous 
perdre ! 

Si vous faites demi-tour, la trace de vos pas reste 
imprimee sur le sol. 

II suffit de rentrer I'initiale de la direction choisie pour que 
I'ordinateur dessine la piece ou vous venez d'arriver. 

Des que vous aurez trouve la sortie, tapez une derniere fois 
sa direction et vous obtiendrez la vue d 'ensemble du 
labyrinthe avec toutes les pieces que vous avez visitees. 

Ne croyez pas retraverser le labyrinthe plus rapidement que 
la premiere fois. Tous les labyrinthes sont differents ! 











"""--__ 






--__ 








"---, 
















em 








Q* 






S 








El 










-~~ 


u 




L-~-~ 


1 PIECE: 17 , 18 


1 DIREC 


TI< 


>N ? 



4° 



BO I Super jeux Amstrad 



10 REM LABYRINTHE 3D 

20 REM 

30 SYMBOL. AFTER 128:GOSUB 1400 

40 DEFINT A-Z 

50 RANDOMIZE TIME 

60 MODE 1:INK 0,1: INK 1,24:INK 2,6:INK 3,15:PAPER 

0:PEN l:BORDER lrLOCATE 10,11: PRINT "GENERATION DU 

LABYRINTHE" 
70 DIM A(21,21),B(20,20) 

80$(0)=4:S(1)=2:S(2)=1 : S(3)=8:S$(0)="N":S$(1)="E" 

r S $ { 2 ) = " S " : S $ ( 3 ) = " " 

90 SS$(0) = "AU NORD ":S$$(1)="A L'EST " : SS$( 2 ) = "A 
U SUD ":SS$(3)="A L'OUEST" 
100 S=2:Z(1)=22:Z(2)=20:Z(3)=22 

H0X(1)=1:X(3)=-1:Y(0)=-1:Y{2)=1 

120 P$=CHR$(137)+CHR$(138)+CHR$(10)+CHR$(8)+CHR$(8 

)+CHR$(139)+CHR$(140) 

130 A$=CHR$(10)+CHR$(8):S$="S"+AS+"O"+A$+"R"+A$+"T 

"+A$ + ,, r , +A$+"E" 

180 REM 

190 REM CREATION 

200 X=10:Y=1:DE=10 

210 A(X, Y)=A(X,Y)+4 

220 D=INT(RND*5)+1 

230 ON D GOTO 240,270,300,330,300 

240 IF Y - 1 = THEN 220 

250 IF A(X,Y-1) AND 4 THEN 360 

260 Y=Y-l:A(X,Y)=A(X,Y)+l:GOTO 400 

270 IF X+l=21 THEN 220 

280 IF A(X+1,Y) AND 4 THEN 360 

290 A(X,Y)=A(X,Y)+2:X=X+l:GOTO 400 

300 IF A(X, Y+l) AND 4 THEN 360 

310 A(X, Y)=A(X,Y)+1:Y=Y+J:IF Y = ?l THFN 500 

320 GOTO 400 

330 IF X-1=0 THEN 220 

340 IF A(X-l.Y) AND 4 THEN 360 

350 X=X-l:A(X,Y)=A(X,Y)+2:GOTO 400 

360 F=F+1: IF F<20 THEN 220 

370 F = 0:F1=F1 + 1:X = DE:Y = 1: IF FK9 THEN 220 

380 F1=0:F2=F2+1: IF F2<19 THEN 200 

390 RUN 

400 A(X,Y)=A(X,Y)+4: F=0:GOTO 220 

480 REM 

490 REM DESTRUCTION 

500 DA=X 

510 FOR 0=1 TO 20 

520 Z=INT(RND*5)+1 

530 FOR 1=1 TO 20 

540 IF A(I,vl)>3 AND Z<3 THEN 640 

550 A=INT(RND*2)+1:0N A GOSUB 580,610 



Super jeux Amstrad 81 



560 IF B=0 AND I<>20 AND J<>20 THEN ON A GOSUB 610 

,580 

570 B=0:QOTO 640 

580 IF J=20 OR A(I,J+1)>3 OR (A(I,J)=1 AND Z>3) TH 

EN GOTO 600 

590 A(I, J)=A(I, J)+1:B=1 

600 RETURN 

610 IF 1=20 OR A(I+1,J)>3 OR (A(I,J)=2 AND Z>3) TH 

EN 630 

620 A(I, J)=A(I, J)+2:B=1 

630 RETURN 

640 NEXT 

650 NEXT 

660 FOR 1=1 TO 20: FOR J=l TO 20 

670 IF A ( I , J ) AND 4 THEN A( I , J)=A( I , J)-4 

680 NEXT: NEXT 

690 FOR 1=1 TO 20: FOR J=l TO 20 

700 IF A(I-1,J) AND 2 THEN A( I, J)=A( I, J)+8 

710 IF A(I, J-l) AND 1 THEN A( I , 0)=A( I , J)+4 

720 NEXT:NEXT 

780 REM 

790 REM LE JEU 
800 X=10:Y=] 

820 PLOT 240,350, l:ORAW 400,350:DRAW 400,150:DRAW 

240, 150:DRAW 240,350 

830 PLOT 240,350:DRAW 80,400:DRAW 80,100:DRAW 240, 

150 

840 PIOT 400, 350-.DRAW 560,400:DRAW 560,100:DRAW 40 

0, 150 

850 LOCATE 31,22:PRINT CHRS ( 1 32 ): LOCATE 30,23:PRIN 

T CHR$( 133)CHR$( 1 34 ) CHRS ( 1 35 ) ; .-LOCATE 31,24:PRINT 

CHR$(136):L0CATE 31 , 25: PRINT SS((S+2) MOD 4) 

860 LOCATE 1 , 22 : PRINT "PIECE: "; X ", "Y 

870 IF B(X,Y)=1 THFN LOCATE 20,17:PRINT CHR$(128)C 

HRS(129):L0CATE 20,18:PRJNT CHR${ 1 30 )CHR$ ( 131 ) 

880 B(X,Y)=1 

890 FOR J=l TO 3 

900 IF 3=1 THEN I=(S+3) MOD 4 

910 IF J=2 THEN I=S 

920 IF J = 3 THEN I = (S + 1 ) MOD 4 

930 IF A(X,Y) AND S(I) THEN ON J GOTO 940,970,1000 

ELSE 1620 
940 PLOT 120,116:DRAW 120,340:DRAW 200,320:DRAW 20 
0, 140:LOCATE 11, 12:PRINT P$ 
950 IF X=DA AND Y=20 AND 1=2 THEN LOCATE 9,8:PRINT 

S$ 
960 GOTO 1020 

970 PLOT 280,310:DRAW 360,310:DRAW 360,150:DRAW 28 
0,150:DRAW 280,310:LOCATE 21,11: PRINT P$ 



B2 Super jeux Amstrad 



980 IF X=DA AND Y=20 AND 1=2 THEN LOCATE 18,5:PRIN 

T h SORTIE M 

990 GOTO 1020 

1000 PLOT 520,116:DRAW 520,340:DRAW 440,320:DRAW 4 

40, 140:LOCATE 31, 12: PRINT P$ 

1010 IF X = DA AND Y=20 AND 1=2 THEN LOCATE 29,8:PRI 

NT LEFT$(S$,8):L0CATE 30,11:PRINT RIGHTS(S$,8) 

1020 LOCATE 27+0*2, Z(0)+1:PRINT S${I) 

1030 NEXT J 

1040 LOCATE 1,24:PRINT"DIRECTI0N ?";: A$=" ": WHILE A 

$="":A$=INKEY$:WEND 

1050 S=-l 

1060 FOR 1=0 TO 3 

1070 IF A$=S$(I) THEN S=I 

1080 NEXT I: IF S<0 THEN 1040 

1090 IF A(X,Y) AND S(S) THEN 1110 

1100 LOCATE 1,25:PRINT "PAS DE PORTE " ; SS$( S ) ; : GOT 

1040 

1110 X=X+X(S):Y=Y+Y(S) 

1120 IF Y=21 THEN GOSUB 1200:RUN 

1130 GOTO 810 

1180 REM 

1190 REM DESSIN DU LABYRINTHE 

1200 CLS 

1210 FOR 0=1 TO 20 

1220 FOR 1=1 TO 20 

1230 IF B(I,0)=1 THEN PAPER 2 ELSE PAPER 

1240 LOCATE 1+1, J+l: PRINT " " 

1250 PLOT 1*16,400-0*16, 1:DRAW 1*16+14, 400-0*16: DR 

AW 1*16+14, 386-0*16:DRAW 1*1 6, 386-0*16: DRAW 1*16,4 

80-0*16 

1260 IF B(I,0)=1 THEN C=2 ELSE C=0 

1270 IF A(I,0) AND 1 THEN PLOT I*] 6+2, 386-0*16, C: D 

RAW 1*16+12,386-0*16 

1280 IF A(I,J) AND 2 THFN PLOT 1*16+14, 398-0*16, C : 

DRAW 1*16+14,388-0*16 

1290 IF A(I,J) AND 4 THEN PLOT 1*16+2, 400-0*16, C: D 

RAW 1*16+12,400-0*16 

1300 IF A(I,0) AND 8 THEN PLOT 1*16, 398-0*16, C: DRA 

W 1*16, 388-J*16 

1310 NEXTrNFXT 

1320 PEN 1 

1330 IF INKEY$<>CHR$(13) THEN 1330 

1340 RETURN 

1380 REM 

1390 REM GRAPHIQUES 

1400 SYMBOl 128,56,124,254,254,254,254,252,252 

1410 SYMBOL 129,0,0,0,0,28,62,127,127 

1420 SYMBOl 130,0,252,252,120,0,0,0,0 

1430 SYMBOL 131,127,127,126,126,0,126,126,60 

1440 SYMBOL 132,24,60,126,255,24,24,24,24 

Super jeux Amstrad 83 



1450 SYMBOL 133,16,48,112,255,255,112,48,16 

1460 SYMBOL 134,24,24,24,255,255,24,24,24 

1470 SYMBOL 135,8,12,14,255,255,14,12,8 

1480 SYMBOL 136,24,24,24,24,255,126,60,24 

1490 SYMBOL 137,1,3,2,2,3,1,0,7 

1500 SYMBOL 138,222,63,255,255,63,222,0,240 

1510 SYMBOL 139,4,5,5,4,4,4,4,7 

1520 SYMBOL 140,16,208,208,144,144,144,16,240 

1530 RETURN 



LlSTE 
DES VARIABLES : 



A(,) 


contient la representation du labyrinthe 


B(.) 


B(X,Y)=1 si la piece a deja ete visitee 


AS 


choixdu joueur 


B 


B=1 si Ton a deja detruit une partie de la 

case 

sens du deplacement dans la creation 


D 


DA 


garde le numero de la case d'arrivee 


DE 


garde le numero de la case de depart 


F,F1 et F2 


compteurs indiquant le blocage du chemin 




gagnant 


I 


indice de boucle FOR/NEXT 


J 


indice de boucle FOR/NEXT 


S 


sens du deplacement du joueur 


SO 


valeur binaire correspondant aux quatre 




directions 


S$() 


choix possible du joueur 


SSS() 


idem a S$, mais en clair 


XetY 


coordonnees de la piece ou se trouve le 




joueur 


X()etY() 


nombre de cases de deplacement dans les 




quatre directions 


Z 


si Z>2 on detruit la case adjacente au chemin 




gagnant 


Z() 


coordonnees sur I'ecran de la boussole 



84 Super jeux Amstrad 



Programme 



Lignes 30 a 130 : initialisation 

Apres la definition des caracteres graphiques, on initialise 
divers parametres (voir liste des variables). 

Lignes 200 a 400 : creation 

On cr6e dans le tableau A un chemin gagnant en partant de 
la case 10,1 jusqu'a la fin du tableau. Les cases sont 
representees ainsi : 



On remarque que I'assemblage des cases donne une 
grille : 



Chaque case peut contenir un de ces quatre chiffres : 



binaire 


decimal 


1 forme de la case 
— I la case est complete 


00 





01 


1 


I on supprime la barre du 
I bas 


10 


2 


on supprime la barre du 

haut 


11 


3 


la case est vide 



En effet, on utilise le poids binaire de chaque case pour en 
determiner la forme. correspond a une case complete, 
ce qui evite d'initialiser le tableau A au debut du jeu. On 
gagne ainsi un temps precieux 

De plus, on ajoute 4 (100 binaire, ce qui ne change pas le 
resultat du tableau precedent) pour chaque case 
correspondant au chemin gagnant. On peut aiors verifier si 
Ton est deja passe sur une case en testant le troisieme bit. 

II arrive parfois qu'un chemin soit bloque s'il boucle sur 
lui-meme : 



Dans ce cas on revient a la premiere ligne pour creer un 
nouveau chemin (role des compteurs F, F1 et F2). 



Super jeux Amstrad 85 



Lignes 500 a 720 : destruction 

Si Ton editait tout de suite le labyrinthe, on obtiendrait 
quelque chose dans ce genre : 



II faut done detruire toutes les autres cases en supprimant 
soit la barre verticale, soit la barre horizontale. Dans le cas 
des cases adjacentes au chemin gagnant, on supprime une 
de ces barres si la variable aieatoire Z est superieure a 3, 
ce qui ajoute des « culs-de-sac ». 




labyrinthe de I'exemple precedent apres destruction 

Lignes 800 a 1130 : le jeu 

Le programme dessine a I'ecran la piece X,Y a partir du 
tableau A. La variable DA donnant le point d'arrivee, la 
ligne 950 ou 980 ou 1010 affiche le mot SORTIE au-dessus 
de la porte concernee. 

Si vous etes deja passe dans une piece ( B(X,Y)=1 ), on 
affiche en plus la trace de vos pas. 

Les lignes 1040 a 1 130 saisissent la direction que vous 
voulez prendre. En cas d'impossibilite, on revient en ligne 
1040. 

Lignes 1200 a 1340 : dessin du labyrinthe 

Si vous avez trouve la sortie (Y=21), le programme affiche 
le labyrinthe complet vu de dessus et en mettant un point 
dans les pieces ou vous etes passe (renseignements 
donnes par le tableau B). 



86 



Super jeux Amstrad 




CHIEN 
DE BERGER 



Ce jeu a pour inspiration les fameuses competitions de 
chiens de berger en Ecosse. 

Le gagnant est celui qui ramene le plus vite possible tout 
un troupeau de moutons dans son enclos. 

Ici le chien de berger peut diriger de cinq a neuf moutons 
selon les parties. Vous devez le deplacer avec les quatre 
fleches et valider le mouvement en tapant sur ENTER. 

A ce moment tous les moutons bougent et seuls ceux qui 
sont vraiment pres de I'enclos y penetrent definitivement. 
Les autres s'eparpillent de plus en plus dans le paturage et 
le pauvre chien n'a plus qu'a les rabattre a nouveau vers 
I'enclos. 

Bien sur, il s'agit d'utiliser le moins de coups possible. Le 
nombre d'essais s'affiche d'aiHeurs des que tous les 
moutons sont dans I'enclos. 















1; 


It 

♦ ♦ 

1 

. 1 

M 1 
t d 1 i 
♦ ♦ 


;/ 


V 


r ■■■♦■ -■'■ t t f f f f I 

*- ' 


J 



Super jeuxAmstrad 87 



16 REM CHIEN DE BERGER 

20 REM 

30 MODE 1:INK 0,1:INK 1,15:PAPER 0:PEN l:BORDER 1 

40 DIM X(10),Y(10) 

50 F = 

60 E=0 

70 SYMBOL AFTER 128 

80 SYMBOL 128,0,4,6,124,188,164,18,0 

90 SYMBOL 129,0,2,67,62,62,62,34,9 

100 SYMBOL 130,24,60,126,255,255,126,60,24 

110 SYMBOL 131,56,124,56,56,16,124,254,187 

120 SYMBOL 132,185,249,57,41,41,41,41,239 

130 SYMBOL 133,255,255,255,255,255,255,255,255 

140 SYMBOL 134,0,24,24,24,24,24,24,0 

150 RANDOMIZE TIME 

180 REM 

190 REM DESSIN DU JEU 

200 PLOT 6,6:DRAW 632,6:DRAW 632,392:DRAW 6,392:DR 

AW 6,6 

210 PLOT 8,8:DRAW 630,8:DRAW 630,390:DRAW 8,390:DR 

AW 8,8 

220 LOCATE 1,1:PRINT CHR$( 133) : LOCATE 40,1:PRINT C 

HR$(133) 

230 LOCATE 1,25:PRINT CHR$( 133) ;: LOCATE 40,25:PRIN 

T CHR$(133) ; 

240 FOR 1=5 TO 38 STEP 5 

250 LOCATE I,1:PRINT CHR$ ( 130) : LOCATE I,25:PRINT C 

HR$(130); 

260 IF K25 THEN LOCATE 1, I: PRINT CHR$( 130) : LOCATE 

40,I:PRINT CHR$(130) 
270 NEXT I 

280 REM 

290 REM AFFICHE BERGER, CHIEN, MOUTONS 

300 X=INT(RND(l)«13)+2 

310 Y=INT(RND(l)»19)+2 

320 LOCATE X,Y:PRINT CHR$ ( 131 ): LOCATE X,Y+1:PRINT 

CHR$(132) 

330 V=INT(RND(l)«10)+16:W=INT(RND(l)*15)+2 

340 LOCATE V,W:PRINT CHRS(130) ; " " ; CHR$(130) 

350 FOR I=W+1 TO W+4:L0CATE V+5,I:PRINT CHR$(134): 
NEXT I 

360 LOCATE V,W+5:PRINT CHR$(130) ; H " ; CHR$(130) 

370 W=W+1 

380 N=5+INT(RND(1)«5) 

390 FOR 1=1 TO N+l 

400 X(I)=INT(RND(l)»14)+2 

410 Y(I)=INT(RND(l)*20)+2 

420 IF TEST(X(I)»16-8,408-Y(I)»16)<>0 THEN 408 

430 IF I=N+1 THEN LOCATE X( I ) , Y( I ) : PRINT CHR$(128) 

:X=X(I):Y=Y(I):GOTO 450 

440 LOCATE X( I ) , Y( I ) : PRINT CHR$(129) 

450 NEXT I 

480 REM 

490 REM DEPLACE CHIEN ET MOUTONS 
500 D$=INKEY$:IF D$="" THEN 500 
510 IF D$=CHR$(13) THEN E=E+l:GOTO 580 
520 LOCATE X,Y:PRINT ■ " 



88 Super jeux/ ^trad 



530 IF D$=CHR$ 
16)=0 THEN X=X 
540 IF D$=CHR$ 
16)=0 THEN X=X 
550 IF D$=CHR$ 
16)=0 THEN Y=Y 
560 IF D$=CHR$ 
16)=0 THEN Y=Y 
570 LOCATE X,Y 
FOR J=l TO 
F = 

FOR 1=1 TO 
LOCATE X(I 
IF X(I)<V 
IF Y(I)<W 
F = F+1 

IF TEST((X 
X(I)=X(I)+ 
GOTO 790 
AX=X(I):AY 
IF Y(I)=2 



580 
590 
600 
610 
620 
630 
640 
650 
660 
670 
680 
690 
700 
710 
720 
730 
740 
750 
760 
770 
780 
790 
800 
810 
820 
830 
880 
890 

900 

910 

T:NEXT 

920 IF INKEY$= 

930 RUN 



(242) THEN IF TEST( (X-l )«16-8 f 408-Y« 
-1 

(243) THEN IF TEST( (X+l )«16-8, 408-Y* 
+ 1 

(240) THEN IF TEST(X»16-8, 408-( Y-l )• 
-1 

(241) THEN IF TEST(X»16-8, 408-(Y+l )• 
+ 1 

PRINT CHR$(128):60T0 508 
5 



IF 
IF 
IF 
IF 
IF 
IF 
IF 
IF 



Y(I)=24 
Y<Y(I) 
Y>Y(I) 
X(I)=2 
X(I)=39 
X<X(I) 
X>X(I) 
TEST(X( 
X(I)=AX:Y( 
LOCATE X(I 
NEXT I 
IF F=N THE 
NEXT J 
GOTO 500 

REM 

REM FIN 
LOCATE 15, 
FOR 1=1 TO 



),Y(I):PRINT ■ " 

OR X(I)>V+4 THEN 680 

OR Y(I)>W+3 THEN 680 

(I)+l)*16-8,408-Y(I)*16)<>0 THEN 790 
1 

= Y(I) 

THEN Y(I)=3:GOTO 770 

THEN Y(I)=23:GOTO 770 
THEN Y(I)=Y(I)+1 
THEN Y(I)=Y(I)-1 
THEN X(I)=3:GOTO 770 

THEN X(I)=38:G0T0 770 
THEN X(I)=X(I)+1 
THEN X(I)=X(I)-1 
I)*16-8,408-Y(I)«16)=0 THEN 790 
I) = AY 
),Y(I):PRINT CHR$(129) 

N 906 



23:PRINT E; "ESSAIS"; 
20:PRINT CHR$(7);:F0R J=l TO 20:NEX 

" THEN 920 



LlSTE 
DES VARIABLES : 



AX et AY anciennes coordonnees d'un mouton avant 

deplacement 

D$ derniere touche appuyee 

E nombre d'essais 

F nombre de moutons dans la bergerie 

I indice de boucle FOR/NEXT 

J indice de boucle FOR/NEXT 

N nombre de moutons 

V et W coordonnees de la bergerie 

XetY coordonnees du chien 

X() et Y() coordonnees des moutons 



SupaMeux Amstrad 89 



Programme 



Lignes 30 a 150 : initialisation 

Apres le dimensionnement des tableaux X et Y pour 
connaitre a tout moment la position des moutons, on 
definit par SYMBOL les caracteres graphiques. 

Le compteur F donne le nombre de moutons deja dans la 
bergerie, tandis que E compte le nombre d'essais a chaque 
partie. 

Lignes 200 a 270 : dessin du jeu 

Cette partie du programme affiche a I'ecran la cloture du 
paturage ou se trouvent les moutons avec les caracteres 
graphiques definis dans I'initialisation. 

Lignes 300 a 450 : affiche berger, chien et moutons 

Ces trois elements sont affiches sur I'ecran a des positions 
aleatoires. Les coordonnees du chien sont sauvegardees 
dans les variables X et Y, et celles des moutons dans les 
tableaux X() et Y(). C'est la variable N qui determine le 
nombre de moutons (entre 5 et 9). 

La bergerie est aussi deplacee a chaque partie. Ses 
coordonnees sont conservees dans les variables V et W. 

Lignes 500 a 570 : deplacement du chien 

La touche appuyee etant stockee dans la variable D$, on 
modifie en consequence les variables X et Y si aucun 
element sur I'ecran ne s'y oppose (teste par TEST). 

Si cette touche correspond a ENTER du clavier (code 13), 
on va en 580 pour le deplacement des moutons. 

Lignes 580 a 830 : deplacement des moutons 

Chaque mouton est deplace a tour de role cinq fois de suite 
dans la direction qui I'eloigne le plus du chien. 

S'il se trouve dans la bergerie (coordonnees V et W), on 
incremente le compteur F. Le mouton ne peut alors plus en 
sortir. 

Si le compteur F est egal a N, on va directement a la ligne 
900 pour latin du jeu. 

Dans le cas contraire, on revient en ligne 500 pour un 
nouvel essai. 



90 Super jeuxAmstrad 




MISSIONNAIRES 

ET 

CANNIBALES 



Ne vous fiez pas a la mine angelique des six personnages 
qui vont apparaitre sur votre ecran. En effet, les trois 
cannibales guettent le premier moment d'inattention des 
trois missionnaires pour les precipiter dans leurs marmites 
bouillantes. 

Pourrez-vous les faire tous passer sur I'autre rive en 
sachant que les missionnaires ne doivent jamais etre en 
minorite sur I'une des deux berges ? 

Vous avez a votre disposition une barque qui ne peut 
prendre plus de deux passagers par traversee. A chaque 
voyage, I'ordinateur vous demande le nombre de 
cannibales ou de missionnaires a installer dans la barque 
(tapez 1 pour cannibale, 2 pour missionnaire et s'il n'y a 
pas de deuxieme passager). Puis la barque deposera ses 
voyageurs sur I'autre rive et devra en ramener au moins un 
sur la premiere. 

Attention : des que les cannibales deviennent plus 
nombreux que les missionnaires sur I'une des rives, ils 
entralnent automatiquement leurs prisonniers dans leurs 
marmites. Dans ce cas, tapez sur n'importe quelle touche 
et vos personnages ressusciteront pour un nouvel essai. 
A vous de trouver la meilleure tactique. 








Q 



PASSAGER 1 CHN.zl/MIS.-E ? 



Super jeux Amstrad 91 



18 REM MISSIONNAIRES & CANNIBALES 

20 REM 

30 SYMBOL AFTER 128:60SUB 900 

40 C(1)=0:C(2)=12:C(3)=0:C(4)=12 

50 P(1)=-1:P(2)=5:P(3)=27:P(4)=33 

60 B=1:B(1)=14:B(2)=22 

70 M(1)=3:M(2)=3 

80 MODE 1:INK 0,1:INK 1,15:PAPER 0:PEN l:BORDER 1 

90 PLOT 0, 150: DRAW 200, 150 

100 PLOT 442,150:DRAW 636,150 

110 LOCATE 5,17:PRINT CHR$( 157) ; CHRS( 158) : TAB(33) ; 

CHR$(157) ; CHR$(158) 

120 LOCATE 5,18:PRINT CHRS ( 159) ; CHR$( 160 ) ; TAB ( 33 ) : 

CHR$(159) ; CHR$(160) 

180 REM 

190 REM LE JEU 

200 LOCATE B(B),14:PRINT " 

210 LOCATE B(B)-1,15:IF B=l THEN PRINT CHR$(155) ; " 

■ ELSE PRINT " \CHR$(156) 
220 LOCATE B(B) , 16: PRINT CHR$( 152 ) ; CHR$( 153) ; CHR$( 
153);CHR$(153);CHR$(153);CHR$(154) 
230 GOSUB 700 

240 IF M(3)+M(4)=6 THEN 500 

250 IF (M(1)>M(2) AND M(2)<>0) OR (M(3) >M(4) AND 
M(4)<>0) THEN 600 
260 FOR 1=1 TO 2 

270 LOCATE 1,21:PRINT CHR$ ( 18 ) ; "PASSAGER" ; I : "CAN. = 
1/MIS.=2 ? "; 

280 P$=INKEYS:IF P$="" THEN 280 ELSE P=VAL(P$):IF 
P<0 OR P>2 THEN 280 
290 IF 1=1 AND P=0 THEN 280 
300 IF P=0 THEN 380 
310 IF B=2 THEN 340 
320 IF M(P)=0 THEN 280 
330 M(P)=M(P)-l:GOTO 360 
340 IF M(B+P)=0 THEN 280 
350 M(B+P)=M(B+P)-1 

360 LOCATE B(B) -1 + 2*1 , 14: PRINT CHR$ ( C (P ) + 128 ) : CHR$ 
(C(P)+129) 

370 LOCATE B( B ) -1 + 2*1 , 15: PRINT CHR$ ( C ( P ) +1 30 ) : CHR$ 
(C(P)+131) 
380 NEXT I 

390 LOCATE 1,21:PRINT CHR${18) 
400 GOSUB 700 

410 LOCATE B(B),14:PRINT " ":LOCATE B(B ) -1, 1 
5:PRINT M ":LOCATE B( B ), 16: PRINT " 
420 B=B+1: IF B=3 THEN B=l 

430 IF B=2 THEN M( 3 )=3-M( 1 ) : M( 4 ) =3-M( 2 ) : GOTO 200 
440 M(l)=3-M(3):M(2)=3-M(4):GOTO 200 

480 REM 

490 REM GAGNE 

500 LOCATE 4,20:PRINT"VOUS AVEZ ECHAPPE A LA MARMI 

TE" 

510 PRINT CHR$(7):LINE INPUT A$ 

520 RUN 

92 I Super jeux Amstrad 



580 REM 

590 REM PERDU 

600 LOCATE 4, 20: PRINT "VOUS AVEZ FINI DANS LA MARM 

ITE" 

610 PRINT CHR${7):LINE INPUT A$ 

620 RUN 

680 REM 

690 REM AFFICHE LE OEU 

700 FOR 1=1 TO 4 

710 FOR J=l TO 3 

720 G=C(I)+128 

730 FOR K=10 TO 15 

740 IF J<=M(I) THEN LOCATE P{ I )+ J*2, K: PRINT CHR$(G 

) ; CHR$(G+l):GOTO 760 

750 LOCATE P ( I )+0*2, K: PRINT " " 

760 G=G+2 

770 NEXT K, J, I 

780 RETURN 

880 REM 

890 REM GRAPHIQUES 

900 SYMBOL 128,3,15,31,207,127,207,31,60 

910 SYMBOL 129,0,192,224,204,248,204,224,240 

920 SYMBOL 130,96,64,92,67,72,79,32,24 

930 SYMBOL 131,24,8,232,8,72,200,16,96 

940 SYMBOL 132,4,4,4,8,24,16,32,32 

950 SYMBOL 133,128,128,128,64,96,32,16,16 

960 SYMBOL 134,72,72,88,152,168,72,16,16 

970 SYMBOL 135,72,72,104,100,84,72,32,32 

980 SYMBOL 136,31,31,31,31,31,20,20,20 

990 SYMBOL 137,224,224,224,224,224,160,160,160 

1000 SYMBOL 138,20,20,20,20,20,20,120,248 

I, 160, 160,160, 160, 160, 160, 120,124 
i.l 5, 48, 64, 192, 2 55 ,170, 128, 156 
,240,12,2,3,255,171,1,57 
, 129,129,145,136,68,163,144,72 
1,129,129,137, 17,34,197,9,18 
1,36,20,52,79, 128,128,128,128 
i, 36, 40, 44, 242, 1,1,1,1 
., 140, 148, 148, 148, 148,148, 143, 129 
,49,41,41,41,41,41,241,129 
1,128,128,255,32,32,32,32,32 
l, 1,1,255,4,4,4,4,4 
i,32, 32,63, 12,12,12, 124, 124 
,4,4,252,48,48,48,62,62 
1,255,128, 128,64,32, 16,8,7 
:,255,0, 0,0, 0,0, 0,255 
,255, 1, 1,2,4,8, 16,224 
,16, 16,56,20,20,18,18,1/ 
.,2,2,7, 10, 10, 18,18,34 
,9,4,9,63,224, 160,96,48 
:,32, 144,32,240,28,20,24,48 
1,47,32,32,42,191,85,42,85 
',208, 16, 16, 176, 244, 168,80, 168 



1010 SYMBOL 139, 

1020 SYMBOL 140, 

1030 SYMBOL 141 

1040 SYMBOL 142, 

1050 SYMBOL 143, 

1060 SYMBOL 144, 

1070 SYMBOL 145, 

1080 SYMBOL 

1090 SYMBOL 147, 

1100 SYMBOL 148, 

1110 SYMBOL 149, 

1120 SYMBOL 150, 

1130 SYMBOL 

1140 SYMBOL 152, 

1150 SYMBOL 153, 

1160 SYMBOL 

1170 SYMBOL 155, 

1180 SYMBOL 156, 

1190 SYMBOL 157, 

1200 SYMBOL 158, 

1210 SYMBOL 

1220 SYMBOL 160, 

1230 RETURN 



Super jeux Amstrad 



93 



Programme 



Lignes 30 a 120 : initialisation 

Apres la definition des graphiques (sous-programme en 
900), on delinit les tableaux C, P, B et M pour connaTtre a 
tout moment la composition du jeu sur chaque berge (M), 
leurs positions sur I'ecran (P), les caracteres graphiques 
qui les composent (C) et la position sur I'ecran de la 
barque (B). 

Lignes 200 a 440 : le jeu 

La variable B donnant le numero de la berge (B=1 gauche, 

B=2 droite), on affiche la barque a B(B). Puis les 

personnages sont affiches par le sous-programme en 700 

en fonction de M() et a la position P(). 

Des la ligne 240, on verifie s'ils sont tous sur la berge de 

droite. Si c'est le cas, on va en ligne 500 pour un message 

de felicitations. 

La ligne 250, elle, teste si le nombre de cannibales n'est 

pas superieur a celui des missionnaires. C'est en ligne 600 

que Ton va, dans ce cas. 

Puis, c'est la saisie des passagers effectuee par une boucle 

FOR/NEXT. On verifie bien evidemment qu'il y ait au moins 

un passager (ligne 290) et qu'il existe bien sur la berge les 

voyageurs que Ton veut embarquer (lignes 310 a 350). 

Ces verifications etant faites, on affiche leurs tetes sur la 

barque (lignes 360 et 370). 

Pour finir cette partie du programme, on affiche a nouveau 

les personnages (sous-programme en 700), on efface la 

barque et on reajuste le tableau M suivant le numero de la 

berge. 

Lignes 700 a 780 : affiche le jeu 

En fonction des tableaux M, P et C, on affiche a I'ecran les 
six personnages sur les deux berges. La variable G pointe 
le premier des caracteres graphiques. 



LlSTE 


B 


numeros de berges: B=1 berge gauche, B=2 


DES VARIABLES : 


B() 


berge droite 

position des berges sur I'ecran 




CO 


numeros des caracteres graphiques 
correspondant a M() 




G 
I 


pointeur des caracteres graphiques 
indice de boucle FOR/NEXT 




J 


indice de boucle FOR/NEXT 




K 


indice de boucle FOR/NEXT 




M() 


position des missionnaires et des cannibales 
sur chaque berge 




P$ 


demiere touche enfoncee 




P 


choix des passagers 




P() 


position de chaque personnage sur I'ecran 


94 I SuperjeuxA 


nstrad 






PARITES 



Des que vous aurez rentre le nombre de joueurs (jusqu'a 
5) et leurs prenoms, seize paires de figures diverses 
(cartes, telephone, piece de monnaie...) se dessinent faces 
cacheessurvotreecran. 

Elles se presentent sur quatre lignes de huit colonnes, le 
but du jeu etant de retrouver les seize paires melangees. 

Pour cela il faut retourner chacun a son tour deux cartes de 
fagon a situer les positions des paires pour les 
reconstituer. 

Amstrad demande les coordonnees des cartes sous forme 
du numero de ligne, puis du numero de colonne. 

II refuse les cartes deja mises en paire et celles dont les 
coordonnees sont erronees. 

Dans le cas ou I'un des joueurs trouve une paire, les cartes 
sont effacees de I'ecran. 

Chaque paire trouvee fait obtenir un point et le gagnant 
peut rejouer. 

Quand toute la grille est vide, les resultats de tous les 
joueurs s'affichent. 

Ce jeu, apparemment simple, demande cependant une 
grande patience et une grande attention. 




SOPHIE < 2 PTS ) 

CARTE 2 :LIGNE(3>,COLONNEC8) 



Super jeux Amstrad 95 



10 REM PARITES 

20 REM 

38 SYMBOL AFTER 128:G0SUB 1200 

40 MODE 1:INK 0,1:INK 1,24:INK 2, 6: INK 3,15:PAPER 

0:PEN l:BORDER 1 

50 NJ=0:TP=0 

60 INPUT "NB DE JOUEURS ";JN 

70 IF JN<2 OR JN>5 THEN PRINT'ENTRE 2 ET 5": GOTO 6 



80 FOR 1=1 TO JN 

90 CLS:PRINT "NOM DU OOUEUR" ; I; : INPUT N$(I) 

100 NEXT I 

110 A$(1)=CHR$(196)+CHR$(193)+CHR$(193)+CHR$(197) 

120 A$(2)=CHR$(195)+" M +CHR$( 194) : A$(3 )=A$(2) 

130 A$(4)=CHR$(197)+CHRS(192)+CHR$(192)+CHR$(196) 

180 REM 

190 REM INITIALISATION 

200 RANDOMIZE TIME 

210 K = 

220 FOR 1=1 TO 4 

230 FOR J=l TO 4 

240 C(I, J)=K:C(I+4, J)=K 

250 K=K+4 

260 NEXT J, I 

270 CLSrLOCATE 7,11: PRINT "MELANGE DES CARTES:" 

280 FOR 1=1 TO 120 

290 L1=INT(RND*4)+1 

300 L2=INT(RND*4)+1 

310 C1=INT(RND*8)+1 

320 C2=INT(RND*8)+1 

330A=C(C1,L1):C(C1,L1)=C(C2,L2):C(C2,L2)=A 

340 LOCATE 26,11:PRINT 120-1;" " 

350 NEXT I 

380 REM 

390 REM AFFICHE LES CARTES 

400 CLS:PEN 3 

410 FOR 1=1 TO 8:PRINT TAB( 1+1*4) ; I ; : NEXT I 

420 FOR J=0 TO 3 

430 PEN 3:LOCATE 3, 3+J*4: PRINT J+l 

440 FOR 1=0 TO 7 

450 FOR K = l TO 4 

460 PEN lrLOCATE 5+1*4, 1+J*4+K: PRINT A$(K) 

470 NEXT K,I,J 

580 REM -- 

590 REM LE JEU 

600 NO=NJ+l:IF NJ>ON THEN NJ=1 

610 LOCATE 1,20:PRINT CHR$( 18) ; N$( NJ) ; " (" ; P(NJ) ; " 

PTS ) 

620 FOR 1=1 TO 2 

630 LOCATE 1 1 21 : PRINT "CARTE " ; I ; " : L IGNE ( ),COLONNE 



96 I Super jeux Amstrad 



640 A$=INKEY$: IF A$="" THEN 640 ELSE Y(I)=VAL(A$) 

650 IF Y(I)<1 OR Y(I)>4 THEN 640 

660 LOCATE 16, 21: PRINT A$ 

670 A$=INKEY$:IF A$="" THEN 670 ELSE X( I )=VAL( A$ ) 

680 IF X(I)<1 OR X(I)>8 THEN 670 

690 LOCATE 27,21:PRINT A$ 

700 IF C(X(I),Y(I))=-1 THEN 630 

710 IF 1=2 AND X(1)=X(2) AND Y(1)=Y(2) THEN 630 

720 C=C(X(I),Y(I))+128 

730 PEN 2.-LOCATE 2+X( I )*4, Y( I )*4-l : PRINT CHR$(C):C 

HR$(C+2) 

740 LOCATE 2+X( I )*4, Y( I )*4: PRINT CHR$( C+l ) , CHR$( C+ 

3):PEN 1 

750 NEXT I 

760 FOR 1=1 TO 600: NEXT I 

770 IF C(X(1),Y(1))=C(X(2),Y(2)) THEN 830 

780 FOR 1=1 TO 2 

790 LOCATE 2+X( I )*4, Y{ I )*4-l : PRINT " " 

800 LOCATE 2+X(I)*4,Y(I)*4:PRINT " " 

810 NEXT I 

820 GOTO 600 

830 P(NJ)=P(NJ)+1 

840 FOR 1=1 TO 2 

850 FOR J=l TO 4 

860 LOCATE 1+X( I )*4 T J+Y( I )*4-3: PRINT " 

870 NEXT J, I 

880 C(X(1),Y(1))=-1:C(X(2),Y(2))=-1:TP=TP+1 

890 IF TP<16 THEN 610 

980 REM 

990 REM RESULTATS 

1000 CLS 

1010 LOCATE 14, 5: PRINT "RESULTATS" 

1020 LOCATE 5,8:PRINT "NOM" ; TAB ( 20 ); "POINTS " 

1030 FOR 1=1 TO JN 

1040 LOCATE 5,9+I*2.-PRINT N$( I ) ; TAB( 20 ) : P ( I ) 

1050 P(I)=0 

1060 NEXT I 

1070 LINE INPUT A$ 

1080 TP=0:GOTO 200 

1180 REM 

1190 REM GRAPHIQUES 

1200 SYMBOL 128,7,5,7,1,15,31,51,99 

1210 SYMBOL 129,111,7,7,3,3,3,3,15 

1220 SYMBOL 130,240,176,240,192,248,252,230,227 

1230 SYMBOL 131,227,224,96,96,96,96,96,120 

1240 SYMBOL 132,0,0,7,4,4,31,16,19 

1250 SYMBOL 133,19,16,16,19,18,18,16,31 

1260 SYMBOL 134,0,192,224,32,34,250,10,202 

1270 SYMBOL 135,202,10,10,206,72,72,8,248 

1280 SYMBOL 136,0,3,13,16,32,32,64,97 

1290 SYMBOL 137,65,33,32,16,13,3,0,0 

Super jeux Amstrad 97 



1300 SYMBOL 138,0,128,96,16,56,72,132,12 

1310 SYMBOL 139,4,8,8,16,96,128,0,0 

1320 SYMBOL 140,0,3,12,16,33,35,69,65 

1330 SYMBOL 141,65,65,33,33,16,12,3,0 

1340 SYMBOL 142,0,192,48,8,4,116,66,98 

1350 SYMBOL 143,66,66,4,4,8,48,192,0 

1360 SYMBOL 144,0,63,196,159,228,9,18,36 

1370 SYMBOL 145,40,40,36,34,33,32,63,24 

1380 SYMBOL 146,0,252,35,249,39,144,72,36 

1390 SYMBOL 147,20,20,100,100,148,4,252,24 

1400 SYMBOL 148,127,64,84,92,72,64,64,66 

1410 SYMBOL 149,67,65,64,84,92,72,64,127 

1420 SYMBOL 150,252,4,84,116,36,4,4,132 

1430 SYMBOL 151,132,4,4,84,116,36,4,252 

1440 SYMBOL 152,255,68,68,255,17,17,255,68 

1450 SYMBOL 153,68,255,17,17,255,68,68,255 

1460 SYMBOL 154,255,68,68,255,17,17,255,68 

1470 SYMBOL 155,68,255,17,17,255,68,68,255 

1480 SYMBOL. 156,63,32,36,32,32,36,32,63 

1490 SYMBOL 157,32,32,32,32,36,32,63,0 

1500 SYMBOL 158,252,4,36,4,4,36,4,252 

1510 SYMBOI 159,4,36,4,4,4,4,252,0 

1520 SYMBOL 160,3,6,10,18,34,74,130,146 

1530 SYMBOL 161,131,164,137,144,164,192,255,0 

1540 SYMBOL 162,255,1,73,1,73,1,73,1 

1550 SYMBOL 163,255,2,36,8,144,32,192,0 

1560 SYMBOL 164,1,64,200,48,25,141,95,35 

1570 SYMBOL 165,83,139,11,3,3,3,3,7 

1580 SYMBOL 1 66, 32, 162, 68, 136, 52, 227, 128, 241 

1590 SYMBOL 167,202,164,146,168,128,128,128,192 

1600 SYMBOL 168,0,0,12,30,63,127,127,63 

1610 SYMBOL 169,30,12,0,0,0,0,0,0 

1620 SYMBOL 170,7,26,100,132,8,136,144,16 

1630 SYMBOL 171,24,60,126,255,255,126,60,24 

1640 SYMBOL 172,0,0,3,1,1,1,1,1 

1650 SYMBOL. .173,7,3,7,31,11,23,44,120 

1660 SYMBOL 174,128,128,224,64,192,64,192,64 

1670 SYMBOL 175,240,96,240,252,104,244,26,15 

1680 SYMBOL 176,63,96,192,135,140,152,248,152 

1690 SYMBOL 177,24,48,96,192,255,1,3,3 

1700 SYMBOL 178,252,6,3,225,49,25,31,25 

1710 SYMBOL 179,24,12,6,3,255,128,192,192 

1720 SYMBOL 180,0,1,19,31,255,127,63,31 

1730 SYMBOL 181,31,31,31,63,63,127,31,0 

1740 SYMBOL 182,192,224,252,255,254,254,254,252 

1750 SYMBOL 183,252,252,254,254,255,252,128,0 

1760 SYMBOL 184,0,0,0,0,0,7,31,127 

1770 SYMBOL 185,127,255,255,255,255,255,127,62 

1780 SYMBOL 186,0,7,24,44,206,199,131,129 

1790 SYMBOL 187,128,192,192,192,128,128,0,0 

1800 SYMBOL 188,1,7,15,63,255,80,76,69 



98 



Super jeux Amstrad 



1810 SYMBOL 189,65,65,73,68,35,17,8,7 

1820 SYMBOL 190,0,192,224,248,254,20,102,70 

1830 SYMBOL 191,6,6,38,70,138,21,39,197 

1840 SYMBOL 192,0,0,0,0,0,0,0,255 

1850 SYMBOL 193,255,0,0,0,0,0,0,0 

1860 SYMBOL 194,1,1,1,1,1,1,1,1 

1870 SYMBOL 195,128,128,128,128,128,128,128,128 

1880 SYMBOL 196,1,2,4,8,16,32,64,128 

1890 SYMBOL 197,128,64,32,16,8,4,2,1 

1900 RETURN 



LlSTE 
DES VARIABLES : 



A$ derniere touche appuyee 

A$( ) dessin des cartes 

C pointeur des caracteres graphiques pour 

I'affichage 
C(,) tableau des cartes 

C1 et C2 nombres al^atoires pour le melange des 

cartes 
I indice de boucle FOR/NEXT 

J indice de boucle FOR/NEXT 

JN nombredejoueurs 

K indice de boucle FOR/NEXT 

L1 et L2 nombres aleatoires pour le melange des 

cartes 
N$() nom des joueurs 

NJ numero du joueur 

P() total des points de chaque joueur 

TP total des points 

X() et Y() coordonnees des cartes choisies 



Super jeux Amstrad 99 



Programme 



Lignes 30 a 350 : initialisation 

Apres la definition des caracteres graphiques (sous- 
programme en 1200), on saisit au clavier le nombre et le 
nom des joueurs et on place dans le tableau A$( ) le dessin 
des cartes. 

Le numero des caracteres graphiques de chaque carte 
etant placS dans le tableau C(,), on melange ce dernier en 
utilisant les quatre nombres alfotoires C1 , C2, L1 et L2. 

Lignes 400 a 470 : affichage des cartes 

On affiche a I'Scran les 32 cartes avec les caracteres 
contenus dans le tableau A$. 

Lignes 600 a 820 : le jeu 

Apres la saisie dans la variable A$, les numeros de lignes 
et de colonnes sont places respectivement dans les 
tableaux Y()etX(). 

Dans le cas ou ces deux cartes sont identiques, on saute 
directement a la ligne 830; sinon, on les retourne apres 
une petite boucle d'attente. 

Lignes 830 a 890 : cas des cartes identiques 

On incremente le total des points du joueur (tableau P), 
puis Ton efface de I'ecran les cartes designees. 

Si le total des cartes effacees est inferieur a 16, on 
continue normalement le jeu mais en gardant le meme 
joueur (ligne 610 au lieu de 600). 

Lignes 1000 a 1080 : resultats 

On affiche le nom et le nombre de points de chaque joueur 
(tableaux N$ et P). 



100 



Super jeux Amstrad 




CHAMP DE 
CAROTTES 



C'est un jour d'hiver bien froid et maitre lapin ne voit plus 
qu'une carotte dans le fond du champ. II va essayer d'aller 
la deterrer, tout en sachant que les villageois ont tendu des 
pieges sous I'herbe. 

Heureusement qu'il porte sur lui son fidele detecteur 
electronique... 

Le detecteur inscrit en haut a gauche de I'ecran le nombre 
des pieges qui entourent le lapin, en comptant aussi tous 
ceux qui composent la bordure du champ. 

Vous n'avez plus qu'a guider logiquement votre lapin en 
utilisant les quatre touches de deplacement. 

Que vous ayez evite ou non les pieges, vous decouvrirez a 
chaque fin de jeu leur plan precis avec votre nombre 
d'essais parfois impressionnant. 

Si votre lapin, toujours affame, veut repartir a la recherche 
d'une autre carotte, appuyez sur ENTER. 




Super jeux Amstrad I 101 



10 REM CHAMP DE CAROTTES 

20 REM 

30 DIM E(40, 25): SYMBOL AFTER 128:G0SUB 800 

40 X(1)=1:X(2)=-1 

50 Y(3)=1:Y(4)=-1 

60 MODE 1:INK 6 f l:INK 1,24:INK 2,6:INK 3,8:PAPER 

:PEN lrBORDER 1 

70 RANDOMIZE TIME 

80 FOR 1=1 TO 100 

90 X=INT(RND*38)+2 

100 Y=INT(RND*19)+4 

110 IF E(X,Y)=1 THEN 90 

120 E<X,Y)=1 

130 NEXT I 

140 PEN 1 

180 REM 

190 REM AFFICHE LE JEU 

200 FOR 1=2 TO 40 

210 LOCATE I,2:PRINT CHR$( 129) : LOCATE I,24:PRINT C 

HR$(129) 

220 IF K25 THEN LOCATE 1,I:PRINT CHR$( 129) : LOCATE 

40,I:PRINT CHR$(129) 
230 NEXT I 
240 PEN lrLOCATE ?0,3:PRINT CHR$( 130) : PEN 2:LOCATE 

20 T 23:PRINT CHR$(128) 
250 X=20:Y=23 
260 E=0 

280 REM 

290 REM NB DE PIEGES 

300 P=0 

310 FOR 1=1 TO 4 

320 IF E(X+X(I),Y+Y(I))=1 OR TEST( ( X+X( I ) )*16-8, 40 

6-(Y+Y(I) )*16)=1 THEN P=P+1 

330 NEXT I 

340 LOCATE 5,1:PEN 2:PRINT " PI EGES: " ; : PEN 3:PRINT 

P; 

350 PEN 2:PRINT TAB(25) ; "ESSAIS: " ; : PEN 3:PRINT E:P 

EN 2 

380 REM 

390 REM DEPLACEMENTS 

400 A$=INKEY$:IF A$="" THEN 400 

410 IF A$=CHR$(243) THEN D=l:QOTO 460 

420 IF A$=CHR$(242) THEN D=2:QOTO 460 

430 IF A$=CHR$(241) THEN D=3:60T0 460 

440 IF A$=CHR$(240) THEN D=4 : G0T0 460 

450 GOTO 400 

460 PAPER 3: LOCATE X,Y:PRINI " ":PAPhR 

470 X = X + X(l>): Y = Y + Y(D) 

480 IF F(X,Y)=1 OR TEST ( X*l 6-8, 406-Y*l 6 ) = 1 THEN 60 



490 IOCATE X,Y:PRINT CHR$(128) 

102 Super jeuxAmstrad 



500 E=E+1 

510 GOTO 300 

580 REM 

590 REM FIN DE PARTIE 

600 IF X=20 AND Y=3 THEN FOR 1=500 TO 50 STEP -5:S 

OUND 1,1, 2: NEXT: GOTO 640 

610 FOR 1=0 TO 15 

620 PRINT CHR$(7);:B0RDER I:FOR J=l TO 60:NEXT 

630 NEXT I 

640 FOR 1=1 TO 39 

650 FOR J=3 TO 22 

660 IF E(I,J)=1 THEN LOCATE I,0:PRINT CHR$(129) 

670 NEXT J, I 

680 LINE INPUT A$ 

690 RUN 

780 REM 

790 REM GRAPHIQUES 

800 SYMBOL 128,231,36,60,126,98,126,36,24 

810 SYMBOL 129,120,204,230,179,153,141,199,254 

820 SYMBOL 130,36,36,24,60,60,60,60,24 

830 RETURN 



Super jeuxAmstrad 103 



Programme 



Liste 
des variables : 



Lignes 30 a 140 : initialisation 

On place dans les tableaux X() et Y() le nombre de 
caracteres de deplacement correspondant aux quatre ■ 
directions. 

Puis on place dans le tableau E les pieges a des positions 
aleatoires (100 pieges au total). 

Lignes 200 a 260 : affiche ie jeu 

Cette partie du programme affiche simplement des pieges 
au bord de I'ecran (visibles cette fois) ainsi que le lapin et 
la carotte. 
Les variables X et Y donnent la position exacte du lapin. 

Lignes 300 a 350 : nombre de pieges 

Pour connaitre le nombre de pieges autour du lapin, il 
suffit de tester le tableau E a I'aide des tableaux X et Y. 

Lignes 400 a 510 : (^placements 

Le caractere saisi au clavier etant stocke dans la variable 
A$, on modifie suivant sa valeur la variable D. 

Avant d'afficher le lapin, on place un carre violet sur son 
ancienne position. 

La ligne 480 teste si le lapin n'est pas sur un piege ou sur 
la carotte. 

Lignes 600 a 690 : fin de partie 

Quelle que soit Tissue du jeu, on affiche a I'ecran tous les 
pieges jusqu'alors invisibles en testant le tableau E. 



AS 


caractere saisi au clavier 


D 
E 


direction du deplacement 
nombre d'essais 


E() 
I 


position des pieges sur I'ecran 
indice de boucle FOR/NEXT 


J 


indice de boucle FOR/NEXT 


P 
XetY 


nombre de pieges autour du lapin 
coordonnees du lapin 


X()etY() 


nombre de caracteres de deplacement dans 
les 4 directions. 



104 



Super jeux Amstrad 



11/ 



« 



tf 



it- 




BALISTIQUE 



Prenez deux voisins qui ne s'entendent pas, leurs maisons 
et le murqui les separe. 

lis n'ont de cesse de s'envoyer reciproquement des 
projectiles afin de detruire I'habitation adverse. 

Selon les lois de la civilite, ils tirent chacun a leur tour, en 
reglant soigneusement leurs angle et puissance (de a 90) 
d'apres la force et le sens du vent qui souffle ce jour-la, et 
I'eloignement de lacible. 

Les deux joueurs qui les represented se servent des 
fleches gauche et droite et valident leurs coordonnees en 
appuyant sur ENTER. 

Le premier des deux adversaires qui detruit au moins 
10 elements d'une maison est considere comme gagnant. 

Qu'a cela ne tienne : la revanche ne va pas tarder ! 




Super jeux Amstrad 



105 



10 REM BALISTIQUE 

20 REM 

30 SYMBOL AFTER 128:60SUB 1300 

40 RANDOMIZE TIME 

50 MODE 1: INK 0,11:INK 1,24:INK 2,14:INK 3 f 15:PAPE 

R 2:PEN l:BORDER 11 

60 X=INT(RND*12)+1 

70 P(l)=X+5 

80 GOSUB 1000 

90 X=INT(RND*12)+24 

100 P(2)=X-1 

110 GOSUB 1000 

120 PAPER 0:PEN 3:PRINT-.PRINT STRING$(39, "-" ) 

130 FOR 1=8 TO 17:LOCATE 20,I:PRINT CHR$( 144) : NEXT 

I:PEN 1 
140 VV=INT(RND*5)+1 
150 SV=INT(RND+0.5) 
160 V(1)=VV:V(2)=VV:PEN 1 

170 IF SV=0 THEN V( 1 )=-V( 1 ): LOCATE 18,1:PRINT "<-■ 
:CHR$(VV+48); "- M :GOTO 190 

180 V(2)=-V(2):LOCATE 19, 1: PRINT"- "; CHR$(VV+48) ; "- 
>" 
190 PEN 1:S(1)=1:S(2)=-1 

200 A=1.74532925E-02 

210 J$(l)=" GAUCHE": J$(2)="DROITE B 

220 S$(1)="ANGLE":S$(2)="PUISSANCE" 

230 LOCATE 2,22 

240 FOR 1=1 TO 36:PRINT". - ; : NEXT I 

250 PRINTrPRINT" " ; 

260 FOR 1=15 TO 90 STEP 15 

270 PRINT MID$(STR$(I),2,2); " "; 

280 NEXT I: LOCATE 39, 23: PRINT » 

380 REM 

390 REM LE JEU 

400 IF J=l THEN 3=2 ELSE J=l 

410 GOSUB 1100 

420 R(1)=R(1)*3 

430 IX=COS(R(l)*A) 

440 IY=SIN(R(1)*A) 

450 X=P(0):Y=12 

460 FOR 1=1 TO R(2)+V(J) 

470 FOR K=l TO 30: NEXT: LOCATE INT( X) , INT(Y) : PRINT 

ii H 

480 X=X+IX*S(J) 

490 Y=Y-IY 

500 IF X<2 OR X>39 OR Y<2 OR Y>17 THEN 400 

510 Z=TEST(INT(X)*16-8,406-INT(Y)*16) 

520 IF Z<>0 THEN 800 

530 LOCATE INT( X ), INT(Y ): PRINT CHR$(145) 

540 NEXT I 

550 FOR 1=1 TO (R(2)-V(J)*S(J))/2 

106 I Super jeux Amstrad 



560 FOR K=l TO 39: NEXT: LOCATE INT(X) , INT(Y): PRINT 

570 X=X+IX*S(J) 

580 IF X<2 OR X>39 OR Y<2 OR Y>17 THEN 408 

590 Z=TEST(INT(X)*16-8,406-INT(Y)*16) 

600 IF Z<>0 THEN 880 

618 LOCATE INT(X),INT(Y):PRINT CHR$(145) 
620 NEXT I ' 

630 FOR K=l TO 30: NEXT: LOCATE INT(X) , INT(Y) : PRINT 

640 X=X+IX*S(J) 

650 Y=Y+IY 

660 IF X<2 OR X>39 OR Y<2 OR Y>17 THEN 400 

670 Z=TEST(INT(X)«16-8,406-INT(Y)*16) 

680 IF Z<>0 THEN 808 

698 LOCATE INT(X) , INT(Y) : PRINT CHR$(145) 

788 GOTO 638 

780 REM 

798 REM FIN OU TIR 

888 IF TEST(INT(X)»16-8,488-INT(Y)*16)=3 THEN 488 

818 IF Z<>2 AND Z<>1 THEN 488 

828 LOCATE INT(X) , INT(Y) : PRINT " " 

838 6(J)=G(J)+1:L0CATE 1+(J-1 )*30, 20: PRINT "PTS: W : 

G(J) 

848 IF G(J)<10 THEN 400 

858 LOCATE 6, 24: PRINT " LE OOUEUR DE ":J$(J) : » GAG 

NE ». ' 

868 IF INKEY$<>CHR$(13) THEN 868 

878 RUN 

988 REM 

998 REM AFFICHE LES MAISONS 

1800 FOR 1=0 TO 15 

1010 IF I/4=INT(I/4) THEN LOCATE X, 13+1/4 

1020 PRINT CHR$(128+I) ; 

1030 NEXT I 

1040 RETURN 

1080 REM 

1090 REM SAISIES DES DONNEES 

1100 FOR 1=1 TO 2 

1110 L0CATE ( 6,24:PRINT S$(I) ; « DU JOUEUR DE ";J$(J 

1128 Q=28 

1130 PAPER 1:PEN 0:LOCATE Q r 22:PRINT "." 

1148 A$=INKEY$:IF A$="" THEN 1140 

1150 IF A$=CHR$(13) THEN 1198 

1168 IF A$=CHR$(242) AND Q>2 THEN PAPER 8:PEN l:LO 

CATE Q,22:PRINT " . " : Q=Q-1 : GOTO 1138 

1178 IF A$=CHR$(243) AND Q<37 THEN PAPER 0:PEN 1:L 

OCATE Q,22:PRINT M . ":Q=Q+1 

1180 GOTO 1130 

1190 R(I)=Q 

Super jeux Amstrad 107 



1260 
1216 
1226 
1236 
1286 
1296 
1366 
1310 
1326 
1330 
1340 
1350 
1360 
1370 
1380 
1390 
1400 
1410 
1420 
1436 
1446 
1450 
1460 
1470 
1480 



PAPER 0:PEN 1: 
NEXT I 
R(2)=R(2)/2 
RETURN 

R£M 

REN 6RAPHIQUES 

SYMBOL 128,0,7 

SYMBOL 129 

SYMBOL 130 

SYMBOL 131 

SYMBOL 132 

SYMBOL 133 

SYMBOL 134 

SYMBOL 135 



LOCATE Q, 22: PRINT 



SYMBOL 136 

SYMBOL 137 

SYMBOL 138 

SYMBOL 139 

SYMBOL 146 

SYMBOL 141 

SYMBOL 142 

SYMBOL 143 

SYMBOL 144 

SYMBOL 145 
RETURN 



,7,7,7,7,7,7 
1,2,5,10,21,42,85,176 
0,128,64,166,80,168,84,170 
0,0,0,0,0,0,0,0 
7,6,5,10,21,42,85,255 
85,175,85,173,87,173,85,255 
85,234,85,106,213,106,85,255 
0,128,64,160,80,168,84,254 
128, 128, 159, 146, 146, 146, 159, 146 
0,6,207,73,73,73,207,73 
0,0,227,34,34,34,226,34 
2,2,242,18,18,18,18,18 
146, 146, 159, 128, 128, 128, 128, 255 
73,73,207,0,0,0,0,255 
34,34,226,2,2,2,2,255 
18,50,50,18,18,18,18,254 
255,146,255,36,255,73,255,36 
60, 126, 255, 255, 255, 255, 126, 60 



108 I 



LlSTE 


AS 


derniere touche enfoncee 




A 


conversion degres-radians 


3LES : 


G() 
I 


points de chaque joueur 
indice de boucle FOR/NEXT 




IX et IY 


increments horizontal et vertical 




J 


numero du joueur 




J$() 


nomdesjoueurs 




P() 


position des maisons 




Q 


pointeur sur I'echelle 




R() 


reponse angle et puissance 




SO 


type de donnee a saisir 




S${) 


nom des donnees a saisir 




sv 


sens du vent 




V() 


vitesse et sens du vent pour chaque joueur 




vv 


vitesse du vent 




XetY 


coordonnees de la pierre 




Z 


code du caractere sous la pierre 


Super jeux/ 


\mstrad 





Programme 



Lignes 30 a 280 : initialisation 

Apres la definition des caracteres graphiques par le sous- 
programme en 1300, on dessine sur I'ecran les deux 
maisons en utilisant le sous-programme en 1000 qui les 
affiche a la position X. 

Dans les lignes 140 a 220, on definit les principals 
variables utilisees dans le programme (voir liste des 
variables). 

Lignes 400 a 700 : le jeu 

Les increments verticaux et horizontaux du deplacement de 
la pierre sont calcules a partir de la variable A qui fait la 
conversion degres-radians. 

Le projectile est deplace en trois temps : la mont.ee (lignes 
460 a 540), I'horizontale (lignes 550 a 620) et la descente 
(lignes 630 a 700). Celles-ci utilisent tous les parametres 
deja calcules : increments, sens et vitesse du vent... 

On teste a chaque deplacement qu'aucun obstacle ne se 
trouvesurson chemin. 

Lignes 800 a 870 : fin du tir 

Si Tune des parties encore visible sur I'ecran est touchee, 
on incremente le compteur de points du joueur. Tant que 
celui-ci est inferieur a 10, on continue le jeu. 

Lignes 1100 a 1230 : saisie des donnees 

Ce sous-programme saisit Tangle et la puissance donnes 
au projectile par chaque joueur. Suivant la valeur du 
caractere saisi dans A$, on deplace le point vers la droite 
ou vers la gauche sur I'echelle du bas de I'ecran. Quand il 
s'agit de ENTER (code 13), on garde la derniere valeur de 
la variable Q. 



Super jeux Amstrad 



109 




PUISSANCE 4 



Vous connaissez surement le jeu « Puissance 4 » 
qu'Amstrad vous propose de jouer contre lui. 
II trace d'abord sur I'ecran une grille de 7 cases sur 6 et 
attend que vous tapiez le numero de la colonne oil tombera 
votre pion (un chiffre de 1 a 7). Puis c'est a son tour de 
jouer, et ainsi de suite. Les coups des deux joueurs 
s'affichent a droite de I'ecran. 

Le joueur qui reussit a aligner quatre pions verticalement, 
horizontalement, ou en diagonale, a gagne la partie. 

II suffit de taper sur n'importe quelle touche pour obtenir 
une nouvelle grille. 



i'_"t C) , ■■'" 

9-jL • ♦. _ ~ 

•■' o o o 

:j • O • O 



i ;a 3 4 5 e ? 



.J'ftI GAGNE 




110 I Super jeux Amstrad 



10 REM PUISSANCE 4 

20 REM 

30 SYMBOL. AFTER 128:DEFINT A-Z:GOSUB 1100 

40 MODE 1:INK 0,1:INK 1,24:INK 2,6:INK 3,15:PAPER 

0:PEN l:BORDER 1 

50 FOR 1=200 TO 424 STEP 32 

60 PLOT I,344:DRAW 424,344:DRAW 424,152:DRAW 1,152 

:DRAW 1,344 

70 IF K392 THEN PLOT 200, 544-1 : DRAW 424, 544-1: DRA 

W 424, 248: DRAW 200. 248: DRAW 200,544-1 

80 NEXT I 

90 PEN 3:LOCATE 14,17:PRINT "12 3 4 5 6 7" 

100 DIM P(8,7) 

110 E=l 

120 X(1)=0:Y(1)=-1:X(2)=-1:Y(2)=-1 
130 X(3)=1:Y(3)=-1:X(4)=-1:Y(4)=0 

180 REM 

190 REM LE JEU 

200 LOCATE 1,21:PRINT CHR$(18): 

210 IF E=2 THEN 400 

220 PEN l:LOCATE 13, 21 : PRINT"No DE COLONNE ?"; 

230 AS=INKEY$:IF A$="" THEN 230 ELSE A=VAL(A$) 

240 IF A<1 OR A>7 OR P(A,1)<>0 THEN 230 

250 QOSUB 788:J=A:C(J)=I:Z=E:60SUB 600:P(A,I)=E 

260 PEN 2 

270 FOR J=0 TO I 

280 LOCATE 12+A*2, 3+(J-l )*2: PRINT " " 

290 LOCATE 12+A»2, 3+J*2: PRINT CHR$(127+E) 

300 FOR K=l TO 300: NEXT K 

310 NEXT J: IF N>2 THEN 900 

320 PEN 3:LOCATE 27+E*4, 1+INT(T! ): PRINT A:T!=T!+0. 

330 IF T!=21 THEN 1000 

340 E=E+1:IF E = 3 THEN E=l 

350 GOTO 200 

380 REM 

390 REM COUP DE L'ORDINATEUR 

400 FOR J=l TO 7 

410 A=J:GOSUB 780:C(J)=I:IF 1=0 THEN C( J)=-2: G( J)= 

-l:GOTO 440 

420 Z=l:GOSUB 600:G(J)=N:Q(J)=O 

430 Z=2:GOSUB 600: H( J)=N: L ( 0) =0: IF N>2 THEN A=J: GO 

TO 250 

440 NEXT J:F=0 

450 A=1:F0R J=l TO 7: IF F=0 AND C(J)<0 THEN 490 

460 IF F=l AND C(J)<-1 THEN 490 

470 IF G(J)>G(A) THEN A=J:G0T0 490 

480 IF G(J)=G(A) AND L(0)>=L(A) AND Q(J)>=Q(A) THE 

N A= J 

490 NEXT J 

500 GOSUB 780:P(A,I)=E: J=A:IF C(J)-1=0 THEN P(A,I) 

=0:GOTO 530 

Super jeux Amstrad 111 



510 C(J)=C(J)-1:Z=1: GOSUB 600:P(A,I)=0:C(O)=C(J)+1 
520 IF N>2 THEN C( J)=-l : Q{ J) = -l : GOTO 450 
530 IF F=0 AND C(J)<0 THEN F=l:GOTO 450 
540 GOTO 250 

580 REM 

590 REM NB DE BLOCAGES 

600 N=0:O=0 

610 FOR K=l TO 4 

620 M=0:V=1 

630 X=J:Y=C(J) 

640 X=X+V*X(K):Y=Y+V*Y(K) 

650 IF X<1 OR X>7 OR Y<1 OR Y>6 THEN 680 

660 IF P(X,Y)<>Z THEN 680 

670 M=M+l:0=0+l:GOTO 640 

680 IF V=l THEN V=-l:GOTO 630 

690 IF M>N THEN N=M 

700 IF M>=3 THEN W=K 

710 NEXT K 

720 RETURN 

780 REM 

790 REM POSITION LIGNE 

800 FOR 1=1 TO 6 

810 IF P(A r I)<>0 THEN 830 

820 NEXT I 

830 1=1-1 

840 RETURN 

880 REM 

890 REM FIN DE PARTIE 

900 IF E=l THEN LOCATE 13,21:PRINT "VOUS AVEZ GAGN 

E":GOTO 920 

910 LOCATE 15,21:PRINT "O'AI GAGNE" 

920 V=l 

930 X=A: Y=I 

940 LOCATE 12+X*2, 3+Y*2: PRINT CHR$(W+129) 

950 X=X+V*X(W): Y=Y+V*Y(W) 

960 IF P(X,Y)=E THEN 940 

970 IF V=l THEN V=-l:GOTO 930 

980 IF INKEY$=" " THEN 980 

990 RUN 

1000 LOCATE 11,21:PRINT "PARTIE NULLE" 

1010 GOTO 980 

1080 REM 

1090 REM GRAPHIQUES 

1100 SYMBOL 128,60,66,129,129,129,129,66,60 

1110 SYMBOL 129,60,126,255,255,255,255,126,60 

1120 SYMBOL 130,16,16,16,16,16,16,16,16 

1130 SYMBOL 131,128,64,32,16,8,4,2,1 

1140 SYMBOL 132,1,2,4,8,16,32,64,128 

1150 SYMBOL 133,0,0,0,0,255,0,0,0 

1160 RETURN 



112 Super jeux Amstrad 



Programme 



Lignes 30 a 130 : initialisation 

Apres la definition des caracteres graphiques (sous- 
programme en 1100), les lignes 50 a 90 dessinent le 
damier. 

On place dans les tableaux X et Y le nombre de cases de 
deplacement pour les recherches de I'ordinateur. On 
obtient les huit directions en multipliant par moins un les 
quatre valeurs des tableaux X et Y. 

Lignes 200 a 350 : le jeu 

La variable E determine le tour du joueur (E=1) ou le tour 
de I'ordinateur (E=2). 

Les lignes 220 a 240 saisissent au clavier le choix du 
joueur et verifient sa reponse. 

Si celle-ci est correcte, on va au sous-programme en 780 
pour connaitre la position du pion, et au sous-programme 
en 600 pour savoir si quatre pions ont ete alignes. 

Si la variable N est superieure a 2 (au moins trois pions 
plus celui que Ton vient de jouer), on va en ligne 900 pour 
lafinde partie. 

Les lignes 260 a 320 affichent le pion dans la grille ainsi 
que le coup qui vient d'etre joue. 

On modifie alors la valeur de la variable E avant de 
retoumer au joueur suivant en ligne 200. 

Lignes 400 a 540 : coup de I'ordinateur 

L'ordinateur teste toutes les colonnes pour trouver la plus 
interessante (soit pour bloquer I'adversaire, soit pour 
gagner). 

II utilise pour cela le sous-programme en 780 pour 
connaitre I'emplacement d'un pion sur une colonne, ainsi 
que le sous-programme en 600 pour compter le nombre 
de pions alignes par lui ou par le joueur. 

Lignes 600 a 720 : nombre de blocages 

Ce sous-programme place dans la variable N le nombre 
maximum de pions alignes si Ton jouait dans la colonne J 
et pour les pions de type Z (Z=1 pion du joueur, Z=2 
pions de I'ordinateur). II effectue la meme chose pour la 
variable mais pour tous les pions (alignes ou non). Cette 
variable est utilisee comme coefficient si aucune colonne 
n'est interessante. 

La variable V qui passe de 1 a -1 permet d'etudier les huit 
directions avec les tableaux X et Y. 

Lignes 780 a 840 : position ligne 

Ce programme place dans la variable I le premier numero 
de ligne libre de la colonne designee par la variable A. 



Super jeux Amstrad 113 



LlSTE 
DES VARIABLES : 



A 


valeurnumeriquedeAS 


AS 


colonne choisie par le joueur 


CO 


conserve les numeros de ligne donnes par le 




sous-programme en 780 


E 


numero du joueur (E=1 pour le joueur, E=2 




pourAmstrad) 


F 


drapeau 


GO 


conserve les valeurs de la variable N pour 

Z=1 

conserve les valeurs de la variable N pour 

1=1 

indice de boucle FOR/NEXT 


HO 


1 


J 


indice de boucle FOR/NEXT 


K 


indice de boucle FOR/NEXT 


L() 


conserve les valeurs de la variable pour 

Z=2 

nombre de pions alignes 


M 


N 


nombre maximum de pions alignes autour de 




celuique I'on veut jouer 





nombre de pions autour de celui que Ton veut 




jouer 


P(,) 


emplacement de tous les pions sur la grille 


QO 


conserve les valeurs de la variable pour 

Z=1 

nombre de demi-coups deja joues 


T! 


V 


permet d'obtenir les huit directions avec les 




tableaux X et Y 


w 


direction dans laquelle les pions gagnants 




sont alignes 


XetY 


coordonnees des pions gagnants 


X()etY() 


nombre de cases de deplacement pour les 




quatre directions 


Z 


type de pion a analyser 



114 Super jeuxAmstrad 




BLOCAGES 



Votre Amstrad vous demande tout de suite de donner le 
niveau de difficult du jeu (entre 1 et 3). Apres votre choix, 
il dessine a I'ecran une grille de huit cases sur sept, puis le 
pion rouge du joueur et le pion orange d'Amstrad. 

Le jeu peut alors commencer. Un coup se deroule en deux 
phases : 

- vous deplacez d'une case et d'une seule votre pion a 
I'aide des quatre fleches de direction. 

- puis vous manceuvrez avec ces memes fleches le 
curseur clignotant, passant s'il le faut, sur des cases deja 
occupees. Vous validez a ce moment la case choisie pour 
bloquer votre adversaire en tapant sur ENTER. Quand vous 
jouez vous ne pouvez bloquer I'ordinateur que d'une case. 

Par contre, quand ce sera le tour d'Amstrad, il vous 
bloquera de une a trois cases a la fois suivant le niveau du 
jeu que vous avez choisi en debut de partie. 

Ne perdez pas courage, il y a une strategie pour bloquer 
votre adversaire meme au niveau trois ! 



J BLOCAGE NIVEAU: 


I \ 


/ 




















""p 






i 








■ 
































































y de 


PLACES UOTFJE PIO 


N / 



Super jeux Amstrad 115 



le REM BLOCAGE 

20 REM 

39 MODE 1:INK 0,1:INK 1,24:INK 2,6:INK 3,15:PAPER 

0: PEN 1: BORDER 1 

48 RANDOMIZE TIME 

58 PRINT TAB(15); "BLOCAGE" 

68 PRINT:PRINT:PRINT:PRINT 

78 PRINT" CHOISISSEZ VOTRE NIVEAU :": PRINT: PRINT 

88 PRINT:PRINT" 1- FACILE" 

98 PRINT: PRINT" 2- PAS EVIDENT" 

188 PRINT:PRINT" 3- VRAIMENT TRES DIFFICILE" 

118 LOCATE 15,21:PRINT"?" ; 

120 NIV=VAL(INKEY$):IF NIV<1 OR NIV>3 THEN 120 

188 REM 

198 REM DESSIN DU JEU 

288 CLS:PRINT TAB(11 ); "BLOCAGE NIVEAU: " ; NIV 

218 FOR X=l TO 8:F0R Y=l TO 7:PRINT CHR$(7) ; 

220 PLOT X*32+144,400-Y*32:DRAWR 32,8:DRAWR 8,-32: 

DRAWR -32,8:DRAWR 0,32 

238 NEXT Y,X 

248 XJ=3:YJ=4:X0=6:Y0=4 

250 X=XO:Y=YJ:C=2:GOSUB 1818 

268 X=XO:Y=YO:C=3:GOSUB 1810 

388 REM 

390 REM COUP DU JOUEUR 

400 REM DEPLACEMENT 

410 XX=XJ:YY=YJ: GOSUB I860: IF T=0 THEN PAPtR 0:LOC 

ATE 1,23:PRINT CHR$( 18) ; TAB( 12); "VOUS AVEZ PERDU ! 

":GOSUB 1040:WHILE INKEY$=" " : WEND: RUN 

420 PAPER 8:LOCATE 1,23:PRINT CHR$( 18) ; TAB( 11 ) ; "DE 

PLACEZ VOTRE PION" 

430 D$=INKEY$:IF D$="" THEN 430 ELSE D=ASC (D$) : AX= 

XJ:AY=YJ:X=XJ:Y=YJ 

440 IF D=242 THEN IF X>1 THEN X=X-1 

450 IF D=243 THEN IF X<8 THEN X=X+1 

460 IF 0=240 THEN IF Y>1 THEN Y=Y-1 

470 IF D=241 THEN IF Y<7 THEN Y=Y+1 

480 GOSUB 1050: IF P<>8 THEN GOSUB 1038: GOTO 430 

490 C=2:GOSUB 1010:GOSUB 1020: XJ=X: YJ=Y 

500 REM BLOCAGE D'UNE CASE 

510 PAPER 0:LOCATE 1,23:PRINT CHR$( 18) ; TAB( 12) ; "BL 

OQUEZ UNE CASE" 

520 X=4:Y=4 

530 GOSUB 1058:CC=P 

548 C=l:GOSUB 1818: D$=INKEY$: C=0: GOSUB 1010: IF D$= 

"" THEN 548 

558 C = CC:GOSUB 1010: D=ASC( D$ ) 

560 IF D=242 THEN IF X>1 THEN X=X-1 

570 IF D=243 THEN IF X<8 THEN X=X+1 

580 IF D=240 THEN IF Y>1 THEN Y=Y-1 

590 IF D=241 THEN IF Y<7 THEN Y=Y+1 

600 IF D<>13 THEN 530 

610 IF CC<>0 THEN GOSUB 1030:GOTO 540 

116 Super jeux Amstrad 



620 GOSUB 1000 

680 REM 

690 REM COUP DE L'ORDINATEUR 

700 REM DEPLACEMENT 

710 PAPER 0:LOCATE 1,23:PRINT CHR$(18) 

720 XX=XO:YY=YO: GOSUB 1060: IF T=0 THEN PAPER 0:LOC 

ATE 1,23:PRINT CHR$( 18) ; TAB( 14) ; " J' AI PERDU !":GOS 

UB 1040:WHILE INKEY$="": WEND: RUN 

730 AX=XO:AY=YO 

740 IF X0>1 THEN X=XO-l : Y=YO: GOSUB 1050: IF P = THE 

N IF INT(RND*9)=4 THEN 790 

750 IF X0<8 THEN X=XO+l : Y=YO: GOSUB 1050: IF P = THE 

N IF INT(RND*8)=4 THEN 790 

760 IF Y0>1 THEN X=XO: Y=YO-l : GOSUB 1050: IF P=0 THE 

N IF INT(RND*7)=4 THEN 790 

770 IF Y0<7 THEN X=XO: Y=YO+l : GOSUB 1050: IF P=0 THE 

N IF INT(RND*6)=4 THEN 790 

780 GOTO 740 

790 C = 3:GOSUB 1010:PRINT CHR$( 7 ) ; : GOSUB 1020:XO=X: 

YO=Y 

800 REM BLOCAGE DES CASES 

810 FOR Z=l TO NIV 

820 FOR X=XJ-1 TO XJ+l:FOR Y=YJ-1 TO YJ+1 

830 IF X<1 OR X>8 OR Y<1 OR Y>7 THEN 850 

840 GOSUB 1050: IF P=0 THEN IF INT(RND*7)=4 THEN 86 



850 NEXT Y,X:XX=XJ:YY=YJ:GOSUB 1060:IF T>0 THEN 82 

B 

860 PRINT CHR$(7);:G0SUB 1000 

870 NEXT Z 

880 GOTO 410 

980 REM --- 

990 REM ROUTINES D'AFFICHAGE 

1000 PAPER l:LOCATE X*2+10, Y»2+l : PRINT" MOCATE 

X*2+10,Y»2+2:PRINT M ":RETURN 

1010 PAPER C:LOCATE X«2+10, Y»2+l: PRINT" MOCATE 

X*2 + 10,Y*2 + 2:PRINT" ".-PLOT X»32+144, 400-Y*32: DRAW 

R 32,0:DRAWR 0,-32:DRAWR -32,0:DRAWR 0,32:RETURN 

1020 PAPER 0:LOCATE AX*2+10, AY*2+1 : PRINT" ".-LOCAT 

E AX«2 + 10,AY*2+2:PRINT M ".-PLOT AX*32+144, 400-AY*3 

2:DRAWR 32,0:DRAWR 0,-32:DRAWR -32,0:DRAWR 0,32:RE 

TURN 

1030 FOR 1=1 TO 5:PRINT CHR$(7);:F0R J=l TO 30:NEX 

T:NEXT: RETURN 

1040 FOR 1=16 TO STEP-1: PRINT CHR$(7);:F0R 0=1 T 

I*I+10:NEXT:NEXT:RETURN 

1050 P=TEST(X*32+146,398-Y*32): RETURN 

1060 T=0: IF XX>1 THEN X=XX-1: Y=YY: GOSUB 1050:T=T-( 

P = 0) 

1670 IF XX<8 THEN X=XX+1 : Y=YY: GOSUB 1050: T=T- ( P=0 ) 

1080 IF YY>1 THEN X=XX: Y=YY-1: GOSUB 1050: T=T-(P=0) 

1090 IF YY<7 THEN X=XX: Y=YY+1: GOSUB 1050: T=T-( P=0) 

1100 RETURN 



Super jeux Amstrad 117 



Programme 



Lignes 30 a 120 : initialisation 

Apres I'initialisation des nombres aleatoires (ligne 40), le 
programme saisit le niveau du jeu. 

Lignes 200 a 260 : dessin du jeu 

Les lignes 210 a 230 tracent le damier. 

C'est la ligne 240 qui donne la position initiate du joueur et 
de I'ordinateur, les lignes 250 et 260 affichant les pions 
sur la grille. 

Lignes 410 a 620 : coup du joueur 

La premiere ligne verifie si la partie est terminee. Si c'est le 
cas, on affiche le message « Perdu » et Ton recommence 
une partie des qu'une touche est enfoncee. 

Les lignes 430 a 490 deplacent le pion du joueur en 
fonction de la demiere touche appuyee (conservee dans 
D$). Le sous-programme en 1050 verifie que la case 
choisie est libre. 

Les lignes 510 a 620 bloquent la case choisie par le joueur. 

Lignes 710 a 880 : coup de I'ordinateur 

Comme pour le tour du joueur, la premiere ligne verifie si 
la partie est terminee. 

Les lignes 740 a 780 recherchent une case oil le pion de 
I'ordinateur peut se deplacer. Pour que le jeu soit different 
a chaque partie, on utilise des nombres aleatoires pour la 
selection. 

Les lignes 810 a 870 bloquent autant de cases que le 
niveau est eleve. Pour que la partie ne soit pas ecourtee 
(surtout au niveau 3 !), on utilise aussi des nombres 
aleatoires pour le choix des cases a bloquer. 

Lignes 1000 a 1100 : routines d'affichage 

Ligne 1000 : efface le contenu de la case X, Y 

ecrit un pion de couleur C dans la case X, Y 

efface le contenu de la case AX, AY 

emet un beep continu 

emet un beep discontinu 

place dans P la couleur de la case X, Y 



Ligne 1010 
Ligne 1020 
Ligne 1030 
Ligne 1040 
Ligne 1050 
Lignes 1060 
a 1100: 



placent dans T le nombre de deplacements 
possibles a partir de la case X, Y 



118 



Super jeux Amstrad 



LlSTE 
DES VARIABLES : 



AXetAY 


ancienne position du joueur ou de I'ordinateur 


C 


couleur d'une case 


CC 


couleur initiale de la case X, Y 


D 


valeur ASCII de D$ 


D$ 


derniere touche appuy6e 


1 


indice de boucle FOR/NEXT 


J 


indice de boucle FOR/NEXT 


NIV 


niveau du jeu 


P 


couleur de la case X, Y 


T 


nombre de defacements a partir de X, Y 


XJetYJ 


coordonn6es du joueur 


XOetYO 


coordonn^es de I'ordinateur 


XXetYY 


garde la position du joueur ou de I'ordinateur 




pour la recherche des cases libres 


Z 


indice de boucle FOR/NEXT 



Super jeuxAmstrad I 119 




BOMBEA 
RETARDEMENT 



Voila un excellent jeu de reflexe explosif ! 

Vous avez exactement 1000 fractions de seconde pour 
relier entre eux dans un ordre croissant les 9 chiffres qui 
apparaisent disperses sur I'ecran. Pour cela, vous 
disposez des 4 fleches de deplacement. 

Mais attention, un seul croisement est autorise. Au 
deuxieme, la bombe explosera. 

C'est aussi ce qui risque d'arriver si vous ne respectez pas 
le temps imparti ou I'ordre des chiffres ! 



t > >> > >> 

rt_j \ 



4 



= 581 



CROISEMENT = 



120 Super jeux Amstrad 



10 REM BOMBE A RETARDEMENT 

20 REM 

30 SYMBOL AFTER 128:G0SUB 1000 

40 RANDOMIZE TIME 

50 MODE 1:INK 0,1:INK 1,24:INK 2,6:INK 3,15:PAPER 

8:PEN l:BORDER 1 

60 PAPER 1 

70 FOR 1=1 TO 40 

80 LOCATE 1,1: PRINT " ":LOCATE I,23:PRINT " " 

90 IF K24 THEN LOCATE 1,1: PRINT ■ M :LOCATE 40,I:P 

RINT H " 

100 NEXT I 

110 PAPER 0:t.OCATE 20,12:PRINT CHR$(129) 

120 PEN 2 

130 FOR 1=1 TO 9 

140 X(I)=INT(RND*36)+3:Y(I)=INT(RND»19)+3 

150 IF TEST(X(I)»16-8,400-Y(I)*16)<>0 THEN 140 

160 LOCATE X(I),Y(I):PRINT CHR$(I+48) 

170 NEXT I 

180 t=1000:P=l:C=0 

190 PEN 3:LOCATE 6,24:PRINT CHR$( 133)CHR$ ( 134 ) : LOC 
ATE 6,25:PRINT CHR$( 135)CHR$( 136) ; " = " ; T ; 
200 LOCATE 21,25:PRINT "CROISEMENT = 0"; 
210 X=20:Y=12:LOCATE X,Y:PEN 1 

280 REM 

290 REM LE JEU 

300 T = T-l:LOCATE 10,25:PRINT T ; " "-LOCATE X,Y 

310 IF T=0 THEN 500 

320 A$=INKEY$:IF A$="" THEN 300 

330 IF A$=CHR$(242) AND X>2 THEN V=-1:W=0 

340 IF A$=CHR$(243) AND X<39 THEN V=1:W=0 

350 IF A$=CHR$(240) AND Y>? THEN V=0:W=-1 

360 IF A$=CHR$(241) AND Y<22 THEN V=0:W=1 

370 IF V=0 AND W=0 THEN 300 

380 IF TEST((X+V)«16-8,408-(Y+W)*16)=l THEN C=C+1 = 

LOCATE 34,25rPRINT CHR$(48+C ) : IF C>1 THEN 500 ELSE 

420 
390 A=TEST((X+V)*16-8,402-(Y+W)*16) 
400 IF A = 2 AND X(P)=X+V AND Y(P)=Y+W THEN P=P+1:IF 

P>9 THEN 700 ELSE 420 
410 IF A<>0 THEN 500 

420 X=X+V:Y=Y+W: LOCATE X,Y:PRINT CHR$ ( 1 30+V+W*2 ) 
430 V=0:W=0 
440 GOTO 300 

480 REM 

490 REM PERDU 

500 CLS: INK 1, 

510 FOR J=l TO 2 

520 FOR 1=300 TO 120 STEP -20 

530 PLOT T, 500-1, J: DRAW 620-1 , 500-1, J: DRAW 620-T.I 

-120, J: DRAW 1, 1-120, -h DRAW .1,500-1 ,,1 

Super jeux Amstrad 121 



540 BORDER I MOD 27: SOUND 1,1,2 
550 NEXT I 
560 INK 2, 1 
570 NEXT J 
580 RUN 

680 REM 

690 REM GAGNE 

700 FOR 1=700 TO 10 STEP-3: SOUND I, I ,2: NEXT 

710 RUN 

980 REM 

990 REM GRAPHIQUES 

1000 SYMBOL 128,24,60,126,255,24,24,24,24 

1010 SYMBOL 129,16,48,112,255,255,112,48,16 

1020 SYMBOL 131,8,12,14,255,255,14,12,8 

1030 SYMBOL 132,24,24,24,24,255,126,60,24 

1040 SYMBOL 133,0,0,0,0,0,1,1,7 

1050 SYMBOL 134,21,2,57,98,197,128,128,224 

1060 SYMBOL 135,63,127,255,255,255,255,127,63 

1070 SYMBOL 136,252,254,255,255,255,255,254,252 

1080 RETURN 



122 I Super jeux Amstrad 



Programme 



Liste 
des variables : 



Lignes 30 a 210 : initialisation 

Apres la definition des caracteres graphiques par le sous- 
programme en 1000, on affiche le jeu en plagant a des 
positions aleatoires les neuf chiffres a relier. 

Lignes 300 a 440 : le jeu 

La ligne 300 d^cremente et affiche le temps qu'il reste 
avant ('explosion de la bombe. Si cette valeur est a zero, 
on va directement en ligne 500 pour la fin du jeu. 

Suivant la touche qui est appuyee, on modifie les 
increments V et W. 

La ligne 380 teste le caractere que Ton vient de rencontrer. 
S'il s'agit d'une fleche, on incremente le nombre de 
croisements C. Des que celui-ci est superieur a un, le 
programme execute la phase explosion (lignes 500 a 580). 

Dans le cas d'un chiffre, on incremente le compteur P si 
I'ordre croissant a ete respecte. Sinon on va aussi en ligne 
500 pour la fin du jeu. 

Avant de revenir en ligne 300, on affiche une fleche dans la 
direction du deplacement en utilisant les increments V et 
W. 



AS 


derniere touche enfoncee 


A 


caractere sous le curseur 


C 


nombre de croisements 


I 


indice de boucle FOR/NEXT 


J 


indice de boucle FOR/NEXT 


P 


prochain chiffre a trouver 


T 


temps restant 


VetW 


increments en XetY 


XetY 


coordonnees du joueur 


X()etY() 


coordonnees des chiffres 



Super jeux Amstrad 



123 




PIRANHAS 



Ne paniquez pas si vous voulez sauver cet imprudent 
explorateur tombe dans I'Amazone au milieu des piranhas. 

Sa seule chance est que ces feroces poissons 
s'entredevorent lorsqu'ils se retrouvent cote a cote. 

Tout en deplagant I'explorateur avec les quatre fleches, 
vous imaginerez surement une tactique pour forcer les 
piranhas a se rencontrer jusqu'au dernier. Vous devrez etre 
pret pour une autre traversee de I'Amazone, des que vous 
aurezappuye sur ENTER. 















r 


■ — ^ 






\ 
\ 


* * 

* 4 

* 

* 
* 

* 

* * 

* * 








V 


* __ ' 


J 













124 Super jeux Amstrad 



16 REM PIRANHAS 

20 REM 

30 SYMBOL AFTER 128:G0SUB 2000 

40 DIM X(30),Y(30) 

50 V(2)=-1:V(3)=1:W(1)=1:W(0)=-1 

60 MODE 1:INK 0,1:INK 1,24:INK 2,6:INK 3 f 15:PAPER 

1:PEN 2=BORDER 1 

70 FOR 1=1 TO 40 

80 LOCATE I,1:PRINT H "rLOCATE I,25:PRINT " ■• 

90 IF K25 THEN LOCATE 1,I:PRINT " ":LOCATE 40,1-P 

RINT " " 

100 NEXT I:PAPER 

110 RANDOMIZE TIME 

120 P=INT(RND*ll)+20 

130 FOR 1=1 TO P 

140 X(I)=INT(RND*38)+2:Y(I)=INT(RND*22)+2 
150 LOCATE X(I),Y(I):PRINT CHR$(128) 
160 NEXT I 

170 X=INT(RND*38)+2:Y=INT(RND*22)+2 

180 PEN 3:LOCATE X T Y:PRINT CHR$(132) 

190 IF INKEY$=" " THEN 190 

280 REM 

290 REM DEPLACEMENT PIRANHAS 

300 FOR 1=1 TO P 

310 IF X(I)=0 THEN 400 

320 LOCATE X( I ) , Y( I ) : PRINT " " 

330 FOR J=0 TO 3 

340 A=TEST((X(I)+V(J))*16-8,408-(Y(I)+W(J))«16) 

350 IF A=3 THEN 800 

360 IF A=2 THEN 380 

370 NEXT J: GOTO 410 

380 X(I)=0:G=Q+1:PRINT CHR$(7) ; 

390 IF G=P-1 THEN 900 

400 GOTO 600 

410 IF Y(I)>Y THEN K=0:GOTO 450 

420 IF Y(I)<Y THEN K=l:GOTO 450 

430 IF X-1>=X(I) THEN K=3:GOTO 450 

440 K=2 

450 X(I)=X(I)+V(K):Y(I)=Y(I)+W(K) 

580 REM --- 

590 REM DEPLACEMENT JOUEUR 

600 C$=INKEY$ 

610 IF C$="" THEN 700 

620 FOR J=0 TO 3 

630 IF C$=CHR$(240+J) THEN 650 

640 NEXT J: GOTO 700 

650 A=TEST((X+V(J))*16-8,408-(Y+W(J))*16):IF A=l T 
HEN 700 

660 IF A=2 THEN 810 

670 LOCATE X,Y: PRINT " " 

680 X=X+V(J):Y=Y+W(J) 

Super jeux Amstrad 125 



690 PEN 3:L0CATE X,Y:PRINT CHR$( 132) : D=D+1 

700 IF X(I)>8 THEN PEN 2:L0CATE X( I ) , Y(I ) : PRINT CH 

R$(128+K) 

710 NEXT I 

720 GOTO 300 

780 REM 

790 REM PERDU 

800 LOCATE X+V(J),Y+W(J):PRINT ■ ":PEN l:LOCATE X, 

Y:PRINT CHR$(131):GOTO 820 

810 LOCATE X f Y:PRINT " ":PEN lrLOCATE X+V(J),Y+W(J 

):PRINT CHR$(131) 

820 FOR 1=0 TO 26:PRINT CHR$(7) ;: BORDER I:FOR K=l 

TO 40:NEXT:NEXT I 

830 IF INKEY$<>CHR$(13) THEN 830 

840 RUN 

880 REM 

890 REM GAGNE 

900 PEN lrLOCATE X,Y:PRINT CHR$(132) 

910 FOR 1=500 TO 50 STEP -5: SOUND 1,1, 2: NEXT 

920 LOCATE 13,25:PRINT D; "DEPLACEMENTS" ; 

930 IF INKEY$oCHR$(13) THEN 920 

940 RUN 

1980 REM 

1990 REM GRAPHIQUES 

2000 SYMBOL. 130,0,57,93,255,125,57,0,0 

2010 SYMBOL 131,0,156,186,255,190,156,0,0 

2020 SYMBOL 129,124,16,56,124,124,92,56,16 

2030 SYMBOL 128,8,28,58,62,62,28,8,62 

2040 SYMBOL 132,157,157,153,255,126,60,60,255 

2050 RETURN 



126 Super jeux Amstrad 



Programme 



Liste 
des variables : 



Lignes 30 a 190 : initialisation 

Apres la definition des caracteres graphiques par le sous- 
programme en 2000, on place dans les tableaux V() et W() 
les directions de deplacement des piranhas. 

Le nombre de piranhas est determine par la variable P 
(nombre aleatoire). On remplit les tableaux X() et Y() avec 
les coordonnees des piranhas, X et Y donnant celles de 
I'explorateur. 

Lignes 300 a 450 : le jeu 

Chaque piranha est deplace sur I'ecran dans le sens qui le 
rapproche le plus de I'explorateur sauf s'il trouve un 
congenere sur une case adjacente. Dans ce cas, il 
s'empresse de I'avaler (ligne 360) 

Lignes 600 a 720 : emplacement de I'explorateur 

On deplace I'explorateur suivant la touche appuyee (saisie 
par INKEYS). 

Lignes 800 a 940 : fin de partie 

Suivant Tissue de la partie, Amstrad affiche un piranha 
(perdu!) ou un explorateur (gagne!). 



A couleur sous I'explorateur avant deplacement 

C$ derniere touche enfoncee 

G nombre de piranhas elimines 

I indice de boucle FOR/NEXT 

J indice de boucle FOR/NEXT 

K sens du deplacement des piranhas 

P nombre de piranhas 

V() et W() nombre de caracteres de deplacement en X et 

en Y pour les 4 directions 

X et Y coordonnees de I'explorateur 

X() et Y() coordonnees des piranhas 



Super jeux Amstrad 



127 




ANAGRAM ME S 



L'ordinateur choisit un mot parmi les 300 que contient le 
programme. 

Puis, apres un tour de passe-passe, il affiche un superbe 
anagramme. 

A vous de trouver le mot d'origine. Si vous sechez 
lamentablement, taper uniquement sur ENTER pour obtenir 
la solution. En appuyant a nouveau sur ENTER, le 
programme vous propose un autre mot. 



ANAGRAMMES 



JE PROPOSE : CELREC 

QUEL EST CE MOT ? 
NON! C'EST CERCLE 



128 Super jeux Amstrad 



10 

20 

30 

40 

50 

60 

70 

80 

90 

180 

190 

200 

210 

220 

230 

240 

250 

260 

270 

280 

290 

300 

310 

320 

INT 

330 

340 

480 

490 

500 

510 

520 

530 

540 

550 

560 

570 

580 

590 

600 

610 

62a 

630 

640 

650 

660 

670 

680 

690 

700 

710 



REM ANAQRAMMES 

REM 

MODE 1:INK 0,13:INK 1,0:PAPER 0:PEN l:BORDER 13 
DEFINT A-Z 
DIM M$(300) 
RANDOMIZE TIME 
FOR 1=1 TO 300 
READ M$(I) 
NEXT 
REM 

REM LE JEU 

M=INT(RND*300)+1 

Z$=M$(M) 

FOR 1=1 TO 10 

A=INT(RND*6)+1:B=INT(RND*6)+1 

X$=MID$(Z$,A,1) 

MID$(Z$,A)=MID$(Z$,B,1) 

MID$(Z$,B)=X$ 

NEXT 

CLSrLOCATE 15,1:PRINT "ANAGRAMMES" 



LOCATE 1,6: PRINT "JE PROPOSE 

LOCATE 1, 10:INPUT"QUEL EST CE 

PRINT:PRINT 

IF ZS=M$(M) THEN PRINT'OUI! C 

NON! C'EST '' ; M$(M) 

IF INKEY$oCHR$(13) THEN 330 

GOTO 200 

REM 

REM LES MOTS 

DATA ABAQUE.ABBAYE 

ABUSER 

ACERBE 

ADAGIO 

AGENCE 

AMADOU 

ANODIN 

BALISE 

BECANE 

BIGLER 

CAGEOT 

CARTON 

CHAPON 

CLIENT 

CONTRE 

DEBILE 

DEMAIN 

DICTON 

ECRIRE 

ESC ALE 

FARINE 

FLAQUE 



Z$ 



MOT 



Z$ 



EST " ; Z$ ELSE PR 



DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 



ABSIDE 
ACCORD 
ACUITE 
AGACER 
ALOYAU 
ANNEXE 
BADAUD 
BAVARD 
BIELLE 
CABRER 
CARMIN 
CHACUN 
CLASSE 
CONGRE 
DANGER 
DELICE 
DEVOIR 
ECORCE 
ENIGME 
FACHFR 
FLACON 



ABIMER 
ACABIT 
ACQUIT 
ADORER 
AGNEAU 
AMANDE 
APHONE 
BALZAN 
BECTER 
BLAGUE 
CALICE 
CASINO 
CHASTE 
CLIQUE 
COPAIN 
DECHET 
DEPART 
DINGUE 
EDITER 
ESCROC 
FAUCON 
FLEUVE 



ABJECT 
ACACIA 
ACTEUR 
ADULER 
AGREER 
ANANAS 
APLOMB 
BAROUF 
BELIER 
BLEUET 
CAMPER 
CAVEAU 
CHEQUE 
COCHER 
CORNET 
DECOTE 
DEPUIS 
DIRECT 
ELEVER 
ESPRIT 
FELURE 
FORMAT 



ABOYER 
ACAJOU 
ACTION 
ADULTE 
AIMANT 
ANEMIE 
APPEAU 
BASSET 
BERGER 
BOHEME 
CAPTER 
CENTON 
CHOMER 
COMBLE 
CURARE 
DEDALE 
DESERT 
DIURNE 
EMPIRE 
ETABLE 
FESTIN 
FOU.INE 



ABSENT 
ACCENT 
ACTUEL 
AERIEN 
ALERTE 
ANGINE 
AUBURN 
BATEAU 
BETAIL 
BOUGIE 
CARDAN 
CERCLE 
CISEAU 
CONDOR 
CURSIF 
DEESSE 
DEVIER 
DRAGUE 
ENCLIN 
EXPRES 
FIGURE 
FRAISE 



Super jeux Amstrad I 129 



726 DATA 
730 DATA 
746 DATA 
750 DATA 
760 DATA 
770 DATA 
780 DATA 
790 DATA 
800 DATA 
810 DATA 
820 DATA 
830 DATA 
840 DATA 
850 DATA 
860 DATA 
870 DATA 
886 DATA 
890 DATA 
906 DATA 
910 DATA 
920 DATA 
930 DATA 
940 DATA 
956 DATA 
966 DATA 
970 DATA 
986 DATA 
990 DATA 



FRAUDE, 


FRELON, 


FRIAND, 


FRISER, 


FUREUR, 


GALANT, 


GATEAU, 


GAUFRE, 


GLAPIR, 


GOUJON, 


HANCHE, 


HARGNE, 


HAUSSE, 


HARPIE, 


HUMIDE, 


IGNARE, 


ILLICO, 


IMPACT, 


INDIGO, 


INEPTE, 


INFAME, 


INFINI, 


INTACT, 


INTIME, 


IRONIE, 


JAMAIS 


JAMBON, 


JOCKEY, 


JONQUE, 


JOVIAL, 


KARATE 


KERMES, 


KIMONO 


KIRSCH, 


KLAXON, 


LABEUR 


LABOUR, 


LACUNE 


LANGUE 


LIASSE, 


LIEVRE 


LIMITE, 


LITIGE 


LIVIDE 


LOUCHE, 


MACHER 


MADERE, 


MAFFIA 


MALICE 


MANDAT, 


MANIOC 


MARCHE, 


MARRON 


MASQUE 


MEDIUM, 


MEMBRE 


MERLIN, 


MIETTE 


MIOCHE 


MOTEUR, 


NARINE 


NECTAR, 


NOMBRE 


NOTICE 


NOUGAT, 


OCCASE 


OCTAVE 


OFFICE 


ORACLE 


.OTARIE, 


PAELLA 


PAPAYE 


f PAPIER 


.PAREIL 


, PARLER, 


PATRIE 


PATRON 


PAUMER 


.PAYSAN 


.PEIGNE, 


PEPITE 


.PERCHE 


.PESTER 


.PIAULE 


.PILULE, 


POIGNE 


POISON 


r POPOTE 


, POUPEE 


.PRETER, 


QUARTZ 


.QUATRE 


, QUICHE 


.QUILLE 


.QUINTE, 


RACINE 


t RADEAU 


, RAGOUT 


.RAISIN 


, RAMURE, 


RAVIER 


, REGARD 


.RELIER 


, RENDRE 


.RIFIFI, 


SAFRAN 


, SALAMI 


.SAPEUR 


.SAVOIR 


.SCRIPT, 


SHERIF 


, SINGER 


r SIRENE 


.SOLEIL 


, SOUPIR, 


TANDEM 


r TAPAGE 


.TAQUIN 


.TENACE 


.TESSON, 


TOPAZE 


r TOUPIE 


.TRAHIR 


.TRICOT 


.TRIPLE, 


ULCERE 


r ULTIME 


.UNIQUE 


.URBAIN 


.URGENT, 


VALIDE 


r VANTER 


.VESTON 


.VIVIER 


.VOISIN, 


WAPITI 


, WHISKY 


.YAOURT 


.ZENITH 


.ZIGZAG, 



FURTIF 
GOURDE 
HUMOUR 
INERTE 
IVOIRE 
JUJUBE 
KOPECK 
LICITE 
LUSTRE 
MANGUE 
MEDUSE 
MOUTON 
NUANCE 
OUVRIR 
PATATE 
PELOTE 
PLANTE 
PUZZLE 
QUITTE 
RAPHIA 
RUSTRE 
SEIGLE 
SUIVRE 
TIMBRE 
TULIPE 
UTOPIE 
VOLUME 
ZOUAVE 



130 Super jeux Amstrad 



Programme 



Liste 
des variables : 



Lignes 30 a 90 : initialisation 

Apres ^initialisation des nombres aleatoires, le programme 
place dans le tableau M$ la liste des 300 mots contenus 
dans les DATA des lignes 500 a 990. 

Lignes 200 a 340 : le jeu 

Le contenu aleatoire de la variable M pointe le mot que le 
joueur doittrouver. 

Apres avoir ete place dans la variable Z$, le mot est 
melange par la boucle FOR/NEXT des lignes 220 a 270. 

Quand I'anagramme est affiche sur I'ecran, le programme 
saisit la solution du joueur. 

Si le resultat est errone, la ligne 320 affiche le mot 
d'origine. 

Lignes 500 a 990 : les mots 

Si vous avez deja tape le programme MORSE, il est 
possible de recuperer les DATA en supprimant les lignes 
10a410. 



AetB 

I 

M 

M$() 

X$ 

Z$ 



utilisees pour le melange 

indice de boucle FOR/NEXT 

numero du mot choisi 

liste des mots 

utilisee pour le melange 

mot propose par le joueur ou I'ordinateur 



Super jeux Amstrad 131 




AWARI 



AWARI est un combat strategique entre I'ordinateur et 
vous. 

Amstrad vous demande d'entrervotre prenom ; puis, il 
dessine le jeu sur I'ecran de cette fagon : 



3 3 3 3 3 3 



PARTI E 1 



3 I 3 I 3 I 3 I 3 I 3 
EXEMPLE 1 : 



Tout au cours d'une partie, I'ordinateur affichera votre 
prenom, puis un message, soit : 



PRENOM 
JEJOUEEN 



ou : 



PRENOM 

QUEL EST VOTRE MOUVEMENT ? 

L'ordinateur joue sur les cases du haut et le joueur sur les 
cases du bas. 

II y a trois pions au depart dans chaque case. Le jeu 
consiste a deplacer les trois pions d'une case de un en un 
dans les cases suivantes et dans le sens inverse des 
aiguilles d'une montre : 



PARTIE 1 



3l 31 3 
-3 +1 + 1 



EXEMPLE 2 : MOUVEMENT 





+ 1 





3 


3 


3 3 


3 


3 







PARTIE 1 


1 




3 


3 


I 3 


4 


4 





132 Super jeux Amstrad 



EXEMPLE 3 : RESULTAT 

II conviendra de considerer les cases sous les numeros 
suivants : 

sens du jeii 



total 

de 

I'ordin. 





3 


3 


3 


3 


3 


3 


















total 

















du 
joueur 




3 


3 


3 


3 


3 


3 




1 


2 


3 4 5 


6 










sens 


du jeu 







EXEMPLE 4 : 

Ainsi, dans I'exemple 2, la case mouvementee etait la case 
4 : 

PRENOM 

QUEL EST VOTRE MOUVEMENT ? 

Taper 4. 

Si le dernier pion place s'arrete dans une case TOTAL, le 
joueur doit rejouer. Si le dernier pion s'arrete avant ou 
apres cette case, c'est au joueur adverse de jouer. Dans 
I'exemple 2, c'est au joueur (et non a I'ordinateur) de 
rejouer. 

La partie s'arrete quand toutes les cases de I'un des deux 
joueurssontvides. 

L'ordinateur signale alors qui a gagne. Le nombre de 
parties gagnees reste d'ailleurs affiche en permanence sur 
I'ecran. 

Puis le jeu initial se redessine, vous invitant a refaire une 
partie... 



Super jeux Amstrad I 133 



16 REM AWARI 

20 REM 

30 DIM B{14),K(14),G(14),H(14) 

40 MODE 1:INK 8,1:INK 1,26:PAPER 0:PEN l:BORDER 1 

58 INPUT-VOTRE PRENOM" ; P$ 

68 PA=1 

78 E=INT(RND+8.5) 

80 CLS:PRINT 

90 PRINT TAB(16); "AWARI" 

100 LOCATE 1,18:PRINT P$ 

180 REM 

190 REM AFFICHE LE JEU 

200 FOR 1=1 TO 13:B(I)=3:NEXT I 

210 B(7)=0:B(14)=0 

220 PLOT 0,288: DRAW 688,288 

238 PLOT 8,232:DRAW 688,232 

248 FOR 1=66 TO 546 STEP 80 

258 PLOT I f 282:DRAW I,232:PLOT I,288:DRAW 1,168 

268 IF 1=66 OR 1=546 THEN PLOT I,232:DRAW 1,208 

270 NEXT I 

280 LOCATE 1,12:PRINT B(14):L0CATE 15, 12: PRINT"PAR 

TIE: ";PA:LOCATE 36,12:PRINT B(7) 

290 FOR J=13 TO 8 STEP -1 

300 LOCATE 1+(14-J)*5, 10: PRINT B(J) ; " " 

310 NEXT J 

320 FOR J=l TO 6 

330 LOCATE 1+J*5, 14: PRINT B(J) ; " " 

340 NEXT J 

380 REM 

390 REM LE JEU 

400 B=0 

410 FOR 1=1 TO 6 

420 IF B(I)<>0 THEN B=l 

430 NEXT I: IF B=8 THEN 1780 

448 B=8 

458 FOR 1=8 TO 13 

468 IF B(I)<>0 THEN B=l 

478 NEXT I: IF B=8 THEN 1788 

488 IF E=l THEN 988 

498 LOCATE 1,19:PRINT CHR$( 18) ; "QUEL EST VOTRE MOU 

VEMENT ? "; 

508 A$ = INKEY$:IF A$= I,M THEN 588 ELSE A = VAL(A$) 

510 IF A<1 OR A>6 THEN 588 

528 IF B(A)=8 THEN 580 

530 LOCATE 28,19:PRINT CHR$( A+48) : QOSUB 740 

540 IF E=l AND A=14 THEN 288 

550 IF A=7 THEN 280 

560 IF E=l THEN E=0:QOTO 288 

570 E=l:GOTO 280 

680 REM 

690 REM DEPLACEMENT DES PIONS 

134 Super jeux Amstrad 



700 


A = 


710 


FOR Z=l TO 14 


720 


B(Z)=G(Z) 


730 


NEXT Z 


740 


P=B(A):B(A)=0 


750 


FOR 1=1 TO P 


760 


A=A+1: IF A=15 THEN A=l 


770 


B(A)=B(A)+1 


780 


NEXT I 


790 


RETURN 


880 


REM _ _ _ _ 


\J s.? V 

890 


REM COUP DE L'AMSTRAD 


900 


LOCATE 1,19:PRINT CHR$(18): M OE OOUE 


910 


FOR 0=1 TO 14 


920 


G(0)=B(0) 


930 


NEXT 


940 


IF B( 13) =1 THEN 1500 


950 


IF B(13)>=3 THEN 1500 


960 


IF B(12)>=3 THEN 1510 


970 


IF B(ll)>=4 THEN 1520 


980 


FOR J=13 TO 8 STEP -1 


990 


IF G(O)=0 THEN 1070 


1000 


GOSUB 700 


1010 


IF A=14 THEN 1550 


1020 


H(J)=A 


1030 


FOR U=9 TO 13 


1040 


Z=U+B(U) 


1050 


IF Z=14 THEN K(0)=K(0)+1 


1060 


NEXT U 


1070 


NEXT J 


1080 


Z = 


1090 


IF G(12)>=5 THEN 1510 


1100 


IF 6(8)=1 THEN 1540 


1110 


IF 6(9)=1 THEN 1530 


1120 


FOR 0=8 TO 13 


1130 


U=K(0) 


1140 


IF U>Z THEN GOSUB 1560 


1150 


NEXT 


1160 


IF Z>0 THEN 1280 


1170 


Z = 8 


1180 


FOR 0=8 TO 12 


1190 


U=H(0) 


1200 


IF U>Z AND U>0 THEN GOSUB 1560 


1210 


NEXT 


1220 


IF A>7 THEN 1280 


1230 


Z = 7 


1240 


FOR 0=8 TO 13 


1250 


U=H(0) 


1260 


IF U<Z AND U>0 THEN GOSUB 1560 


1270 


NEXT 


1280 


FOR U=8 TO 13 



EN" 



Super jeux Amstrad I 135 



1290 K(U)=0 

1300 H(U)=0 

1310 NEXT U 

1320 C=A-7 

1330 LOCATE 12,19:PRINT CHR$(C+48) 

1340 J=A 

1350 60SUB 700 

1360 GOTO 540 

1480 REM 

1490 REM COUP CHOISI PAR L'AMSTRAD 

1500 A=13:60T0 1280 

1510 A=12:G0T0 1280 

1520 A=ll:GOTO 1280 

1530 A=9:GOTO 1280 

1540 A = 8.-G0T0 1280 

1550 A=J:GOTO 1280 

1560 Z = U.-A = J 

1570 RETURN 

1680 REM 

1690 REM RESULTATS 

1700 IF B(14)>B(7) THEN 1790 

1710 IF B(14)<B(7) THEN 1750 

1720 LOCATE 1,19: PRINT CHR$( 18) ; "NOUS SOMMES EXAEQ 

UO" 

1730 E=INT(RNO+0.5) 

1740 GOTO 1820 

1750 LOCATE 1,19:PRINT CHR$ ( 18) ; "VOUS AVEZ GAGNE" 

1760 T1=T1+1 

1770 E=l 

1780 GOTO 1820 

1790 LOCATE 1,19:PRINT CHR$ ( 18 ) ; " J ' AI GAGNE" 

1800 T2=T2+1 

1810 E=0 

1820 PA=PA+1 

1830 LOCATE 3,22:PRINT "AMSTRAD: " ; T2; TAB( 21 ) ; P$; " : 

■;T1 

1840 IF INKEY$<>CHR$(13) THEN 1840 

1850 GOTO 200 



136 I Super jeux Amstrad 



Programme 



Lignes 30 a 340 : initialisation et dessin du jeu 

Apres la declaration des differents tableaux, le programme 
saisit le prenom du joueur et affiche a I'ecran le dessin du 
jeu. 

La variable E determine le tour du joueur si sa valeur est 0, 
et le tour d'Amstrad si sa valeur est 1 . Au premier tour, 
cette variable contient un nombre aleatoire,mais des la 
deuxieme partie, c'esttoujours le perdant qui commence. 

Lignes 400 a 480 : test de fin de partie 

Le jeu doit s'arreter quand un des joueurs n'a plus de 
pions dans son terrain. Dans ces lignes, on verifie a 
chaque tour cette eventuality. Si c'est le cas, on passe a la 
ligne 1700. 

En ligne 480, le programme se separe en deux, suivant la 
valeur de E. 

Lignes 490 a 570 : E=0, tour du joueur 

Des I'entree du mouvement, on verifie sa validite. En cas 
de mauvaise reponse, comme il n'est pas possible de 
passer son tour, la question est de nouveau posee jusqu'a 
I'obtention d'une reponse correcte. 

L'appel du sous-programme de la ligne 740 deplace les 
pions des cases concernees. 

Lignes 900 a 1570 : E=1, tour d'Amstrad 

Pour determiner son choix, Amstrad utilise trois tableaux 
pour comparer les solutions possibles et les plus 
avantageuses. 

La solution trouvee est placee dans A comme pour le 
joueur, ce qui permet d'utiliser le sous-programme de 
deplacement des pions des lignes 700 a 790. 

Lignes 700 a 790 : deplacement des pions 

On deplace les pions de la case pointee par A en les 
distribuant dans les cases suivantes, en considerant que la 
case 15 (inexistante) correspond a la case 1 . 

Lignes 1700 a 1850 : resultats 

Des que I'un des joueurs n'a plus de points, on affiche a 
I'ecran le nombre de parties gagnees par chacun ainsi 
qu'un message de felicitations. 



Super jeux Amstrad 137 



LlSTE 
DES VARIABLES : 



A 


votre mouvement (valeur decimale) 


AS 


derniere touche enfoncee 


B 


si B=0, fin de partie 


B() 


nombre de pions dans chaque case 


C 


numero de la case jouee par Amstrad 


E 


si E=0 tour du joueur, si E=1 tour d'Amstrad 


GO 


sauvegarde du tableau B() 


H() 


nombre de pions dans chaque case apres 




deplacement 


1 


indice de boucle FOR/NEXT 


J 


indice de boucle FOR/NEXT 


K() 


coefficient de chaque case 


P 


nombre de pions a deplacer 


P$ 


votre prenom 


PA 


numero de la partie 


T1 


nombre de parties gagnees par le joueur 


T2 


nombre de parties gagnees par Amstrad 


U 


coefficient de la case etudiee 


Z 


indice de boucle FOR/NEXT 













AMARI 






12 1 | 4 1 S 


i 
1 ° 




5 


PARTIE: 2 


io 




| 5 | o | a | i 


1 




FULBERT 

GUEL EST MOTBE MOUVEMENT ? 




j 


1 AM 


I" " 





J 







138 Super jeux Amstrad 




FUSEE LUNAIRE 



Un navigateur spatial s'entraine en conduisant une fusee 
d'un cote a I'autre d'une montagne lunaire. Au debut du 
jeu, la montagne se dessine sur I'ecran, ainsi que la fusee 
et I'endroit oppose ou elle doit retomber ; sont aussi 
indiquees les quantit.es d'oxygene et de carburant. 

Le joueur doit donner la hauteur et la largeur du 
deplacement en deux temps chaque fois. II doit : 

- preciser le sens positif ou negatif, 

- donner I'amplitude de 1 a 9, 

L'oxygene et le carburant diminuent a chaque coup. 

En cas d'erreur de navigation 6 messages peuvent 
apparaitre : 

- ECRASEE SUR LA MONTAGNE, 

- SORTIE DE L'ESPACE, 

- MISE EN ORBITE, 

- LA FUSEE S'ECRASE, 

- PLUS DE CARBURANT, 

- PLUS D'OXYGENE. 

Des parametres precis regissent les deplacements de la 
fusee en fonction des donnees entrees par le joueur. Si 
vous ne parvenez jamais a poser la fusee, vous pouvez 
toujours Jeter un coup d'ceil au programme. . . 



OXVGENE : 18 
HORIZONTALE 
CARBURANT (1-9) 



CARBURANT: 264 



Super jeux Amstrad 



139 



16 REM FUSEE LUNAIRE 

20 REM 

30 MODE l.-INK 0,1:INK 1,24:INK 2,6:INK 3,15:PAPER 

9:PEN l:BORDER 1 

40 SYMBOL AFTER 128 

50 RANDOMIZE TIME 

60 SYMBOL 128,8,8,28,28,28,28,62,62 

70 SYMBOL 129,62,62,62,127,127,119,119,119 

80 PLOT 0,399:DRAW 639,399:PL0T 0,100:DRAW 639,100 

90 PLOT 540, 100, 2: DRAW 580,100 

100 XM=INT(RND*120)+200 

110 YM=350-INT(RND*50) 

120 PLOT 200,100,1:DRAW XM,YM 

130 DRAW 440,100 

140 OX=20:CA=300 

150 X=80.-Y=134 

160 TAG:MOVE X,Y:PRINT CHRS( 128) ;: MOVE X,Y-16:PRIN 

T CHR$(129) ; 

280 REM 

290 REM LE JEU 

300 M$="VERTICALE":QOSUB 700:PV=Q 

310 M$="HORIZONTALE":GOSUB 700:PH=Q 

320 DX=X:DY=Y:AX=X:AY=Y 

330 X=X+(PH+AH)*2:Y=Y+(PV+AV)*2 

340 AH=PH/2:AV=PV/2 

350 CA=CA-ABS(PH/2)-ABS(PV/2) 

360 IF Y-DY=0 THEN INC=X-DX ELSE INC=(X-DX) /( Y-DY) 

370 IF DX<X AND INC<0 THEN INC=-INC 

380 IF DX>X AND INC>0 THEN INC=-INC 

390 X = DX-INC.-IV=1 

400 IF DY>Y THEN IV=-1 

410 FOR I=DY TO Y STEP IV 

420 Y=I:X=X+INC:SOUND 1,600,1 

430 IF Y>398 THEN 900 

440 IF X>540 AND X<580 AND Y>132 AND Y<136 THEN 11 

00 

450 IF Y<134 THEN 910 

460 IF X<5 OR X>635 THFN 920 

470 TAQ:MOVF AX,AY:PRINT" ";:MOVE AX, AY-16: PRINT" 

";:MOVE X,Y:PRINT CHR$(128);.-M0VE X,Y-16:PRINT CHR 

$(129); :AX=X:AY=Y 

480 IF TEST(X,Y-30)<>0 OR TEST(X+2, Y-32 ) <>0 THEN 9 

30 

490 IF TEST(X+8,Y-32)<>0 OR TEST(X+10, Y-32 ) <>0 THE 

N 930 

500 IF TEST(X+16,Y-30)<>0 OR TEST(X+14, Y-32) <>0 TH 
EN 930 
510 NEXT I 
520 OX=OX-l 

530 TAGOFF:LOCATE 1,20:PRINT CHR$ ( 18) = "OXYGENE: " • 
X;" CARBURANT: " ; CA 

140 Super jeux Amstrad 



540 IF OX<=0 THEN 940 

550 IF CA<=0 THEN 950 

560 IF X>540 AND X<580 AND Y=134 THEN 1100 

570 GOTO 300 

680 REM 

690 REM SAISIE 

700 TAGOFF.-PEN 3:LOCATE 1,21:PRINT CHR$(18) ; M$ 

710 LOCATE 1,22:PRINT CHR$( 18) ; "SENS + OU - ?■ 

720 A$=INKEY$:IF A$="" THEN 720 ELSE IF A$=CHR$(13 

) THEN A$="+ H 

730 IF A$o"- H AND A$<>" + " THEN 720 

740 LOCATE 1,22:PRINT CHR$( 18) ; "CARBURANT (1-9) ?" 

750 Q=VAL(INKEY$):IF Q<1 OR Q>9 THEN 750 

760 Q=Q»2: IF A$="- M THEN Q=-Q 

770 LOCATE 1,21:PRINT CHR$( 18) : PRINT CHR$(18) 

780 PEN 1: RETURN 

880 REM 

890 REM PERDU 

900 M$="MISE EN ORBITE": GOTO 960 

910 M$="LA FUSEE S ' ECRASE": GOTO 960 

920 M$="SORTIE DE L ' ESPACE" : GOTO 960 

930 M$="ECRASEE SUR LA MONTAGNE": GOTO 960 

940 M$="PLUS D'OXYGENE":GOTO 960 

950 M$="PLUS DE CARBURANT" : GOTO 960 

960 TAGOFFrPEN 3: LOCATE 1,21: PRINT M$:FOR 1=50 TO 

500 STEP 5: SOUND 1,1, 2: NEXT 

970 IF INKEY$OCHR$(13) THEN 970 

980 RUN 

1080 REM 

1090 REM GAGNE 

1100 TAGOFF:LOCATE 1, 21: PRINT M GAGNE": FOR 1=500 TO 

50 STEP-5:SOUND 1,I,2:NEXT 

1110 IF INKEY$<>CHR$(13) THEN 1110 

1120 RUN 



Super jeux Amstrad I 141 



Programme 



Liste 
des variables : 



Lignes 30 a 160 : initialisation 

La ligne 50 initialise les nombres aleatoires. 
Ce sont les lignes 80 a 130 qui dessinent la montagne. On 
definit la largeur et la hauteur de la montagne par deux 
nombres aleatoires XM et YM. 

Lignes 300 a 570 : le jeu 

Pour entrer le mouvement et la quantite de carburant 
necessaire, on utilise le sous-programme en 700. On 
incremente (ou Ton decremente) la position de la fusee en 
fonction de ces valeurs. Les lignes 320 a 510 deplacent la 
fusee sur I'ecran en prenant les anciennes coordonnees 
pour la position de depart et les coordonnees nouvellement 
calculees pour sa position d'arrivee. 

Apres affichage de I'oxygene et du carburant restant, on 
teste s'ils sont superieurs a zero. Si ce n'est pas le cas, on 
affiche un message correspondant au type d'erreur de vol 
commis (a partir de la ligne 900). 

Dans le cas ou les nouvelles coordonnees de la fusee 
correspondent a celles de I'arrivee, on saute aux lignes 
1 1 00 pour le message de felicitations. 



AHetAV 


acceleration horizontale et verticale 


AS 


derniere touche appuyee 


CA 


carburant restant 


DX et DY 


sauvegarde de X et Y pendant le deplacement 


1 


indice de boucle FOR/NEXT 


INC 


increment du deplacement horizontal 


IV 


increment du deplacement vertical 


MS 


message a afficher 


OX 


oxygene restant 


PH et PV 


poussee horizontale et verticale 


Q 


quantite de carburant a utiliser 


XetY 


coordonnees de la fusee 


XM et YM 


coordonnees de la montagne 



142 Super jeux Amstrad 




CHASSE AU 
TRESOR 



Vous n'avez pas de chance au jeu ? Mors voila une chasse 
au tresor ou la ruse et non le pur hasard vous sera utile 
pour gagner. 

Cette chasse au tresor se joue a deux. Une grille de 16 sur 

10 numeros s'inscrit devant vous. II suffit de deplacer les 

deux chasseurs avec les quatre fleches du clavier selon 

I'itineraire qui rapportera le plus de points (verticalement et 

horizontalement). 

Attention, ne dettuisez pas toute une zone sans prevoir 

un possible retour en arriere fructueux... 

La partie s'arrete quand I'un des deux joueurs a obtenu au 
moins 250 points et les resultats s'affichent alors. Pour 
repartir, il faudra appuyer sur ENTER. 

Maintenant bonne chasse ! 




Super jeux Amstrad 



143 



10 REM CHASSE AU TRESOR 

20 REM 

30 SYMBOL AFTER 128 

40 SYMBOL 128,93,93,89,127,28,28,20,119 

50 SYMBOL 129,28,28,24,127,93,127,20,54 

60 SYMBOL 130,93,93,89,127,28,28,20,119 

70 DIM P(17,10) 

80 X(1)=9:X(2)=10 

90 Y(1)=6:Y(2)=5:C(1)=2:C(2)=3 

100 MODE 1: INK 0,1:INK 1,24:INK 2,6:INK 3,15:PAPER 

0:PEN lrBORDER 1 
110 RANDOMIZE TIME 
120 FOR 1=1 TO 10 
130 FOR J=2 TO 17 
140 P(O,I)=INT(RND*10):LOCATE J*2-l , 1*2: PRINT P(J, 

150 NEXT J 

160 NEXT I 

170 LOCATE 3,24:PRINT "C'EST QUI JOUE ";:PEN 2 

:PRINT CHR$(129);": H ;:PEN 3:PRINT CHR$(129) ; " 

280 REM 

290 REM LE JEU 

300 FOR 1=1 TO 2 

310 PEN 2rLOCATE X( 1 ) *2, Y( 1 )*2: PRINT CHR$(127+I) 

320 PEN 3:LOCATE X(2 )*2, Y(2 )*2: PRINT CHR$(128+I) 

330 PEN C(I):LOCATE 9 r 24:PRINT CHR$(128) 

340 AX=X(I):AY=Y(I) 

350 A$=INKEY$:IF A$="" THEN 350 

360 IF A$=CHR$(242) AND X(I)>2 THEN X( I )=X( I )-l : GO 

TO 410 

370 IF A$=CHR$(243) AND X(I)<17 THEN X( I )=X( I ) +1: G 

OTO 410 

380 IF AS=CHR$(240) AND Y(I)>1 THEN Y( I ) =Y( I )-l : GO 

TO 410 

390 IF A$=CHR$(241) AND Y(I)<10 THEN Y( I )=Y( I ) +1 : G 

OTO 410 

400 GOTO 350 

410 B=P{X(I) t Y(I)):P(X(I),Y(I))=0 

420 PEN 1: LOCATE AX*2, AY*2: PRINT "0" 

430 T(I)=T(I)+B 

440 LOCATE 17+1*7, 24: PRINT T ( I ) 

450 IF T(I)>=250 THEN 600 

460 NEXT I 

470 GOTO 300 

580 REM 

590 REM RESULTATS 

600 CLS 

610 IF T( 1 ) >T( 2) THEN I = l:GOTO 630 

620 1=2 

630 PEN 2:LOCATF 15,11: PRINT CHRS( 127 + 1 );":"; T( 1 ) 

640 PEN 3:LOCATE 15,13:PRINT CHRS( 128 + 1 );":■; T(2 ) 

650 PEN lrLOCATE 9, 15: PRINT"C ' EST " ;: PEN C(I ): PRIN 

T CHR$(128) ; :PEN 1:PRINT " QUT GAGNE" 

660 IF INKEY$oCHR$(13) THEN 660 

670 RUN 

144 Super jeux Amstrad 



Programme 



Liste 
des variables : 



Lignes 30 a 170 : initialisation 

Les tableaux X() et Y() donnent les coordonnees de depart 
des deuxjoueurs. 

On affiche a I'ecran une grille de nombres aleatoires de 10 
sur 16. Ces nombres sont sauves dans le tableau P. 

Lignes 300 a 470 : le jeu 

On verifie les valeurs donnees par le caractere saisi au 
clavier pour deplacer les joueurs. 

Apres deplacement des figures, on ajoute au total des 
points du joueur le nombre sur lequel on vient de se 
placer. On recupere cette valeur dans le tableau P. Ce total 
est affiche au bas de I'ecran. 

On verifie apres chaque tour si le joueur ne depasse pas les 
250 points requis pour gagner (tableau T()). 

Lignes 600 a 670 : resultats 

Un des joueurs ayant depasse 250 points, on affiche a 
I'ecran les resultats de la partie. 



AS 


deplacement 


B 


valeur sous le joueur 


AXetAY 


coordonnees avant deplacement 


I 


indice de boucle FOR/NEXT 


J 


indice de boucle FOR/NEXT 


P() 


tableau des points 


TO 


total des points de chaque joueur 


X()etY() 


coordonnees des joueurs 



Super jeuxAmstrad 145 




4&- 



TOURS DE HANOI 



Face a ces tours de Hanoi, vous devrez faire preuve de 
strategie, de reflexion et de beaucoup de patience. II s'agit 
de faire passer sur la tour de droite et dans le meme ordre 
un certain nombre de disques empiles sur la tour de 
gauche en vous aidant de la tour du milieu. 

Vous pouvez choisir le nombre de disques a manceuvrer 
entretroisetsept. 

Amstrad demande en bas de I'ecran la tour de depart du 
mouvement, puis la tour d'arrivee : entrer 1 , 2 ou 3, 
numerosdes tours. 

II refuse les ordres impossibles a executer : on ne peut 
poser un disque sur un autre moins large. Par contre un 
disque peut aller de la tour 1 a la tour 3, puis revenir a la 
tour 2. 

II affiche aussi tout au long du jeu le nombre d'essais. 

Petit conseil : il vaut mieux pour vos nerfs commencer 
par trois disques ! 




TOUR: 1 



tour : a 



TOUR : 3 



TOUR DE DEPART : 
ESSfllS: 16 




146 Super jeux Amstrad 



10 REM TOURS DE HANOI 

20 REM 

30 SYMBOL AFTER 128:G0SUB 2008 

40 MODE 1: INK 0,1:INK 1,24:INK 2,15: INK 3,6:PAPER 

0:PEN 1:B0RDER 1 

50 INPUT"NOMBRE DE DISQUES";N 

60 IF N<3 OR N>7 THEN 40 

70 CLS 

80 DIM D(3,7) 

90 X(1)=8:X(2)=29:X(3)=29 

100 Y(1)=9:Y(2)=9:Y(3)=21 

110 FOR 1=1 TO 7 

120 IF K = N THEN D(1,I)=8-I 

130 NEXT I 

140 GOSUB 1500 

150 E=0 

180 REM 

190 REM LE JEU 

200 PEN lrLOCATE 1, 18: PRINT"TOUR DE DEPART:"; 

210 A$=INKEY$:IF A$= MM THEN 210 

220 TD=VAL(A$):IF TD<1 OR TD>3 THEN 210 

230 J=TD: GOSUB 800: IF Q=l THEN 200 

240 DD=I 

250 LOCATE 1, 18: PRINT"TOUR D ' ARRIVEE: " ; 

260 A$=INKEY$:IF AS="" THEN 260 

270 TA=VAL(A$): IF TA<1 OR TA>3 THEN 260 

280 IF TA=TD THEN 200 

290 J=TA: GOSUB 800: IF Q=l THEN 310 

300 IF D(TD,DD)>D(TA,I) THEN 200 

310 DA=I+1 

320 D(TA, DA)=D(TD,DD):D(TD,DD)=0 

330 I=TD:J=DD: GOSUB 1000 

340 I=TA:J=DA: GOSUB 1000 

350 E=E+1 

360 PEN 3:L0CATE 1, 21: PRINT"ESSAIS: " ; : PEN 1:PRINT 

E 

370 FOR 1=1 TO N 

380 IF D(3,I)=0 THEN 200 

390 NEXT I 

400 PEN 2:LOCATE 1, 18: PRINT"REUSSI EN";:PEN 1:PRIN 

T E;:PEN 2: PRINT "COUPS" 

410 IF INKEY$="" THEN 410 

420 RUN 

780 REM 

790 REM NUMERO DU DISQUE SUPERIEUR 

800 FOR 1=7 TO 1 STEP -1 

810 IF D(J,I)<>0 THEN Q=0:GOTO 830 

820 NEXT I:Q=1 

830 RETURN 

980 REM 

990 REM AFFICHE LES DISQUES 

Super jeux Amstrad 147 



1000 PEN 2: FOR K=7 TO 1 STEP -1 

1010 IF D(I,J)>K THEN LOCATE X( I )-K, Y( I )-0: PRINT C 

HR$(132):QOTO 1040 

1020 IF D(I, J)=K THEN LOCATE X( I )-K, Y( I )- J: PRINT C 

HR$(131):GOTO 1040 

1030 LOCATE X(I)-K,Y(I)-J:PRINT M " 

1040 NEXT K 

1050 FOR K=l TO 7 

1060 IF D(I,J)=K THEN LOCATE X( I )+K, Y( I )-J: PRINT C 

HR$(130):GOTO 1090 

1070 IF D(I,J)>K THEN LOCATE X( I )+K, Y( I )-J: PRINT C 

HR$(132):GOTO 1090 

1080 LOCATE X(I)+K,Y(I)-J:PRINT " " 

1090 NEXT K 

1100 RETURN 

1480 REM 

1490 REM DESSIN DU JEU 

1500 FOR 1=1 TO 3 

1510 PEN 2:LOCATE X( I ) , Y( I )-8: PRINT CHR$( 128) ; : PEN 

3:PRINT " TOUR:";:PEN lrPRINT I:PEN 2 

1520 FOR J=l TO 7 

1530 GOSUB 1000 

1540 IF J>1 THEN LOCATE X( I ), Y( I )-J: PRINT CHR$(129 

):GOTO 1560 

1550 LOCATE X( I ) , Y( I )-J : PRINT CHR$(133) 

1560 NEXT J 

1570 NEXT I 

1580 RETURN 

1980 REM 

1990 REM GRAPHIQUES 

2000 SYMBOL 128,60,126,255,255,126,60,24,126 

2010 SYMBOL 129,126,126,126,126,126,126,126,126 

2020 SYMBOL 130,0,248,254,255,255,254,248,0 

2030 SYMBOL 131,0,31,127,255,255,127,31,0 

2040 SYMBOL 132,0,255,255,255,255,255,255,0 

2050 SYMBOL 133,126,126,126,126,126,126,126,255 

2060 RETURN 



148 Super jeux Amstrad 



Programme 



Liste 
des variables : 



Lignes 30 a 150 : initialisation 

Apres la definition des caracteres graphiques par le sous- 
programme en 2000, on saisit le nombre de disques a 
jouer entre trois et sept. 

On dimensionne un tableau D pour connaTtre pendant le jeu 
I'emplacement des sept disques sur les trois tours. 

On remplit le tableau de depart en mettant tous les disques 
sur la premiere tour, le disque le plus grand etant place a 
la position 1 . Puis Ton fait appel au sous-programme en 
1500 pour le dessin du jeu. 

Lignes 200 a 360 : emplacement des disques 

On commence le jeu en saisissant le numero de la tour de 
depart (on deplace dans ce cas le disque superieur). Le 
sous-programme en 800 trouve le numero de ce disque. Si 
cette tour ne comporte aucun disque, on met le drapeau a 
1 (variable Q). Au retour du sous-programme, si Q=1 on 
revient a la saisie de la tour de depart. 

On utilise le meme principe pour la tour d'arrivee. Au 
retour du sous-programme en 800, on teste si le disque du 
dessus n'est pas plus petit. Si e'est le cas, on revient a la 
saisie de la tour de depart. 

Lignes 370 a 420 : fin du jeu 

On teste sur la troisieme tour si tous les disques sont deja 
places. Si ce n'est pas le cas, on retourne a la ligne 200 
pour I'essai suivant, sinon on affiche le message REUSSI 
et le nombre d'essais. 

Lignes 1000 a 1100 : dessin des disques 

Ces lignes dessinent sur I'ecran avec des caracteres 
graphiques les disques tels qu'ils se trouvent dans le 
tableau D(). 



A$ derniere touche enfoncee 

D() emplacement des disques sur les tours 

DA emplacement du disque sur la tour d'arrivee 

DD emplacement du disque sur la tour de depart 

E nombre d'essais 

let J coordonnees du disque a afficher 

K indice de boucle FOR/NEXT 

N nombre de disques 

Q si Q=1, ily a erreur de deplacement 

TA tour d'arrivee 

TD tour de depart 

X() et Y() coordonnees des trois tours 



Super jeux Amstrad 149 



o 

OOx 

O x x 



0X0 



Prenez une grille de trois sur trois, deux joueurs et des 
pions differents pour chacun d'eux. Vous obtenez I'un des 
plus vieux jeux du monde que les hommes ont d'abord 
dessine puis efface des milliers de fois sur le sable. 

Ici chaque joueur place un pion a tour de role en indiquant 
un numero de case sur la grille. Chacun doit empecher 
I'autre d'en aligner trois, sans quoi il perd. 
La partie se joue tres serree contre r'ordinateur qui ne 
laissera passer aucune etourderie. II suffit d'appuyer sur 
ENTER pour commencer une autre partie. 

Mefiez-vous ! Votre Amstrad est tres difficile a battre. 



V-i 

L_J 

a 


4,-, I?,--. 
( ) 1 ( ) 

L__"_. i 


s ., 

u 


8 


3 rn 

I J 


G 


3 



NUHEKO DE Lfi CASE ? 3 



150 



Super jeux Amstrad 



10 REM 0X0 

20 RFM 

30 DIM 1(4), J(4):DE6 

40 T = 

50 MODE 3 : INK 0, 1 r INK 1 r ?4: INK 2, 6: INK 3,15:PAPER 

0:PEN lrBORDER 1 

60 FOR J=l TO 3 

70 FOR 1=0 TO 2 

80 PLOT 200+1*80, 460-J*80:DRAWR 80,0:ORAWR 0,-80:0 

RAWR -80,0:DRAWR 0,80 

90 PFN 2:L0CATE 14+1*5, 0*5-2= PRINT RIGHTS ( STR$ ( 1*3 

+ 0), 1):PEN 1 

100 NEXTrNEXT 

110 GOTO 400 

120 IF T = 9 THEN 1140 

130 PEN 3:L0CATE 1,20:PRINT CHR$ ( 7 ) ; CHRS ( 18 ) ; "NUME 

RO DE LA CASE ?"; = PFN 1 

140 A=VAL(INKEY$):IF A<1 OR A>9 THEN 140 ELSE PRIN 

T A 

150 X = INT(A/3.5).-Y = A-(X*3) 

160 IF P(X+1, Y)<>0 THEN 130 

170 FOR 1=1 TO 360 STEP 6 

180 MOVE 240+X*80,420-Y*80:PLOTR 18*C0S ( I ) , 18*SIN( 

I): NEXT 

190 P(X+1, Y)=l 

200 T=T+1 

380 REM 

390 REM COUP DE L'ORDINATEUR 

400 IF P(2,2)=0 THEN X=2:Y=2:G0T0 680 

410 ERASE I, J : DIM I ( 4 ) , J( 4 ) : P = l : GOSUB 800 

420 FOR 1=1 TO 4 

430 IF I(I)=3 OR J(I)=3 THEN 1100 

440 NEXT 

450 ERASE I,J=DIM I ( 4 ) , J( 4 ) : P = 2: GOSUB 800 

460 FOR 1=1 TO 4 

470 IF I(I)=2 OR J(I)=2 THEN 500 

480 NEXT 

490 P=l 

500 ERASE I,J:DIM I(4),J(4) 

510 X=0:Y=0:M=0 

520 GOSUB 800 

530 FOR 1=1 TO 4 

540 IF I ( I )=3 OR J(I)=3 THEN 1100 

550 IF I ( I )>=M THEN X=I : Y=0 : M=I ( I ) 

560 IF J(I)>=M THEN Y=I : X=0: M=0( I ) 

570 NEXT 

580 IF T=9 THEN 1140 

590 IF P=l AND M = 2 THEN 610 

600 P=P+1:IF P<3 THEN 500 ELSE P=2 

610 IF X=4 THEN IF P(1,1)=0 THEN X=1:Y=1:G0T0 680 

ELSE X=3:Y=3:G0T0 680 

620 IF Y=4 THEN IF P(l,3)=0 THEN X=1:Y=3:G0T0 680 

ELSE X=3:Y=1:G0T0 680 

630 IF X=0 AND Y=0 THEN X=l 

640 FOR 1=1 TO 3 

650 IF Y=0 AND P(X,I)=0 THEN Y=I 

660 IF X=0 AND P(I,Y)=0 THEN X=I 

670 NEXT 

680 P(X,Y)=2 



Super jeux Amstrad 151 



690 PEN 3:L0CATE 1,20:PRINT CHR$ ( 7 ) ; CHR$( 18 ) ; " JE J 

OUE EN";:PEN 1:PRINT (X-l)*3+Y 

700 PLOT 145+X*80,435-Y*80:DRAWR^35,0:DRAWR 0,-35: 

DRAWR -35,0:ORAWR 0,35 

710 FOR 1=1 TO 2000:NEXT 

720 IF P = 2 AND M=2 THEN 1100 

730 T=T+l:GOTO 120 

780 REM 

790 REM COMPTE LES CASES 

800 C=0:O=0 

810 FOR 1=1 TO 3 

820 A=0:B=0 

830 FOR J=l TO 3 

840 IF P(I,J)=P THEN I(I)=I(I)+1 

850 IF P(I, J)<>0 THEN A=A+1 

860 IF P(J,I)=P THEN J(I)=J(I)+1 

870 IF P(J,I)<>0 THEN B=B+1 

880 NEXT J 

890 IF A = 3 AND I ( I ) <>3 THEN I(I)=0 

900 IF B=3 AND J(I)<>3 THEN J(I)=0 

910 IF P( I, I )=P THEN I(4) = I(4) + 1 

920 IF P( I, I ) <>0 THEN C=C+1 

930 IF P(I,4-I)=P THEN J(4)=J(4)+1 

940 IF P(I,4-I)<>0 THEN D=D+1 

950 NEXT I 

960 IF C=3 AND I(4)<>3 THEN I(4)=0 

970 IF D=3 AND J(4)<>3 THEN J(4)=0 

980 RETURN 

1080 REM 

1090 REM RESULTATS 

1100 LOCATE 1,20:PRINT CHR$(18) ; 

1110 IF P=l THEN PRINT"VOUS GAGNEZ" 

1120 IF P=2 THEN PRINT"JE GAGNE" 

1130 GOTO 1160 

1140 LOCATE 1,20:PRINT CHR$(18); 

1150 PRINT"PARTIE NULLE" 

1160 FOR 1=16 TO STEP-1: PRINT CHR$(7);:FOR J=l T 

I»I+10 : NEXT:NEXT 

1170 LINE INPUT A$:RUN 



LlSTE 
DES VARIABLES : 



A 

A, B, C, D 

AS 
I 

K) 
J 

JO 

M 

P 

P(.) 
T 

XetY 



choix du joueur 

nombre de pions deja poses dans une ligne, 

colonne ou diagonale 

derniere touche appuyee 

indice de boucle FOR/NEXT 

nombre de pions dans chaque colonne 

indice de boucle FOR/NEXT 

nombre de pions dans chaque ligne 

nombre de pions autour de la case choisie 

P=1 pion du joueur, P=2 pion de 

I'ordinateur 

position des pions dans la grille 

nombre de pions deja poses 

coordonnees sur la grille du coup du joueur 

ou de I'ordinateur 



152 



Super jeux Amstrari 



Programme 



Lignes 30 a 120 : initialisation 

Les boucles FOR/NEXT des lignes 60 a 1 00 affichent le 
dessin du jeu. 

Lignes 120 a 200 : coup du joueur 

Apres avoir teste si la partie est terminee (T=9), le 
programme saisit le choix du joueur. Les lignes 140 et 160 
verifient que le coup est possible, et les lignes 170 et 180 
affichent lepion. 

Lignes 400 a 730 : coup de I'ordinateur 

Les lignes 400 a 440 verifient si le joueur a gagne en 
utilisant le sous-programme en 800 qui compte le nombre 
de pions dans chaque ligne, colonne et diagonale. 

Les lignes 450 a 490 utilisent le meme principe mais pour 
les pions de I'ordinateur. Si deux pions sont deja alignes, 
on ne cherche plus a bloquer I'adversaire. 

Les lignes 500 a 570 recherchent la meilleure case a jouer, 
done celle ou il y a le plus de pions de I'adversaire ou de 
ses propres pions. La meilleure valeur est conserved dans 
la variable M. 

Si I'adversaire a deja deux pions d'alignes (ligne 590), on 
va directement en ligne 610 pour occuper la troisieme 
case. 

Les lignes 610 a 670 recherchent une solution si les lignes 
precedentes n'en avaient pas trouvee. 

Ce sont les lignes 690 et 700 qui affichent le coup choisi 
par I'ordinateur. 

Lignes 800 a 980 : compte les cases 

Ce sous-programme compte le nombre de pions P de 
chaque ligne, colonne ou diagonale. Si trois pions (de 
n'importe quel joueur) sont deja alignes, on ne tient pas 
compte des tableaux I et J (role des variables A, B, C et D). 



Super jeux Amstrad 153 




TAQUIN 



Le taquin ou puzzle a 15 a ete invente par Sam LLOYD aux 
Etats-Unis dans les annees 1880. II se compose d'un 
plateau et de quinze plaquettes numerotees de 1 a 15 que 
Ton dispose en desordre (plus de vingt mille milliards de 
possibilites). Le vide sur le plateau permet de bouger les 
plaquettes pour les remettre dans leur ordre croissant. 

Lancez le programme en tapant RUN. Apres quelques 
instants, le temps de melanger le taquin, le plateau 
s'affiche a I'ecran. 

Seules les plaquettes voisines de la case vide peuvent se 
deplacer. 

II ne s'agit pas du jeu original de Sam LLOYD. En 
consequence, toutes les positions de depart permettent 
une reconstitution de I'ensemble du jeu. 











FAGUIN 






1 


£ 


3 


4 






s 


e 


7 


8 







10 




11 




13 


1.2 


14 | IS 

1 




an 


EL, NUMERO? 10 

ESSAI3: 40 


J 









154 Super jeuxAmstrad 



10 REM TAQUIN 

20 REM 

30 MODE 1:INK 0,1:INK 1,24:INK 2,15:INK 3,6:PAPER 

0:PEN l:BORDER 1 

40 DIM T(16) 

50 D(1)=-4:D(2)=4:D(3)=1:D(4)=-1 

60 PEN 3:PRINT TAB( 17) ; "TAQUIN": PEN 1 

70 RANDOMIZE TIME 

180 REM 

190 REM MELANGE DU TAQUIN 

200 EOR 1=1 TO 15:T(I)=I:NEXT I 

210 V=16:E=0 

220 FOR I=J TO 128 

230 A=INT(RND*4)+1 

240 IF V+D(A)<1 OR V+D(A)>16 THEN 230 

250 IF INT(V/4)=V/4 AND A=3 THEN 230 

260 IF INT(V/4)=(V-l)/4 AND A=4 THEN 230 

270 T(V)=T(V+D(A)) 

280 T(V + D(A) )=0 

290 V=V+D(A) 

300 NEXT I 

380 RFM 

390 RFM DFSS.TN DU TAQUIN 

400 FOR 1 = 222 TO 462 STEP 80 

410 PLOT 142, 338: DRAW .1,338: DRAW I, 146: DRAW 142,14 

6: DRAW 142,338 

420 NEXT I 

430 FOR 1=110 TO 254 STFP 48 

440 PtOT 142,338:DRAW 462,338:DRAW 462, 400- I : DRAW 

142,400-I:DRAW 142,338 

450 NEXT T:PFN 2 

460 FOR 1=0 TO 1.5 

470 IF T( 1+1 )=0 THFN 510 

480 IF T(I + 1 )<10 THFN 500 

490 LOCATF 1 + 5* ( I - INT ( I /4 )*4 ) , 6+INT( I /4 ) «3: PRINT 

T( 1+1 ): GOTO 510 

500 I OCATF 1l+5*( I - 1 NT { ] /4)*4) r 6+INT( I/4)*3: PRINT 

1(1 + 1 ) 

510 NEXT I 

580 RFM 

590 RFM I E JFU 

60,0 PEN ]• LOCATE 13, 19: PRINT CHR$ ( 18 );: INPUT "QUEL 

NUMERO"; R$:R=VAL(RS) 

610 IF R<1 OR R> 1 5 THEN 600 

620 FOR 1=1 TO 16 

630 IF R=r(.T ) THFN 650 

640 NFXT I 

650 R=T 

660 FOR T = .l TO 4 

670 IF R+D( T ) > 16 OR R+D(I)<1 THEN 690 

680 IF T(R+D( T ) )=0 THEN 710 

Super jeux Amstrad I 155 



690 NEXT I 

700 GOTO 600 

710 T(R+D(I))=T(R) 

720 T(R)=0 

730 R=R-1 

740 LOCATE ll + 5»( R-INT(R/4)*4) , 6+INT(R/4)*3: PRINT" 

750 J=R+D(I):PEN 2 

760 IF T(J+1)<19 THEN 780 

770 LOCATE 10+5*( J-INT( J/4)*4) , 6+INT( J/4)*3: PRINT 

T(J+l).-GOTO 790 

780 LOCATE 1 l+5*( J-INT{ J/4)*4 ), 6+INT( J/4 )*3: PRINT 

T( J+l ) 

790 E = E + 1:PEN 3:LOCATE 1 5, 22: PRINT"ESSAIS: " ; E 

880 REM 

890 REM FIN OU JEU 

900 FOR 1=1 TO 15 

910 IF T(I)oI THEN 600 

920 NEXT I 

930 LOCATE 10 , 1 9: PRINT "0. K VOUS AVEZ TROUVF" 

940 IF INKEY$<>CHRS(13) THEN 940 

950 RUN 



LlSTE 
DES VARIABLES : 



A 


nombre aleatoire pour le melange du taquin 


DO 


direction du deplacement 


E 


nombre d'essais 


1 


indice de boucle FOR/NEXT 


J 


indice de boucle FOR/NEXT 


R$ 


reponse du joueur 


R 


numero de la case a deplacer 


TO 


contient les nombres du taquin 


V 


pointeurde la case vide 



156 



Super jeux Amstrad 



Programme 



Lignes 30 a 300 : initialisation et melange 

Le tableau T correspond aux seize cases du taquin. On y 
place done les numeros de 1 a 15 (ligne 200). Le tableau D 
correspond au deplacement des plaquettes. 

Tableau T() Tableau D() 



1 


2 


3 


4 


5 


6 


7 


8 


9 


10 


11 


12 


13 


14 


15 


/ 



T 
- 1 «_ x -► +1 

I 

+ 4 



On melange les numeros en permutant deux cases 
designees par un nombre aleatoire et le pointeur de la case 
vide (variable V). Cent vingt-huit permutations sont 
necessaires pour melanger correctement le taquin. 

Lignes 400 a 510 : dessin du taquin 

On affiche le jeu a I'ecran dans le nouvel ordre (ou plutot 
desordre !). 

Lignes 600 a 790 : le jeu 

On deplace le numero tape par le joueur en verifiant qu'il 
n'est pas inferieur a 1 ou superieur a 15, et qu'il est bien 
place a cote de la case vide. Le deplacement est calcule 
avec le tableau D. 

Lignes 900 a 950 : fin du jeu 

A chaque essai on verifie qu'il reste des plaquettes dans le 
desordre. Si e'est le cas on retourne a la ligne 600 pour un 
nouvel essai. 



Super jeux Amstrad 157 




LE COMPTE EST 
BON 



II n'est peut-etre pas encore 19 heures mais rien ne vous 
empeche de commencer des maintenant a vous entramer 
au « compteest bon ». 

Au bout d'un certain temps de reflexion, Amstrad vous 
presente sept nombres aleatoires qu'il vous faudra 
combiner avec les quatre operations pour trouver le 
huitieme indique au milieu de I'ecran. 

Cinquante secondes plus tard, votre ordinateur affiche 
alorssa solution. 

II vous reste encore du temps ? Alors tapez sur le clavier 
(pas trop fort !) et une autre serie de nombres apparattra. 




LE COMPTE EST BON 

100 S 

7 S 



— > 283 



MA SOLUTION. . 

S 

5* 7= 35 
35* 25= 87S 
875/ S= 175 
17S + 8= 183 
183+ 100- 283 



158 Super jeux Amstrad 



10 REM LE COMPTE EST BON 

20 REM 

38 MODE 1.- INK 0,1:INK 1,24:INK 2,6:PAPER 0:PEN 2:B 

ORDER 1 : PRINT TAB(ll);" LE COMPTE EST BON":PRINT:P 

EN 1 

40 RANDOMIZE TIME: NC=INT( RND*4 )+4 

50 S$="" 

60 EOR 1=1 TO NC 

70 N(I)=INT(RND*14)+1 

80 IF N(I)<11 THEN 100 

90 N(I)=(N(I)-10)»25 

100 IF I>1 THEN 130 

110 R=N(l)rS$=STR$(N(l)) 

120 GOTO 290 

130 0=INT<RND*6)+1 

140 S$=S$+"$"+STR$(R) 

150 ON GOTO 160,180,210,240,210,240 

160 R=R+N(I):S$=S$+"+"+$TR$(N(I)) 

170 GOTO 270 

180 R=R-N(I):IF R<1 THEN 40 

190 S$=S$+"-"+STR$(N(I)) 

200 GOTO 270 

210 IF N(I)=1 THEN 40 

220 R=R*N(I):S$=S$+"*"+STR$(N(I)) 

230 GOTO 270 

240 IF INT(R/N(I))<>R/N(I) THEN 40 

?50 IF N(I)=1 THEN 70 

260 R=R/N(I):S$=S$+"/"+STR$(N(I)) 

270 IF R>999 THEN 40 

280 S$=S$+"="+STR$(R) 

290 NEXT I 

300 IF R<100 THEN 40 

310 IF NC = 7 THEN 500 

380 REM 

390 REM AUTRES NB 
400 FOR I=NC+1 TO 7 
410 N(I)=INT(RND*14)+1 
420 IF N(I)<11 THEN 440 
430 N(I)=(N(I)-10)*25 
440 NEXT I 

480 REM 

490 REM MELANGE 

500 FOR 1=1 TO 14 

510 A=INT(RND*7)+1 

520 B=INT(RND*7)+1 

530 C=N(A):N(A)=N(B):N(B)=C 

540 NEXT I 

580 REM 

590 REM NB PROPOSES 

600 FOR 1=1 TO 7 

610 PRINT " ";N(I), 

Super jeuxAmstrad I 159 



620 NEXT I 

630 PRINT:PRINT 

640 PRINT TAB(14); "-->"; R: PRINT: PRINT 

680 REM 

690 REM BOUCLE 

700 PRINT CHR$(7); 

710 FOR 1=1 TO 28500 

720 NEXT I 

730 PRINT CHR$(7) 

780 REM 

790 REM SOLUTION 

800 PRINT" MA SOLUTION. .. ": PRINT: PRINT T 

AB(ll); 

810 FOR 1=1 TO LEN(S$) 

820 IF MID$(S$,I,1)="$" THEN PRINTrPRINT TAB(ll):: 

GOTO 840 

830 PRINT MID$(S$,I, l)j 

840 NEXT I 

850 IF INKEY$<>CHR$(13) THEN 850 

860 RUN 



160 Super jeux Amstrad 



Programme 



Liste 
des variables : 



Lignes 30 a 310 : initialisation 

La variable NC contient un nombre aleatoire compris entre 
4 et 7 donnant le nombre d'operations a effectuer pour 
parvenir a la solution. Les chiffres utilises pour ces 
operations sont places dans le tableau N, I'operation elle- 
meme etant placee dans la chame S$ et le resultat dans R. 

Dans le cas oil la variable R est superieure a 999 ou 
inferieure a 100, on retourne au debut du programme 
(ligne 40). 

Lignes 400 a 440 : autres chiffres 

Si le nombre de chiffres NC est inferieur a 7, on complete 
le tableau N avec d'autres chiffres aleatoires. 

Lignes 500 a 540 : melange 

Pour derouter le joueur, on melange le tableau N en 
utilisant deux nombres aleatoires A et B. 

Lignes 600 a 730 : nombres proposes et boucle d'attente 

Apres I'affichage des 7 chiffres, on effectue une boucle 
fermee (lignes 710 et 720) d'environ 50 secondes, le 
temps que le joueur trouve une solution. 

Lignes 800 a 860 : solution 

La boucle d'attente etant terminee, on affiche a I'ecran la 
solution de I'ordinateur en decoupant la chalne de 
caracteres S$ avant de retourner a une nouvelle 
proposition des qu'une touche est enfoncee (ligne 850). 



AetB 
C 
I 
NC 

N() 

R 
SS 



nombre aleatoire pour le melange 

utilisee pour les inversions dans le melange 

indice de boucle FOR/NEXT 

nombre de chiffres utilises pour le nombre a 

trouver 

tableau des chiffres aleatoires 

type d'operation a effectuer 

resultat des operations 

liste des operations effectuees pour trouver la 

solution 



Super jeux Amstrad 



161 




BACCALAUREAT 



Jouez au baccalaureat avec votre Amstrad ! 

L'ordinateur choisit pour vous une lettre au hasard. Vous 
devez trouver des noms de personnages celebres, de pays, 
de villes, d'animaux et de vegetaux commengant par cette 
lettre. Apres le temps qu'il vous conviendra, et des que 
vous aurez appuye sur la touche ENTER, le programme 
propose ses solutions parmi les 650 mots deja dans la 
machine. 



BACCALAUREAT 



.J'AI CHOIST LA LETTRE P 



PERSONHAGE CELEBRE : PASCAL 



PAVS OU ETAT: 
UILLE: 
ANIMAL : 
UECETAL : 



PARAGUAY 
PALERME 
PELICAN 
PAP AVER 



AFPUVEZ SUR 'ENTER' 



162 



Super jeux Amstrad 



19 REM BACCALAUREAT 

20 REM 

30 MODE 1:INK 0,1:INK 1,24:PAPER 0.-PEN l:BORDER 1 

40 DEFINT A-Z 

50 DIM N$(26,5,5) 

60 RANDOMIZE TIME 

70 LOCATE 10,10:PRINT H JE M'INSTRUIS ..." 

80 LOCATE 2,14:PRINT B LETTRE: H ; 

90 FOR 1=1 TO 26 

100 PRINT CHR$(I+64); 

110 FOR J=l TO 5 

120 FOR K=l TO 5 

130 READ N$(I,J,K) 

140 IF ASC(N$(I, J,K))ol + 64 AND N$( I, J, K) <> "*" THE 

N LOCATE 0,20:PRINT"ERREUR DANS LES DATAS A LA LET 

TRE ";CHR$(I+64):ST0P 

150 NEXT: NEXT: NEXT 

180 REM 

190 REM LE JEU 

200 L=INT(RND*26)+1 

210 CLS:LOCATE 15, 2: PRINT "BACCALAUREAT" 

220 LOCATE 9, 9: PRINT" J ' AI CHOISI LA LETTRE ":CHR$( 

L+64) 

230 PRINT:PRINT:PRINT H PERSONNAQE CELEBRE: " : PRINT H P 

AYS OU ETAT: " 

240 PRINT-VILLE: ": PRINT "ANIMAL : " : PRINT"VEGETAL : " 

250 LOCATE 1, 20: PRINT"APPUYEZ SUR 'ENTER' POUR MA 

SOLUTION" 

260 IF INKEY$<>CHR$(13) THEN 260 

270 FOR 1=1 TO 5 

280 LOCATE 21, 1+11 

290 N=INT(RND*5)+1 

360 IF L=24 AND 1=2 THEN PRINT"PAS DE PAYS EN X":Q 

OTO 330 

310 IF N$(L, I, N)="*" THEN 290 

320 PRINT N$(L,I,N) 

330 NEXT 

340 LOCATE 1,20:PRINT CHR$( 18) ; TAB( 11 ) ; "APPUYEZ SU 

R 'ENTER'" 

350 IF INKEY$<>CHR$(13) THEN 350 

360 GOTO 200 

480 REM 

490 REM DONNEES 

500 DATA ADAM, ADER, ANDERSEN, ANQUETIL , ARAGON 

510 DATA AFGHANISTAN, ALGERIE, ALBANIE, ALLEMAGNE, ARG 

ENTINE 

520 DATA ABIDJAN, ACAPULCO, AIME, AJACCIO, ALGER 

530 DATA AIGLE, AIGRETTE, ALLIGATOR, ANTILOPE.ARA 

540 DATA ACONIT.AMANITE, ANEMONE, ARACHIDE, ARTICHAUT 

550 DATA BACH, BALZAC, BARTOK, BAUDELAIRE, BLERIOT 

560 DATA BULGARIE,BELGIQUE,BRESIL,BOLIVIE,BIRMANIE 

Super jeux Amstrad 163 



DATA BADEN-BADEN, BAGDAD, BALE, BAYEUX, BRUXELLES 

DATA BADOUIN.BALEINE, BAR, BASSET, BELETTE 

DATA BANANE, BAOBAB, BRUYERE, BRUQNON, BAZZIA 

DATA CALIGULA, CALVIN, CAMUS, CARNOT, CHURCHILL 

DATA CAMBODGE.CAMEROUN, CANADA, CHILI, CHINE 

DATA CAHORS, CALAIS, CASABLANCA, CHAMBERY, CONCARN 

DATA CHA r, CAI LLE, CHEVAL, CHEVREU I L, CONDOR 

DATA CACAOYER, CACTUS, CAMEL I A, CERISE, CHOUX 

DATA DAGOBERT,DAGUERRE,DANTON,DENEUVE,DESCARTE 

DATA DANEMARK, DAHOMEY, DOMINICAINE (REP.).DAGHE 



570 

580 

590 

680 

610 

620 

EAU 

630 

640 

650 

S 

660 

STAN,* 

670 DATA 



680 

690 

700 

710 

IE 

720 

730 

HANT 

740 DATA 



DATA 
DATA 
DATA 
DATA 

DATA 
DATA 



750 

760 

770 

780 

790 

800 

810 

820 

830 

840 

R 

850 

860 

870 

G 

880 

890 

900 

910 

920 

930 

940 

950 

960 

970 



DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 

DATA 
DATA 
DATA 

DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 



DAKAR, DELHI, DIEPPE .DJIBOUTI .DOUBAI 
DAI N, DAUPHIN, DOGUE, DALMAT I EN, DINOSAURE 
DATTE, DAHLIA, DIONEE, DYTIQUE, DAPHNEE 
EDISON, EIFFEL, EINSTEIN, ELUARD, EUR IP IDE 
ETHIOPIE, ESPAGNE, EQUATEUR, ETATS-UNIS, EGYP 

EVIAN, EVREUX, EDIMB0UR6, ETRETAT, ETAMPE 
ECREVISSE.EPINOCHE, ESCARGOI", ECUREUIL , ELEP 



EPICEA, EPINARD, EGLANTIER 
FANGIO, FARADAY, FAURE.FEL 
FINLANDE, FRANCE,*,*,* 
FLORENCE, FALAISE, FATIMA, 
FAISAN, FAON, FAUCON, FAUVE 
FUSAIN, FRAISE,FIGUE, FUCH 
GABIN,GAGARINE,GALLIENI, 
GABON, GHANA, GRECE.GUATEM 
GRENADE, GDANSK, GENES, GEN 
GAZELLE, GELINOTTE,GERBOI 
GAINIER,GIROFLEE,GLAIEUL 



, ELLEBORE, ENDIVE 
LINI,FERNANDEL 

FRANCFORT,FERRARE 

TTE, FURET 

SIA.FOUGERE 

GALILEE, GAMA 

ALA.GUYANE 

EVE, GLASGOW 

SE, GIBBON, GIRAFE 

.GLYCINE, GRENADIE 



NSTOWN 
980 DATA 
990 DATA 



HIPPOCRATE,HINAULT,HlTCHCOK,HOMERE, HESSE 
HONGRIE, HONDURAS, HAWAI, HAITI, HONG-KONG 
HAMBOURG.HANOI, HEL SINK I, HIROSHIMA, HAIPHON 

HAMSTER,HANNETON,HIBOU,HIRONDELLE,HOMARD 
HARICOT, HETRE.HEVEA, HEL I ANTHE, HELIOTROPE 
INGRES, I ONESCO, ISABEY, INDY, I CARE 
IRLANDE, INDE, ISRAEL, ITALIE, ISLANDE 
ISTANBUL, IRKOUTSK, IBIZA, ISPAHAN, IZMIR 
IBIS, IDE, IGUANODON, IMPALA, IXODE 
ICAQUIER, IGNAME, IRIS, I P EC A, I POME E 
JACQUARD, JARRY, JAURES, JUNOT, JENSEN 
JAPON, JORDANIE, JAMA IOUE, JERSEY, JUI LAND 
JAFFA, JERUSALEM, JOHANNESBURG, JEMAPPES, JOH 

JAGUAR, JABIRU, JACASSE, JACO, JARS 
JOUBARDE, JASMIN, JACINTHE, JUTE, JONQUILLE 



164 



Super jeux Amstrad 



1006 

1010 

1020 

1030 

1040 

1050 

1060 

1070 

1080 

1090 

1100 

1110 

ACO 

1120 

1130 

1140 

1150 

1160 

1170 

1180 

1190 

1200 

1210 

1220 

1230 

1240 

1250 

1260 

ES 

1270 

1280 

1290 

1300 

AT 

1310 

1320 

N 

1330 

1340 



DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 

DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 

DATA 
DATA 
DATA 
DATA 

DATA 
DATA 



KENNEDY, KAFKA, KAPLAN, KEATON, KESSEL 
KENYA, KOWEIT, KANSAS, KAZAKHSTAN, K I RGHIZIE 
KABOUL, KIEV, KARACHI, KATMANDOU, KIROV 
KOALA, KOB, KANGOUROU, KINKAJOU, KERABAU 
KAKI,KAPOKIER f KARITE,KAWA,KOLATIER 
LAMARTINE, LULLI, LUTHER, LISZT, LAFITTE 
LAPONIE, LAOS, LIBAN, LIBERIA, LYB IE 
LASSA.LAS VEGAS, LILLE, L I SBONNE, LONDRES 
LEZARD, LANGOUSTE, LIEVRE, LAMA, LOUTRE 
LIN,LYS,LIERRE,LENTILLE,LAITUE 
MUSSET, MAHOMET, MOZART, MAURIAC, MARX 
MEXIQUE,MAURITANIE, MALDIVES, MALAYS I E.MON 

MADRID, MUNICH, MELBOURNE, MAYENCE, MILAN 
MANCHOT,MORUE,MOUCHE,MAINATE,MOULE 
MUGUET,MACHE, MAIS, MANDARINE, MOUTARDE 
NELSON, NIETZSCHE, NOBEL, NICOT, NEWTON 
NIGER, NORVEGE, NICARAGUA, NEPAL, NIGERIA 
NAPLES, NOUMEA, NAIROBI, NAGASAKI, NANTES 
NAJA,NANDOU,NAUTILE,NEPE,NEREIDE 
NAVET,NARCISSE,NEFLE, NENUPHAR, NOIX 
OFFENBACH, OHM, OBERKAMPF T OL I VARES, OUDINOT 
OUGANDA, OREGON, OHIO, ONTARIO, OKLAHOMA 
OTTAWA, OSTENDE, OSLO, OSAKA, ORLEANS 
OKAPI, ORANG-OUTANG, ORVET,OTAR IE, OURS 
OSEILLE,ORTIE,ORCHIDEE, ORANGE, OLIVE 
PAGNOL,PAPIN,PARMENTIER, PASCAL, PASTEUR 
PAKISTAN, PANAMA, PARAGUAY, PEROU, PHIL I PP IN 

PALERME,PARIS,PARME,PEKIN,PHILADELPHIE 
PANDA, PAON.PANTHERE, PELICAN, PERCHE 
PALMIER, PAPAYER,PASTEQUE,PAVOT,PERVENC HE 
QUINET, QUILL ARD,QUINTANA,QUINTON, QUI CHER 



QATAR, QUBEC,*, 
QUETTA, QUEZON 



CITY, QUIBERON, QUITO, QUINTI 



DATA QUELEA.QUISCALE, QUETZAL,*,* 

DATA QUASSIA, QUATR E-EP ICES, QUEBRACHO, QUETSCHE 
.QUINQUINA 
1350 DATA RABELAIS, RACINE, REMBRANDT, RICHELIEU, ROSS 



INI 

1360 

1370 

1380 

1390 

1400 

1410 



DATA 
DATA 
DATA 
DATA 
DATA 
DATA 



L,SOMALIE 
1420 DATA 
LM 



RHODESIE, REUNION, ROUMANIE, RUANDA, RUSS IE 
RABAT, ROCAMADOUR, ROME, ROUEN, REIMS 
RAIE,RAINETTE,RAT,RENNE,ROUSSETTE 
RAISIN, RAPHIA, ROSE, RHUBARBE, RICIN 
SADE, SARTRE, SCHUBERT, SHAKESPEARE, STAL I NE 
SUEDE, SALVADOR, SAINT-MARIN (REP. ), SENEGA 

SAIGON, SALZBOURG, SANTIAGO, SAUMUR, STOCKHO 



Super jeuxAmstrad 165 



1436 DATA SAJOU f SALAMANDRE, SANGLIER, SARDINE, SAUTER 

ELLE 

1440 DATA 

1450 DATA 

ISTOCLE 

1460 DATA 

.TURQUIE 

1470 DATA 



SALSIFIS,SAU6E,SAULE,SEIGLE, SEQUOIA 
TCHAIKOVSKI,TELEMANN,TIBERE,TROTSKI,THEM 



S 

1480 

1490 

1500 

1510 

1520 

1530 

1540 

1550 

1 

1560 

1570 

1580 

1590 



TANZANIE, TCHAD, TCHECOSLOVAQUIE, THAILANDE 
TOMBOUCTOU, TOULOUSE, TOURNUS, TRIPOLI, TOUR 



DATA TORTUE, TAPIR, TARENTULE, TATOU, TAUPE 

DATA TOMATE,TREFLE,TROENE, TULIPE,TABAC 

DATA ULYSSE,UREY,UTAMARO,URREDA,URRAQUE 

DATA URUGUAY, URSS, UKRAINE, USA, UTAH 

DATA UTRECHT, USTER, UZEL, URRUGNE, URUGUAIANA 

DATA URUBU,UROCYON,URANIE,URANOSCOPE,* 

DATA UPAS,URUNDAY,USNEE,*,* 

DATA VAILLANT, VALERY, VAUBAN, VAUVENARGUES, VERD 

DATA VENEZUELA, VIET-NAM, *, *, * 

DATA VIENNE,VENISE, VANCOUVER, VERDUN, VINCENNES 

DATA VANNEAU, VIPERE, VARAN, VAUROUR, VIGOGNE 

DATA VICTORIA-REGIA,VIGNE,VIOLETTE,VOLUBILIS, 

VERVEINE 

1600 DATA WAGNER, WATT, WATTEAU, WIDAL, WILDE 

1610 DATA WISCONSIN, WYOMING,*,*,* 

1620 DATA WORCESTER, WORMS, WINCHESTER, WATERLOO, WASC 

HINGTON 

1630 DATA WAPITI,WORABEE,*,*,* 

DATA WALABA,WENGE,WITLOOF,WOLFIA,* 

DATA XENOPHON, XENOCR ATE, XERXES, XYLANDER,* 

f) A T A * * * * * 

DATA XANTHI,XERTIGNY T XOCHICALCO,XOCHIMILCO,* 

DATA XANCUS,XENOPUS,XERUS,XIPHODON,XIPHOPHORE 

DATA XANTHORIA,XANTHOSOMA,XANTHO,* r * 

DATA YAMAMOTO, YOUNG, YVON, YUKAWA, YSAYE 

DATA YEMEN, YOUGOSLAVIE, *, *, * 

DATA YAKIMA, YAMAGATA, YAOUNDE, YDES, YOKOHAMA 

DATA YACK, YETI, YOKOHAMA, YORKSHIRE- TERR I ER.YOR 

YEUSE, YLANG-YLANG, YOH 1MB EHE, YUCCA,* 

DATA ZAPATA, ZAVATTA, ZEPPELIN, ZEUS, ZOLA 

DATA ZAI RE, ZAMBIE.ZEL AND E, ZIMBABWE, ZANZIBAR 

DATA ZABRZE,ZACATECAS,ZACATECOLUCA,ZURICH,ZAG 

DATA ZAMENIS,ZEBRE,ZEBU,ZIBELINE,ZICRONE 

DATA ZACINTHE.ZAMIER.ZEEN, ZINNIA, ZOSTERE 



1640 

1650 

1660 

1670 

1680 

1690 

1700 

1710 

1720 

1730 

KSHIRE 

1740 DATA 

1750 

1760 

1770 

REB 

1780 

1790 



166 I Super jeux Amstrad 



Programme 



Liste 
des variables : 



Lignes 30 a 150 : initialisation 

Apres I'initialisation des nombres aleatoires, le programme 
place dans le tableau N$ les 650 mots des DATA. 

Lignes 200 a 360 : le jeu 

Le nombre aleatoire contenu dans la variable L donne la 
lettre choisie par I'ordinateur. Le programme affiche les 
cinq types de mots a trouver. 

Des qu'une touche est enfoncee (ligne 260), le programme 
affiche cinq mots du tableau N$. 

Lignes 500 a 1790 : donnees 

II y a cinq mots par type pour vingt-six lettres. Quand 
certains mots manquent, ils sont remplaces par des 
asterisques. Vous pouvez bien sOr ajouter de nouveaux 
mots. 



I indice de boucle FOR/NEXT 

J indice de boucle FOR/NEXT 

K indice de boucle FOR/NEXT 

L lettre choisie 

N numero du mot choisi 

N$( ) liste des mots 



Super jeuxAmstrad 167 



E 


J 

E 


M S X 


5 


1 N E 


S u 


PER 


A 


X 


E SE 



TOURS 
MOTS CACHES 



Apres avoir donne une liste de mots (de 5 a 1 5) de 

10 lettres maximum, votre ordinateur affiche une grille de 

16 lettres sur 16, et a droite de I'ecran la liste des mots. 

Les mots selectionnes se trouvent parmi les autres 
caracteres. Vous pouvez les lire a I'endroit (ordinateur) ou 
a I'envers (ruetanidro) mais non melanges. 

lis peuvent avoir pris diverses directions, comme le 
montre le schema suivant pour le mot MICRO : 





R R R 

C C C 

I I I 

M M M 

ORCIM MICRO 

M M M 

I I I 

c c c 

R R R 



Votre ordinateur etant tres patient, vous pourrez rester 
autant de temps que vous voudrez a chercher les mots 
caches. II vous suffira d'appuyer sur ENTER pour obtenir 
la solution (les lettres qui composent les mots deviennent 
rouges). 



168 Super jeuxAmstrari 



16 REM MOTS CACHES 

20 REM 

30 MODE 1:INK 0,1:INK 1,24:INK 2,6:PAPER 0:PEN 1:B 

ORDER 1 

40 RANDOMIZE TIME 

50 DIM M$(15),G$(20) 

60 B$ = M 

70 FOR 1=1 TO 20:G$(I)=B$:NEXT I 

80 INPUT*NOMBRE DE MOTS" ; NM 

90 IF NM<5 OR NM>15 THEN 80 

100 FOR 1=1 TO NM 

110 PRINT-HOT"; I;: INPUT M$(I) 

120 IF LEN(M$(I))>12 THEN 110 

130 NEXT I 

140 FOR 1=1 TO NM 

150 S=INT(RND+0.5)*-l:IF S=0 THEN S=l 

160 D=INT(RND»4)+1 

170 X=INT(RND*20)+1 

180 Y=INT(RND»20)+1 

190 L=LEN(M$(I)) 

200 ON D GOTO 300,400,500,700 

280 REM 

290 REM HORIZONTAL 

300 P=X+((L-1)*S): IF P<1 OR P>20 THEN 150 

310 IF P>X THEN A=X:GOTO 330 

320 A=P 

330 IF MID$(G$(Y),A f L)<>LEFT$(B$,L) THEN 150 

340 C=l:FOR J=X TO P STEP S: G$( Y)=LEFT$(GS( Y) , J-l ) 

+MID$(M$(I),C,1)+RIGHT$(G$(Y),20-J) 

350 C=C+1:NEXT J 

360 GOTO 710 

380 REM 

390 REM VERTICAL 

400 P=Y+( (L-1)*S): IF P<1 OR P>20 THEN 150 

410 FOR J = Y TO P STEP S 

420 IF MID$(G$(J),X, 1)<>" " THEN 150 

430 NEXT J 

440 C=l:FOR J = Y TO P STEP S: G$ ( J) =LEFT$ ( G$ ( J) , X-l ) 

+MID$(M$(I),C, 1)+RIGHT$(G$(J),20-X) 

450 C=C+1:NEXT J 

460 GOTO 710 

480 REM 

490 REM HAUT 

500 Z=-l 

510 P=X+((L-1)*S): IF P<1 OR P>20 THEN 150 

520 IF Y+L*Z<1 OR Y+L*Z>20 THEN 150 

530 C=Y:A=l:FOR J=X TO P STEP S 

540 IF MID$(G$(C), J, 1)<>" M THEN 150 

550 C=C+Z:A=A+1:NEXT J 

560 C=Y:A=l:FOR J=X TO P STEP S 

570 G$(C)=LEFT$(G$(C), J-l )+MID$ (M$ ( I ) , A, 1 )+RIGHT$ ( 

G$(C),29-J) 

580 C=C+Z:A=A+1:NEXT J 

Super jeux Amstrad I 169 



590 GOTO 710 

680 REM 

690 REM BAS 

700 Z=l:GOTO 518 

710 NEXT I 

780 REM 

790 REM EDITION OE LA GRILLE 

800 CLS 

810 EOR 1=1 TO 20 

820 FOR J=l TO 20 

830 C$=MID$(G$(I), J, 1): IF C$=" " THEN PRINT CHR$(R 

ND*25+65);:GOTO 850 

840 PRINT C$; 

850 NEXT J 

860 IF K = NM THEN PRINT" ";M$(I) ; 

870 PRINT:NEXT I 

880 PRINT: PRINT"APPUYER SUR 'ENTER' POUR LA SOLUTI 

ON"; 

890 IF INKEY$<>CHR$(13) THEN 890 

900 PEN 2 

910 FOR 1=1 TO 20 

920 FOR J=l TO 20 

930 IF MID$(G$(I), J, 1)<>" " THEN LOCATE J,I:PRINT 

MID$(G$(I), J,l) 

940 NEXT J, I 

950 PEN l:LOCATE 1 , 22: PRINT "APPUYER SUR 'ENTER' PO 

UR UN AUTRE JEU"; 

960 IF INKEY$<>CHR$(13) THEN 960 

970 RUN 



LlSTE 
DES VARIABLES : 



A 

AS 

C 

CS 

D 

G$() 

I 

J 

L 

M$() 

NM 

P 

S 

XetY 



position de debut des mots dans la grille G$ 

derniere touche enfoncee 

pointeur des caracteres dans les mots caches 

caractere a afficher 

choix du sens d'ecriture : horizontal, vertical 

ou diagonal 

grille contenant les mots caches 

indice de boucle FOR/NEXT 

indice de boucle FOR/NEXT 

longueur des mots 

mots choisis 

nombre de mots 

position des mots caches dans la grille G$() 

sens d'ecriture des mots 

coordonnees d'un caractere dans la grille 

G$() 

Z=1 pour la diagonale vers le bas, Z=-1 

pour la diagonale vers le haut 



170 I Super jeuxAmstrad 



Programme 



Lignes 30 a 200 : initialisation 

On saisit le nombre de mots au clavier. II doit etre compris 
entre5 et 15 (ligne 90). 

Le nombre aleatoire D donne la direction dans laquelle les 
mots seront ecrits dans la grille, la variable S en donnant l( 
sens et X et Y le point de depart. 

Lignes 300 a 710 : horizontale, verticale et diagonale 
(haut et bas) 

Les nombres aleatoires X et Y designant I'emplacement du 
premier caractere a placer dans la grille, on calcule le 
pointeur P en tenant compte de la longueur et du sens 
d'ecriture (variables LetS). 

On place chaque caractere du mot M$() dans les cases 
correspondantes du tableau G$(). 

Lignes 800 a 970 : resultats 

On affiche sur I'ecran la grille G$() en remplagant tous les 
espaces par des caracteres aleatoires compris entre A et Z 

Des que la touche ENTER est appuyee, on passe en revue 
le tableau G$ pour identifier sur I'ecran les mots caches. 



VFTSBIFSNRBPAEPUTMLR JAUNE 
JOIWJLDRSYYDCDLJNRJS UERT 
XLMPWGTBZMPNNKDENUAJ ROUGE 
YSOEGGMXJJORVDSNUNEK BLEU 
CILMTRREKICOWBRGZHLU NOIR 
ULGKCGGWJUCSJFULXKRD BLANC 
yDKXNNORBTKEQNLIGFXG ROSE 
RIONAFUUERTPUWSQCUUZ MARRON 
EKERNTPUKPLLDATAHEUB GRIS 
MFOORELYLMKMMRAHNTKD ORANGE 
DHXFBZWCCREyZKWHRYTI 
ENZNOGRISORKGJEXGFPN 
UMMPCLTCFCOJMBRPCZMP 
FTMJNIGCNXUOQYTUELBM 
F S VO AXDMR SGWNCCRDW H U 
LEOYLWONEUEGOMVLURRB 
UJFUBMCCKSJMARRONPXJ 
EWXFMOPXOyTNDIEEVCRF 
RMRYKZXSBIGYZDNXGLBR 
OOMTJUFUWXMSEPJFTWLB 

APPUVER SUR 'ENTER' POUR LA SOLUTION 



Super |eux Amstrad 



171 




INVERSION 



Ce jeu consiste a remettre dans I'ordre les chiffres 12 3 4 
5 6 7 8 9 ou les lettres A B C D E F G H I que I'ordinateur 
affiche au depart dans le desordre. 

Pour cela il propose d'inverser un nombre de chiffres que 
vous lui indiquerez a partir de la gauche de la serie 
affichee. II retourne alors tous les chiffres concerned (ou 
les lettres) et affiche la nouvelle suite obtenue. 

Le renversement se poursuit jusqu'a la remise en ordre 
des 9 chiffres ou lettres. Le programme affiche alors le 
nombre d'essais. 

A vous de trouver la meilleure tactique ! 




INUERSION 



E IB 1^ O: A 1> <S 



3 -» 



NB D'INUERSIONS 



31 



172 



Super jeux Amstrad 



10 REM INVERSION 

20 REM 

30 MODE 0: RANDOMIZE TIME 
40 T=INT(RND*2)+1 
50 A$(1)="ABCDEFGHI" 
60 A$(2)="123456789" 
70 T$=A$(T) 

180 REM 

190 REM MELANGE 

200 FOR 1=1 TO 20 

210 V=INT(RND*9)+1 

220 W=INT(RND*9)+1 

230 X$=MID$(T$,V,1) 

240 T$=LEFT$(T$,V-1)+MID$(T$,W,1)+RIGHT$(T$,9-V) 

250 T$=LEFT$(T$,W-1)+X$+RIGHT$(T$,9-W) 

260 NEXT I 

280 REM 

290 REM DESSIN DU JEU 

300 CLSrPRINT TAB(6); "INVERSION" 

310 FOR 1=80 TO 592 STEP 64 

320 PLOT 16,248:DRAW I,248.-DRAW I,216:DRAW 16,216: 

DRAW 16,248 

330 NEXT I 

340 FOR 1=1 TO 9 

350 LOCATE I*2 T 14:PRINT MID$ ( STR$ ( I ) , 2 ) 

360 NEXT I 

370 FOR 1=1 TO 9 

380 LOCATE 1*2, 11: PRINT MID$(T$,I,1) 

390 NEXT I 

400 IF T$=A$(T) THEN 700 

480 REM 

490 REM SAISIE 

500 LOCATE 2, 18: PRINT"NB D' INVERSIONS ?"; 

510 N$=INKEY$:IF N$="" THEN 510 ELSE N=VAL(N$) 

520 IF N<2 OR N>9 THEN 510 

530 FOR 1=1 TO N/2 

540 X$=MID$(T$,I, 1) 

550 T$=LEFT$(T$,I-1)+MID$(T$,N-I+1,1)+RIGHT$(T$,9- 

I) 

560 T$=LEFT$(T$,N-I)+X$+RIGHT$(T$,8-N+I) 

570 NEXT I 

580 E=E+1 

590 GOTO 370 

680 REM 

690 REM FIN 

700 LOCATE 2, 18:PRINT"V0US AVEZ TROUVE ": PRINT TAB 

(4); "EN";E; "ESSAIS" 

710 IF INKEY$oCHR$(13) THEN 710 

720 RUN 



Super jeux Amstrad 173 



Programme 



Liste 
des variables : 



Lignes 30 a 70 : initialisation 

Le tableau A$ donne les suites de lettres ou de chiffres 
utilisees dans le jeu. La variable T donne au hasard une de 
ces deux suites. 

Lignes 200 a 260 : melange 

Le melange est effectue en prenant deux des chiffres (ou 
lettres) au hasard dans T$ et en les inversant. En repetant 
20 fois ce processus on obtient une suite tout a fait dans le 
desordre. 

Lignes 300 a 400 : dessin du jeu 

Apres le dessin du cadre, on utilise une boucle pour 
afficher les caracteres contenus dans la variable T$. 

Lignes 500 a 590 : saisie 

On saisit par INKEYS le nombre d'inversions a effectuer. 
On teste si le nombre donne est superieur a 1 et inferieur a 
10 (ligne 520). 

La boucle FOR/NEXT en 530 effectue les permutations 
dans la variable T$. 

La ligne 580 increments le compteur d'essais E. 
Lignes 700 a 720 : fin de partie 

Des que la variable T$ est egale a la suite initiale (tableau 
A$), on affiche le nombre d'essais avant de recommencer 
une nouvelle partie. 



AS 


caractere saisi par INKEYS 


A$() 


liste des caracteres a inverser 


E 


nombre d'inversions 


I 


indice de boucle FOR/NEXT 


N 


valeur numerique de N$ 


NS 


nombre d'inversions a effectuer 


T 


type de liste (chiffres ou lettres) 


T$ 


liste des caracteres a inverser 


V, W et XS 


utilisees pour le melange 



174 Super jeux Amstrad 




JEU DU MORSE 



Entramez-vous au morse tout en vous amusant. 
L'ordinateur va vous dormer en code morse un mot parmi 
les 300 que contient le programme. A vous de le decouvrir 
en I'ecoutant. 

Si le mot que vous proposez n'est pas le bon, Amstrad 
vous donnera la solution. II suffit d'appuyer sur ENTER 
pour obtenir une nouvelle proposition. 







JEU DU MORSE 1 


QUEL 


EST CE MOT ? PENDRE 


1 WON! 


.„ _ J 





Super jeux Amstrad 



175 



10 REM MORSE 

20 REM 

30 MODE l-.INK 0,13:INK 1,0:PAPER 0:PEN l:BORDER 13 

40 DEFINT A-Z 

50 DIM M$(300) 

60 RANDOMIZE TIME 

70 FOR 1=1 TO 300 

80 READ M$(I) 

90 NEXT 

100 M$=\- -...-.-.- -.-- . 

_ _ n 

110 M$=M$+"-. --- .--.—.-.-. ... - ..- ...-.-- 

180' REM 

190 REM LE JEU 

200 M=INT(RND*300)+1 

210 CLS:LOCATE 14, 1 : PRINT" JEU DU MORSE" 

220 LOCATE 11, 11 : PRINT"ECOUTEZ CE MOT 

230 FOR 1=1 TO 6 

240 P=l+(ASC(MID$(M$(M),I,l))-65)*4 

250 FOR J=P TO P+3 

260 IF MID$(M$, J,l)=" " THEN 330 

270 IF MIDS(M$, J,l) = ". " THEN 300 

280 SOUND 1,63,80,15 

290 GOTO 310 

300 SOUND 1,63,20,15 

310 WHILE SQ(1)>127:WEND 

320 FOR K=l TO 300: NEXT 

330 NEXT 

340 FOR K=l TO 1000:NEXT 

350 NEXT 

360 CLS:LOCATE 14, 1 : PRINT" JEU DU MORSE" 

376 LOCATE 1, 11: INPUT"QUEL EST CE MOT ";Z$ 

380 PRINT:PRINT 

390 IF Z$=M$(M) THEN PRINT"OUI! C ' EST ";Z$ ELSE PR 

INT"NON! C'EST " ; M$(M) 

400 IF INKEY$<>CHR$(13) THEN 400 

410 GOTO 200 

480 REM 

490 REM LES MOTS 

500 DATA ABAQUE,ABBAYE,ABIMER, ABJECT, ABOYER, ABSENT 
510 DATA ABSIDE, ABUSER, ACABIT, ACACIA, ACAJOU, ACCENT 
520 DATA ACCORD, ACERBE, ACQUIT, ACTEUR, ACTION, ACTUEL 
530 DATA ACUITE, ADAGIO, ADORER, ADULER, ADULTE, AERI EN 
540 DATA AGACER,AGENCE,AGNEAU,AGREER,AIMANT,ALERTE 
550 DATA ALOYAU, AMADOU, AMANDE, ANANAS, ANEMIE, ANGINE 
560 DATA ANNEXE, ANODIN, APHONE, APLOMB, APPEAU, AUBURN 
570 DATA BADAUD,BALISE,BALZAN,BAROUF, BASSET, BATEAU 
580 DATA BAVARD,BECANE,BECTER,BELIER,BERGER,BETAIL 
590 DATA BIELLE.BIGLER, BLAGUE, BLEUET, BOHEME, BOUGIE 
600 DATA CABRER,CAGEOT,CALICE, CAMPER, CAPTER, CARDAN 

176 Super jeux Amstrad 



618 DATA 
620 DATA 
630 DATA 
640 DATA 
650 DATA 
660 DATA 
670 DATA 
680 DATA 
690 DATA 
700 DATA 
710 DATA 
720 DATA 
730 DATA 
740 DATA 
750 DATA 
760 DATA 
770 DATA 
780 DATA 
790 DATA 
800 DATA 
810 DATA 
820 DATA 
830 DATA 
840 DATA 
850 DATA 
860 DATA 
870 DATA 
880 DATA 
890 DATA 
900 DATA 
910 DATA 
920 DATA 
930 DATA 
940 DATA 
950 DATA 
960 DATA 
970 DATA 
980 DATA 
990 DATA 



CARMIN 


, CARTON 


.CASINO 


.CAVEAU 


, CENTON, 


CHACUN 


, CHAPON 


, CHASTE 


.CHEQUE 


, CHOMER, 


CLASSE 


.CLIENT 


.CLIQUE 


.COCHER 


, COMBLE, 


CONGRE 


, CONTRE 


.COPAIN 


.CORNET 


.CURARE, 


DANGER 


r DEBILE 


.DECHET 


.DECOTE 


, DEDALE, 


DELICE 


, DEMAIN 


.DEPART 


.DEPUIS 


.DESERT, 


DEVOIR 


, DICTON 


, DINGUE 


.DIRECT 


.DIURNE, 


ECORCE 


, ECRIRE 


, EDITER 


, ELEVER 


.EMPIRE, 


ENIGME 


, ESCALE 


.ESCROC 


.ESPRIT 


, ETABLE, 


FACHER 


, FARINE 


,FAUCON 


, FELURE 


, FESTIN, 


FLACON 


, FLAQUE 


, FLEUVE 


.FORMAT 


, FOUINE, 


FRAUDE 


,FRELON 


, FRIAND 


.FRISER 


, FUREUR, 


6ALANT 


, GATEAU 


.GAUFRE 


.GLAPIR 


.GOUJON, 


HANCHE 


,HARGNE 


, HAUSSE 


.HARPIE 


, HUMIDE, 


IGNARE 


, ILLICO 


, IMPACT 


.INDIGO 


, INEPTE, 


INFAME 


.INFINI 


, INTACT 


, INTIME 


, IRONIE, 


JAMAIS 


, JAMBON 


.JOCKEY 


, JONQUE 


, JOVIAL, 


KARATE 


F KERMES 


KIMONO 


r KIRSCH 


, KLAXON, 


LABEUR 


LABOUR 


LACUNE 


r LANGUE 


r LIASSE, 


LIEVRE 


r LIMITE 


LITIGE 


.LIVIDE 


r LOUCHE, 


MACHER 


MADERE 


MAFFIA 


, MALICE 


MANDAT, 


MANIOC 


MARCHE 


MARRON 


MASQUE 


MEDIUM, 


MEMBRE 


MERLIN 


MIETTE 


MIOCHE 


MOTEUR, 


NARINE 


NECTAR 


NOMBRE 


NOTICE 


NOUGAT, 


OCCASE 


OCTAVE 


OFFICE 


ORACLE 


OTARIE, 


PAELLA 


PAPAYE, 


PAPIER 


PAREIL, 


PARLER, 


PATRIE 


PATRON, 


PAUMER 


PAYSAN, 


PEIGNE, 


PEPITE, 


PERCHE, 


PESTER, 


PIAULE, 


PILULE, 


POIGNE, 


POISON, 


POPOTE, 


POUPEE, 


PRETER, 


QUARTZ, 


QUATRE, 


QUICHE, 


QUILLE, 


QUINTE, 


RACINE, 


RADEAU, 


RAGOUT, 


RAISIN, 


RAMURE, 


RAVIER, 


REGARD, 


RELIER, 


RENDRE, 


RIFIFI, 


SAFRAN, 


SALAMI, 


SAPEUR, 


SAVOIR, 


SCRIPT, 


SHERIF, 


SINGER, 


SIRENE, 


SOLEIL, 


SOUPIR, 


TANDEM, 


TAPAGE, 


TAQUIN, 


TENACE, 


TESSON, 


TOPAZE, 


TOUPIE, 


TRAHIR, 


TRICOT, 


TRIPLE, 


ULCERE, 


ULTIME, 


UNIQUE, 


URBAIN, 


URGENT, 


VALIDE, 


VANTER, 


VESTON, 


VIVIER, 


VOISIN, 


WAPITI, 


WHISKY, 


YAOURT, 


ZENITH, 


ZIGZAG, 



.CERCLE 

.CISEAU 

.CONDOR 

.CURSIF 

.DEESSE 

.DEVIER 

.DRAGUE 

.ENCLIN 

.EXPRES 

.FIGURE 

.FRAISE 

.FURTIF 

.GOURDE 

.HUMOUR 

.INERTE 

.IVOIRE 

.JUJUBE 

, KOPECK 

f LICITE 

.LUSTRE 

,MANGUE 

.MEDUSE 

.MOUTON 

.NUANCE 

.OUVRIR 

.PATATE 

.PELOTE 

.PLANTE 

.PUZZLE 

, QUITTE 

.RAPHIA 

, RUSTRE 

.SEIGLE 

, SUIVRE 

.TIMBRE 

.TULIPE 

.UTOPIE 

.VOLUME 

.ZOUAVE 



Super jeux Amstrad 177 



Programme 



Liste 
des variables : 



Lignes 30 a 110 : initialisation 

On place dans M$ la liste de codes morse pour tout 
I'alphabet. Chaque code doit prendre quatre caracteres ; 
des blancs sont ajoutes pour les codes ne comprenant 
qu'un, deux ou trois points ou tirets. La ligne 60 initialise 
les nombres aleatoires. La boucle des lignes 70 a 90 place 
dans le tableau M$ les 300 mots des DATA des lignes 500 
a 990. 

Lignes 200 a 410 : lejeu 

La variable M (nombre aleatoire) pointe le mot que Ton 
doittrouver. 

On edite en code morse par des instructions SOUND les 
caracteres contenus dans M$(M). Chaque caractere est 
pris separement (boucle I) et retranscrit en morse (boucle 
J). 

La ligne 370 saisit la reponse du joueur. Si sa solution est 
incorrecte, la ligne 390 affiche le mot juste. 

Lignes 500 a 990 : les mots 

Si vous avez deja tape le programme « Anagrammes », 
vous pouvez reutiliser les DATA des lignes 500 a 990 en 
supprimant les lignes 30 a 340. 



I indice de boucle FOR/NEXT 

J indice de boucle FOR/NEXT 

M numero du mot choisi au hasard 

M$ liste des codes morse 

M$( ) liste des mots 

P pointeur de liste des codes morse 

Z$ reponse du joueur 



178 Super jeuxAmstrad 




SUPER NOMBRE 
SECRET 



Ce jeu consiste a chercher un nombre secret que 
I'ordinateur a choisi et qui est compris entre 1 et 99. A 
chaque solution proposee, le programme repond par un 
des messages « TROP PETIT » ou « TROP GRAND » par 
rapport au nombre a trouver. 

La premiere difficulte du jeu est la suivante : votre 
proposition doit etre le resultat d'une operation (exemple : 
4 x 5 = 20 nombre que vous proposez). 

Vous devez debuter avec deux des neuf chiffres de 1 a 9 
que vous pouvez multiplier, diviser, additionner ou 
soustraire. Les operateurs restent pour tout le jeu les 
chiffres compris de 1 a 9 ; par contre, vous devez vous 
servir du resultat de votre premiere operation pour 
effectuer la deuxieme, puis du resultat de la deuxieme pour 
effectuer la troisieme. . . 

Mais la deuxieme difficulte du jeu est I'interdiction 
d'utiliser 2 fois le meme chiffre comme operateur. 

Exemple 

1 er chiffre :4 

F coup : 4 x 5 = 20 « TROP GRAND ». 4&5 ne peuvent 
etre rejoues. 

2 e coup : 20 - 2 = 10 « TROP PETIT» . 4,5&2 ne 
peuvent etre rejoues. 

3 e coup : 10 + 2 = 12 « IMPOSSIBLE ». 2 a deja ete 
joue. 

4 e coup : 10 + 7 = 17* GAGNE EN 3 COUPS ». 

Attention, vous n'avez droit qua 8 essais pour gagner ! 



Super jeux Amstrad 179 



10 REM SUPER NB SECRET 

20 REM 

36 FOR 1 = 1 TO 9:A(I) = 1.-NEXT I 

40 RANDOMIZE TIME 

50 N=INT(RND*99)+1 

60 MODE 1: PRINT TAB( 11 ) ; "SUPER NOMBRE SECRET" : PRIN 

T:PRINT:PRINT 

70 PRINT "IL VOUS RESTE: ": PRINT 

80 FOR 1=1 TO 9 

90 IF A(I)=1 THEN PRINT I, 

100 NEXT I 

110 PRINTrPRINT 

180 REM 

190 REM LE JEU 

200 IF R>0 THEN 240 

210 INPUT'TREMIER CHIFFRE";R 

220 IF R<1 OR R>9 THEN 210 

230 A(R)=0:QOTO 500 

240 PRINT"RESULTAT DE L ' OPERATION: " ; R: PRINT 

250 INPUT"OPERATION";0$ 

260 S=VAL(MIDS(0$,2)) 

270 IF S<1 OR S>9 THEN 250 

280 IF A(S)=0 THEN 250 

290 0$=LEFT$(0$, 1) 

300 IF 0$="«" THEN 370 

310 IF 0$="+" THEN 390 

320 IF 0$="-" THEN 410 

330 IF 0$<>"/" THEN 66 

340 IF R/S<1 THEN 60 

350 IF INT(R/S)<>R/S THEN 60 

360 R=R/S:Q0T0 500 

370 IF R*S>99 THEN 60 

380 R=R*S:G0T0 500 

390 IF R+S>99 THEN 60 

400 R = R + S.-QOTO 500 

410 IF R-S<1 THEN 60 

420 R=R-S 

480 REM 

490 REM RESULTAT 

500 PRINT:PRINT"RESULTAT: " ; R:PRINT 

510 IF R=N THEN 700 

520 IF R<N THEN PRINT"TROP PETIT" 

530 IF R>N THEN PRINT"TROP GRAND" 

540 IF INKEY$="" THEN 540 

550 C=C+1:A(S)=0 

560 IF C<9 THEN 60 

580 REM 

590 REM PERDU 

600 PRINT: PRINT"DOMMAGE ! C'ETAIT" ; N 

610 GOTO 710 

680 REM 

690 REM GAGNE 

700 PRINT:PRINT"BRAVO! C'ETAIT";N 
710 IF INKEY$<>CHR$(13) THEN 710 
720 RUN 

180 Super jeuxAmstrad 



Programme 



Lignes 30 a 110 : initialisation 

La ligne 30 remplit le tableau A(1) a A (9) avec le nombre 1 
pour connattre les chiffres deja employes. 

La ligne 50 place dans la variable N le nombre secret 
(nombre aleatoire). 

Les lignes 80 a 110 affichent le tableau A(1) a A(9) pour 
les chiffres restants. 

Lignes 200 a 420 : le jeu 

Dans le cas ou aucune operation n'a ete effectuee, on saisit 
au clavier le premier chiffre. 

Sinon on affiche le resultat de la derniere solution 
proposee, puis on demande I'operation a effectuer et le 
chiffre a utiliser. La ligne 280 verifie si vous trichez et 
renvoie dans ce cas a la saisie de la ligne 250. 

Les lignes 290 a 420 recherchent le signe que vous voulez 
utiliser et effectuent les calculs. 

Lignes 500 a 720 : resultats 

Les lignes 510 a 530 comparent votre solution au nombre 
secret et renvoient au message correspondant. Si vous 
avez eu de la chance, la ligne 700 vous felicitera, sinon un 
message « TROP PETIT » ou « TROP GRAND » 
apparaitra. 

La ligne 550 increments le compteur de jeu (variable C) et 
remet a le chiffre que vous avez utilise (dans le tableau 
A()). 

Si C=9, on affiche la solution (variable N) puisqu'il ne 
reste plus de chiffre utilisable. 



Super jeux Amstrad 



181 



LlSTE 
DES VARIABLES : 



A() 


chiffres restants 


AS 


caractere saisi par IN KEYS 


C 


nombre d'essais 


1 


indice de boucle FOR/NEXT 


N 


le nombre secret 


0$ 


operation choisie 


R 


resultat de la derniere operation 


S 


chiffre choisi 



SUPER NOMBRE SECRET 



IL IIOU 3 RESTE; 

1 4 

& 7 



RESULTAT DE L 'OPERATION : 54 

OPERATION? +8 
RESULTAT; 62 
T'ROP GRAN© 



182 Super jeux Amstrad 




DEBARQUEMENT 
IMMEDIAT 



Poser son vaisseau sur une planete, pour qui est soumis 
aux dures lois de la pesanteur, n'est pas chose facile. 

La Vitesse de debarquement peut etre maTtrisee en brulant 
dans les tuyeres du vaisseau une certaine quantite de 
carburant. Trop de carburant vous fait remonter, pas assez 
descendre a des vitesses parfois vertigineuses. 

Surveillez bien votre altimetre, votre reservoir et bien sur 
votre vitesse et c'est un debarquement en douceur. 

Mais attention aux arrivees « immediates » a plus de 
cinq metres par seconde ! 



DEBAROUEMENT 
IMMEIHE AT 



TEMFS 



ftLTITUPE 



GS 



CHX.TESSE 



UITESSE 



x.es 



CARBURANT 



eej 



SEHS 



CARBURANT? J_0 




Super jeux Amstrad 



183 



10 REM DEBARQUEMENT IMMEDIAT 

20 REM 

30 SYMBOL AFTER 128 

40 SYMBOL 128,24,24,24,24,255,126,60,24 

50 SYMBOL 129,24,60,126,255,24,24,24,24 

60 MODE 0.-INK 0,1:INK 1,24:INK 2,15:PAPER 0:PEN 1: 

BORDER 1 

70 A(1)=0:A(2)=200:A(3)=-50:A(4)=180:A(5)=80 

80 X(1)=4:Y(1)=8:X(2)=13:Y(2)=8:X(3)=4:Y(3)=13:X(4 

)=13:Y(4)=13:X(5)=4:Y(5)=18 

90 FOR 1=1 TO 5:B(I)=A(I)-1:NEXT I 

180 REM 

190 REM AFFICHE LE JEU 

200 PRINT TAB(5) ; "DEBARQUEMENT" : PRINT TAB(7) = "IMME 

DIAT" 

210 FOR 1=8 TO 168 STEP 80 

220 PLOT 56,310-1, 1 : DRAW 260, 310-1: DRAW 260,270-1: 

DRAW 56,270-I:DRAW 56, 310-1 : PLOT 376, 310-1: DRAW 56 

0,310-I:DRAW 560,270-I:DRAW 376, 270-1: DRAW 376,310 

230 NEXT 

240 LOCATE 3 T 6:PRINT "TEMPS " ; TAB( 12 ); "ALTITUDE" 
250 LOCATE 2,11: PRINT "VITESSE" ; TAB ( 12 ); "VITESSE" 
260 LOCATE 2,16:PRINT "CARBURANT" ; TAB< 14 ) ; "SENS" 

280 REM 

290 REM AFFICHE LES DONNEES 

300 PEN 2 

310 LOCATE 14,18:IF A(3)<0 THEN PRINT CHR$(128)CHR 

$(128)CHR$(128) ELSE PRINT CHR$ ( 129 )CHR$ ( 129 )CHR$ ( 

129) 

320 B=0 

330 FOR 1=1 TO 5 

340 IF B(I)=INT(A(I)) OR (1=2 AND B(I)<=0) THEN B= 

B+l:QOTO 370 

350 IF B(I)<INT(A(I)) THEN B(I)=B(I)+1 ELSE B(I)=B 

(D-l 

360 LOCATE X( I), Y( I ) : PRINT ABS(B(I)) 

370 NEXT I 

380 IF B<5 THEN 320 

390 IF B(2)<=0 THEN 700 

400 PEN 1 

410 IF A(5)=0 THEN R=0:GOTO 560 

480 REM 

490 REM CALCULS 

500 LOCATE 4,24:PRINT CHR$( 1 8 ) ; : INPUT"CARBURANT" ; R 

S 

510 R=VAL(R$) 

520 IF R<0 OR R>A(5) THEN 500 

530 IF R>25 THEN R=25 

540 A(5)=A(5)-R 



184 Super jeux Amstrad 



550 IF A(5)=0 THEN LOCATE 3,24:PRINT CHR$ ( 18) ; "RES 

ERVOIR VIDE" 

560 A(1)=A(1)+1 

570 A(2)=A(2)+A(3)-((5-R)/2) 

580 A(3)=A(3)-(5-R) 

590 A(4)=ABS(A(3)*3.6) 

600 GOTO 300 

680 REM 

690 REM FIN DE PARTIE 

700 IF A(3)<-5 THEN 800 

710 LOCATE 1,24:PRINT"DEBARQUEMENT REUSSI" 

720 IF INKEY$<>CHR$(13) THEN 720 

730 RUN 

780 REM 

790 REM CRASH. . . 

800 CLS 

810 FOR J=l TO STEP -1 

820 FOR 1=300 TO 120 STEP -20 

830 PLOT 1,500-1, JrDRAW 620-1 , 500-1 : DRAW 620-1,1-1 

20:DRAW I,I-120.-DRAW 1,500-1 

840 BORDER I MOD 27 

850 NEXT I 

860 FOR K=l TO 100:NEXT K 

870 NEXT J 

880 PEN l:LOCATE 3 , 1 3: PRINT "CRASH A " ; ABS ( A ( 3 ) ) ; "M/ 

S" 

890 IF INKEY$oCHR$(13) THEN 890 

900 RUN 



Super jeuxAmstrad 185 



Programme 



Liste 
des variables : 



Lignes 30 a 260 : initialisation 

Apres la definition des caracteres graphiques, on initialise 
les variables du tableau de bord (temps, altitude, Vitesse et 
carburant). 

Les tableaux X et Y donnent les coordonnees de ces 
variables sur I'ecran. 

Les lignes 200 a 260 affichent le dessin du tableau de bord 
sur I'ecran. 

Lignes 300 a 410 : affichage des donnees 

En fonction de la Vitesse (positive ou negative par rapport 
au sol), on affiche des fleches vers le bas ou vers le haut 
comme sens de deplacement (ligne 300). 

On affiche a I'aide des tableaux X et Y toutes les 
coordonnees du tableau de bord en partant du tableau B 
(anciennes valeurs) pour arriver a celles du tableau A 
(nouvelles valeurs). 

Si I'altitude ( B(2) ) passe par la valeur pendant la mise a 
jour, on va directement a la ligne 700 pour la fin de la 
partie. 

Dans le cas ou il ne reste plus de carburant ( A(5)=0 ), on 
saute la ligne 560 pour les calculs sans saisir une quantite 
de carburant. 

Lignes 500 a 600 : calculs 

Apres la saisie du carburant, on calcule toutes les 
nouvelles valeurs du tableau de bord. 

Si on a utilise le reste du carburant on affiche en bas de 
I'ecran le message « reservoir vide ». 



A(1) temps ecoule 

A(2) altitude 

A(3) vitesse en metres/seconde 

A(4) vitesse en kilometres/heure 

A(5) carburant restant 

B nombre de valeurs du tableau B identiques au 

tableau A 
B(1) a B(5) identique au tableau A mais pour les 

anciennes valeurs 
I indice de boucle FOR/NEXT 

J indice de boucle FOR/NEXT 

K indice de boucle FOR/NEXT 

R$ reponse du joueur 

R valeur numerique de R$ 

X() et Y() coordonnees sur I'ecran des valeurs du 

tableau de bord 



186 Super jeux Amstrad 



CHAPITRE III : 
JEUX DE HASARD 



<> 


* 

A 


•5 




JACK-POT 



Voila un jeu qui peut paraitre tout d'abord passif puisque le 
joueur intervient tres peu ; mais attention pour le joueur 
acharne : il risque d'en perdre le sommeil ! 

Apres avoir tape RUN, le jack-pot se dessine avec les 
combinaisons gagnantes. 

Vous appuyez sur n'importe quelle touche et c'est parti. 
Quand les symboles s'immobilisent, si vous n'avez rien 
gagne, votre capital se decremente de 0,20 franc. II suffit 
d'appuyer a nouveau sur n'importe quelle touche pour 
relancer lejeu. 

Quand une combinaison est gagnante, votre gain s'affiche 
en bas du jack-pot et votre capital augmente d'autant. 

Patience, patience, ce jack-pot, digne de ses ancetres, 
peut vous prendre beaucoup de temps... 




JACK 
POT 



20 c 



BHR 


4" 


9 



CAPITAL : 10 . 2 F 




Super jeux Amstrad 



10 REM JACK-POT 

20 REM 

30 SYMBOL AFTER 128:G0SUB 2000 

40 MODE 1:INK 0,1:INK 1,24:INK 2,6:INK 3,8,-PAPER 

:PEN l:QOSUB 3000 

50 C=10 

60 RANDOMIZE TIME 

180 REM 

190 REM LE JEU 

200 FOR 1=1 TO 3 

210 0(I)=INT(RND*8) 

220 T(I)=INT(RND»15)+5 

230 NEXT I 

240 GOSUB 1080:GOSUB 1500 

250 FOR 1=1 TO 3 

260 IF T(I )=0 THEN 320 

270 T( I )=T( I )-l 

280 D(I)=D(I) + 1:IF D( I )>7 THFN D(I)=0 

290 Z=INT(RND*3)+1 

300 PEN Z:LOCATF 14 + 1 *3, 1 3: PR INT CHR$ ( 128 + D ( I ) «4 ) C 

HR$(129+D(I)*4) 

310 LOCATE 14 + 1*3, 14: PRINT CHR$ ( 1 30 + D ( I )*4 )CHR$ ( 13 

1+0(I)*4) 

320 NFXT I 

330 IF T(l) OR T(2) OR T(3) THEN 250 

380 REM 

390 REM GAINS ? 

400 C = INT((O0.195)*)0)/10:CAP = C 

410 D=0( 1 )*100+D(?)»10+D< 3) 

420 D1=D( 1 )*100+D(3) 

430 IF 0=777 THEN C=C+?0 

440 IF D=666 THEN C=C+10 

450 IF = 444 THEN C = f. + 5 

46W TF 0=555 THEN C=C+4 

470 IF 01=202 THFN C = (>3 

480 IF 01=101 THFN C=(>2 

490 IF 01=303 THEN C=C+] 

500 TF 01 = 707 THEN C = f. + 1 

510 PEN 2:LOCATE 24,25:PRINT C;"F " ; 

520 IF OCAP THEN 600 

530 PRINT CHR$(7) 

540 IF INKEY$="" THEN 540 

550 IF C=0 THEN 800 

560 GOTO 200 

580 REM 

590 REM GAGNE 

600 FOR 1 = 500 TO 50 STEP-5: SOUND .1,1,2: NEXT 

610 PFN 2:LOCATE 1 9, 22: PRINT C-CAP 

620 IF INKEY$=" " THEN 620 

630 LOCATE 19, 22: PRINT " 

640 GOTO 2 00 

Super jeux Amstrad I 189 



780 

796 

800 

OUR" 

810 

820 

980 

990 

1000 

1010 
1020 
1030 

1040 

1050 
1480 
1490 
1500 
1510 

II N . 

1520 
1530 
1540 
1550 
1980 
1990 
2000 
2010 
2020 
2030 
2040 
2050 
2060 
2070 
2080 
2090 
2100 
2110 
2120 
2130 
2140 
2150 
2160 
2170 
2180 
2190 
2200 
2210 
2220 
2230 
2240 
2250 



REM 

REM PERDU 

PAPER 0:PEN l:LOCATE 1, 15: PRINT-MERCI": PRINT"P 

:PRINT"LES DIX^PRINT'TRANCS" 

LINE INPUT A$ 

RUN 

REM 

REM DESC. POIGNEE 

FOR 1=10 TO 17 

PAPER 0:LOCATE 35,I:PRINT" 

PAPER l:LOCATE 35, 1+1: PRINT" 

LOCATE 35, 1+2: PRINT" 

NEXT I 

PAPER 0: RETURN 

REM 

REM MONT. POIGNEE 

FOR 1=17 TO 10 STEP -1 

PAPER 0:LOCATE 35, 1+2: PRINT" ";:PAPER 1:PRINT 

:PAPER 0:PRINT" " 

PAPER l:LOCATE 35, 1+1 : PRINT" 

LOCATE 35, I: PRINT" 

NEXT I 

PAPER 0,- RETURN 

REM 

REM GRAPHIQUES 



SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 



128 
129 
130 
131 
132 
133 
134 
135 
136 
137 
138 
139 
140 
141 
142 
143 
144 
145 
146 
147 
148 
149 
150 
151 
152 
153 



1,3,7,15,31,63, 127,255 

128,192,224,240,248,252,254,255 

255,127,63,31,15,7,3,1 

255,254,252,248,240,224,192,128 

56,124,254,254,255,255,255,255 

56, 124,254,254,254,254,254,254 

127,127,63,31,15,7,3,1 

252, 252, 248, 240, 224, 192, 128, 

1,3,7,15,15,15,7,51 

0,128,192,224,224,224,192,152 

121,253,255,253,121,51,7,15 

60,126,254,126,60,152,192,224 

1,3,7,15,31,63,63,63 

0,128,192,224,240,248,248,248 

63,63,31, 13,1,3,7,15 

248,248,240,96,0, 128,192,224 

0,0,12,30,63, 127,127,63 

7,26, 100, 132,8,136,144,16 

30,12,0,0,0,0,0,0 

24,60,126,255,255,126,60,24 

0,0,0,0,0,7,31,127 

0,7,24,44,206,199,131,129 

127,255,255,255,255,255,127,62 

128,192,192,192,128,128,0,0 

63,96,192, 135,140,152,248,152 

252,6,3,225,49,25,31,25 



190 I Super jeux Amstrad 



2260 SYMBOL 154,24,48,96,192,255,1,3,3 
2270 SYMBOL 155,24,12,6,3,255,128,192,192 
2280 SYMBOL 156,0,127,127,0,115,82,74,123 
2290 SYMBOL 157,0,255,255,0,222,82,82,222 
2300 SYMBOL 158,74,74,122,0,127,127,0,0 
2310 SYMBOL 159,82,82,81,0,255,255,0,0 
2320 RETURN 

2980 REM 

2990 REM DESSIN DE LA MACHINE 

3000 FOR 1=0 TO 3 

3010 READ A,B,C,D:A=A+128:B=B+128 

3020 PEN 2:PRINT CHR$( A )CHR$(A+1 ) " "CHR$( A)CHR$ ( A+ 

1)" "CHR$(A)CHR$(A+1) ; 

3030 PEN 3:PRINT TAB ( 28 )CHR$(B )CHR$ (B+l ) " "CHR$ 

(B)CHR$(B+1) 

3040 PEN 2:PRINT CHR$(A+2 )CHR$(A+3) " "CHR$( A+2 )CHR 

$(A+3)" "CHR$(A+2)CHR$(A+3)" =" ; C ; 

3050 PEN 3:PRINT TAB (28)CHR$(B + 2 )CHR$( B + 3 ) " "CH 

R$(B + 2)CHR$(B+3) " = " ? D; 

3060 NEXT I 

3070 PEN 1 

3080 PLOT 220,260:DRAW 420,260:DRAW 420,380:DRAW 2 

20,380:DRAW 220,260 

3090 PLOT 120,20:DRAW 520,20:ORAW 520,260:DRAW 120 

,260:DRAW 120,20 

3100 PLOT 100,20:DRAW 540,20 

3110 PLOT 240,220:DRAW 396,220:DRAW 39b,164:DRAW 2 

40, 164:DRAW 240,220 

3120 PLOT 292,220:DRAW 292,164:PL0T 344,220:DRAW 3 

44,164 

3130 PLOT 350, 330: DRAW 410, 330: DRAW 390, 300: DRAW 3 

70, 300: DRAW 350,330 

3140 PEN 2:LOCATE 23,4 : PRINT "?0c" 

3150 PEN 1: LOCATE 16, 5: PRINT MACK" 

3160 PEN 3:LOCATE 17,6:PRINT "POT" 

3170 PLOT 520,95:DRAW 620,95:DRAW 620,60:DRAW 520, 

60:DRAW 520, 95 

3180 GOSUB 1500 

3190 PAPER 0:PEN l:LOCATE 15,25:PRINT " CAPITAL .-" ■ 

3200 PLOT 240,100:ORAW 400,100:DRAW 400,?0:DRAW 24 

0.20.-DRAW ?40,100:PLOT 260,80:DRAW 380,80:DRAW 380 

,20:DRAW 260,20:DRAW 260,80 

3210 PLOT 180,180:DRAW 200,180:DRAW 200,20:DRAW 18 

r 20:DRAW 180,180:PLOT 440,180:DRAW 460,180:DRAW 4 

60,20:DRAW 440,20:DRAW 440,180 

3220 RETURN 

3500 DATA 28,8,20,3,24,4,10,2,16,12,5,1,20,28,4,1 



Super jeuxAmstrad I 191 



Programme 



Liste 
des variables : 



Lignes 30 a 60 : initialisation 

L'appel du sous-programme en 2000 determine les 
caracteres graphiques, et celui en 3000 le dessin complet 
du jack-pot. 

Lignes 200 a 330 : le jeu 

Le jeu a besoin des deux tableaux suivants : 

■ D() donne le symbole de depart a afficher. Les 
symboles suivants apparaissent dans I'ordre des 
caracteres graphiques. 

■ T() donne le temps, c'est-a-dire le nombre de symboles 
qui vont defiler sur la machine. 

Des que ces deux tableaux sont definis, on manoeuvre la 
poignee en utilisant les sous-programmes en 1000 et 1500 
(respectivement descente et mont.ee), puis on affiche les 
3 symboles a partir de D() pour un temps T{). 

Lignes 400 a 560 : gains ? 

On commence par decrementer le capital C de 

20 centimes; puis on place dans CAP le capital restant. 

En additionnant D(1) a D(3), on obtient un chiffre qui sert 
de comparaison avec les solutions gagnantes (variable D). 
La variable D1 ne prend en consideration que les deux 
extremit.es de la combinaison. 

On compare D et D1 aux solutions gagnantes et on 
increments le capital (variable C). Quand C est superieure a 
CAP on gagne quelque chose. On va alors a la ligne 600 
pour afficher le montant des gains ; sinon on retourne a un 
nouveau jeu. 



A, B combinaisons gagnantes 

C, D gains des combinaisons gagnantes 

C capital 

CAP capital avant totalisation des points 

D somme des combinaisons sorties 

D1 somme d'une partie des combinaisons 

D() signe a afficher 

I indice de boucle FOR/NEXT 

T() temps de defilement des symboles 

Z nombre aleatoire donnant la couleur des 
signes 



192 Super jeux Amstrad 




MONTE-CARLO 



Voici un jeu de casino qui se joue avec trois des. Chaque 
joueur (maximum neuf) doit miser sur une des 29 cases du 
tapis. Les jetons sont choisis a I'aide des fleches gauche et 
droite, la touche ENTER validant le choix quand celui-ci est 
definitif. 

C'est le banquier qui lance les des et paye a chaque joueur 
un certain nombre de jetons en correspondance avec le 
tableau suivant : 

de I a VI (des simples) : 

on gagne une fois la mise par de identique. Si Ton joue IV 
et que deux des trois des sont des quatre le banquier paye 
deux fois la mise. 

M (manque) : 

on gagne une fois la mise si le total des trois des est 
inferieura 11. 

de4a 17 (somme des des) : 

on gagne si la somme des trois des est egale au chiffre 
joue. 

4 et 1 7 : 60 fois la mise 

5 et 16 : 30 fois la mise 

6 et 15 : 18 fois la mise 

7 et 1 4 : 12 fois la mise 

8 et 1 3 : 8 fois la mise 

9 a 12 : 6 fois la mise 

P (passe) : 

on gagne une fois la mise si le total des trois des est 
superieur a 10. 

tous les brelans : 

on gagne 30 fois la mise si les trois des sont identiques. 
les brelans : 

on gagne 180 fois la mise si les trois des correspondent a 
la case jouee. 

Comme la partie se joue sur dix tirages, chaque joueur a 
un capital de 10 jetons des le debut. Le programme affiche 
les resultats en fin de partie. 



Super jeux Amstrad I 193 



16 REM MONTE CARLO 

20 REM 

40 DIM X(29),Y(29),N$(29),G(29),M(29) 

50 INPUT"NOMBRE OE JOUEURS M ; N 

60 IF N<1 OR N>9 THEN PRINT"ENTRE 1 ET 9 !":QOTO 5 



70 MODE 1:INK 0,1:INK 1 ,24:INK 2,6:INK 3,15:PAPER 

B:PEN l:BORDER .1 
80 TAG:DEQ:SYMBOL AFTER 128 
90 RANDOMIZE TIME 
100 SYMBOL 128,0,0,0,24,24,0,0,0 
110 SYMBOL 129,0,24,24,0,0,24,24,0 
120 SYMBOL 130,96,96,0,24,24,0,6,6 
130 SYMBOL 131,102,102,0,0,0,0,102,102 
140 SYMBOL 132,102,102,0,24,24,0,102,102 
150 SYMBOL 133,102,102,0,102,102,0,102,102 
160 FOR 1 = 1 TO 22:READ X( I ) , Y( I ) , N$( I ) , M( I ) : NEXT 
170 DATA 44,40,1,1,80,40,11,1,116,40,111,1,160,40, 
IV, 1, 204, 40, V, 1,240, 40, VI, 1 

180 DATA 44, 100, M, 1,44, 170,4,60,44,210,5,30,44,250 
,6,18,44,290,7, 12 

190 DATA 50,330,8,8,76,364,9,6,116,384,10,6,164,38 
4,11,6,212,364,12,6,240,330,13,8 

200 DATA 244,290,14,12,244,250,15,18,244,210,16,30 
, 244, 170, 17, 60, 244, 100, P, 1 

210 DATA' 150,330,30, 150, 290, 180, 150, 250, 180, 150, 21 
0, 180, 150, 170,180, 150, 130, 180,150,90, 180 

1=23 TO 29:READ X( I ) , Y( I ) , M( I ) : NEXT 

1=1 TO N:P(I)=10:NEXT 



220 


FOR 


230 


FOR 


480 


REM 


490 


REM 


500 


CLG 


510 


FOR 



DESSIN DU OEU 

1=0 TO 180 STEP 0.9:MOVF 160, 300: PL OTR 120 
*COS(I), 99*SIN(I), 1:NEXT: PLOT 40,300:DRAWR 240,0:0 
RAWR 0,-280:DRAWR -240,0:DRAWR 0,280 
520 FOR 1=0 TO 180: MOVE 1 60, 300: PLOTR 80*COS(I),59 
*SIN(I):NFXT:PLOT 80,300:DRAWR 160,0:DRAWR 0,-280: 
DRAWR -160,0:DRAWR 0,280 

530 PLOT 160,399:DRAW 160,360:PLOT 216,386:DRAW 19 
6, 352: PLOT 104, 386: DRAW 124,352 

540 PLOT 258,356:DRAW 228,330:PLOT 62,356:DRAW 92, 
330 

550 FOR 1=120 TO 200 STEP 40 
560 PLOT I,60:DRAW 1,20 
570 NEXT 

580 FOR 1=260 TO 60 STEP -40 

590 IF IoJ.00 THEN PLOT 40, I: DRAW 280,1 ELSE PLOT 
80,I:DRAW 240, I 
600 NEXT:PLOT 0,400,3 
610 FOR 1=1 TO 22 

194 Super jeux Arr.strad 



620 FOR J=l TO LEN(N$(I)) 

646 SeXT:NEXt" 8+12#J ' Y(I):PRINT ""(^(^.J.Di 

650 FOR 1=1 TO 6: FOR J=l TO 3 

660 MOVE 74+J*40, 328-1*40: PRINT CHR$(127+I)- 

6 ™. PL0T 70+J * 40 . 332-1*40,1: DRAWR 22,0:DRAWR -22 

^? R 5 W L; 2 ?' 0:DRAWR .^:Pi.OT 120,60:DRAW 120,20:PL 
U I 0,400,3 

680 NEXT: NEXT 

S??*S2Y E: 134 . 34 «=PRINT-T0US-;:H0VE 110, 320: PRINT'S 
R E L A N S " ; 

700 MOVE 360 T 380:PRINT"JETONS": 
710 FOR 1=0 TO 80 STEP 40 

? l\l[? t l 360+1, 60: DRAWR 22,0:DRAWR 0,-22:DRAWR -22 
, Y>: DRAWR 0, 22 

730 NEXT 

880 REM -- — 

890 REM LE JEU 

900 FOR K=l TO 10 

910 ERASE QrDIM G(29) 

920 FOR 1=0 TO 272 STEP 16:PL0T 520, 344-1 • PRINT" 

";:NEXT:PLOT 0,400,2 
930 FOR 1=1 TO N 

? 4 S, M ? V ? 3f;.37e-I«3e:PRINT " JOUEUR" ; RIGHT$( STR$( I 

) i £ ) i • ;P(I); 

950 NEXT: PLOT 0,400,1 

960 FOR 1=1 TO N 

970 p=l 

9 550 M 370-lf30 370 " I#30:PRINT CHR$ ( 243 );" "i'MOVE 
990 IF P<?3 THEN PRINT N$(P) ; ELSF IF P>23 THEN PR 
INT CHR$(10 4+ P) ; :MOVE 546 374-1*30: DRAWR 22 ■ DR 
AWR 0,-22:DRAWR -22,0.-DRAWR 0,22 ELSE PRINT'TB-- 

13)%HE; I ie5e $SlF A$ "" ™ EN l00e ^SE IF aJch&$ ( 
1010 IF A$=CHR$(242) AND P>1 THEN P=P-1 
1020 IF A$=CHR$(243) AND P<29 THEN P=P+1 

Imd o? V « ™^ 7 f~ I#30:DRAWR ^, , :DRAWR 0,-22:DR 

AWR -22,0:DRAWR 0,22:PLOT 160,300 1 

1040 GOTO 980 

1050 J(I)=P 

1060 NEXT 

1070 FOR 1=1 TO RND*20+20 

1080 FOR J=l TO 3 

1090 D(J)=INT(RND*6)+1 

1100 MOVE 324+J*40,56:PRINT CHR$( 127+D( J) ) ■ 
1110 NEXT J \ \ it, 

1120 NEXT I 

1130 D=D(l)+0(2)+D(3) 

1140 MOVE 340,20:PRINT"TOTAL- "-D- 

1150 FOR 1 = 1 TO 6.- FOR J=l TO 3 ? ' 



Super jeux Amstrad I 195 



1160 IF D(J)=I THEN G(I)=G(I)+1 

1170 NEXT: NEXT 

1180 IF D<11 THEN G(7)=l 

1190 FOR 1=8 TO 21 

1200 IF D=I-4 THEN 6(I)=G(I)+1 

1210 NEXT 

1220 IF D>10 THEN G(22)=l 

1230 IF D(1)<>D(2) OR D(2)<>D(3) THEN 1260 

1240 G(23)=l 

1250 G(D(1)+23)=1 

1260 FOR 1=1 TO N 

1270 IF G(J(I))<>0 THEN P( I )=P( I )+G( J( I ) )*M(0( I ) ) 

ELSE P(I)=P(I)-1 

1280 NEXT 

1290 IF INKEY$<>CHR$(13) THEN 1290 

1300 NEXT 

1480 REM . 

1490 REM RESULTATS 

1500 MODE 1 

1510 PRINT TAB(16); "RESULTATS" 

1520 FOR 1=1 TO N 

1530 LOCATE 8, 4+1*2: PRINT ■ JOUEUR"; I; " : ";USING B ## 

##";P(I); :PRINT " JETON(S)" 

1540 NEXT 

1550 IF INKEY$<>CHR$(13) THEN 1550 

1560 RUN 



196 Super jeux Amstrad 



Programme 



Lignes 30 a 230 : initialisation 

Apres la saisie du nombre de joueurs, le programme 
initialise les nombres aleatoires (ligne 90). 

Les lignes 100 a 150 initialisent les graphiques avec le 
dessin des six faces d'un de. 

Les lignes 160 a 230 initialisent les tableaux X, Y, N$, M et 
P (voir liste des variables). 

Lignes 500 a 730 : dessin du jeu 

On commence par tracer le tapis (lignes 500 a 600), puis 
on affiche le nom des vingt-deux premieres cases (lignes 
610 a 640), et pour finir on place les dix-huit des avec les 
graphiques correspondants (650 a 680). 

Lignes 900 a 1300 : le jeu 

La boucle des lignes 930 a 950 affiche le nombre de jetons 
restant a chaque joueur. Les anciennes valeurs sont 
effacees par la ligne 920. C'est la boucle des lignes 960 a 
1060 qui saisit le choix de chaque joueur (tableau J). 

Les des sont affiches par la boucle des lignes 1070 a 1120 
en fonction des nombres aleatoires contenus dans le 
tableau D. 

Les lignes 1130 a 1 250 recherchent les cases gagnantes. 
Quand c'est le cas, on increments le tableau G. 

II ne reste plus qu'a comparer le tableau G avec celui des 
joueurs, le tableau J (lignes 1260 a 1280). 



Super jeuxAmstrad I 197 



LlSTE 
DES VARIABLES : 



AS 

D 

DO 

GO 

I 

J 

JO 

K 

MO 
N 

N$() 
P 

P() 
X()et 



Y() 



derniere touche appuyee 

somme des trois des 

valeur des trois des 

cases gagnantes 

indice de boucle FOR/NEXT 

indice de boucle FOR/NEXT 

choix des joueurs 

indice de boucle FOR/NEXT 

multiplicateur pour les gains 

nombre de joueurs 

nom des cases 

numero de la case choisie par le joueur 

nombre de jetons restant a chaque joueur 

coordonnees des cases sur I'ecran 




JETONS 



t* 


-/ TO US 
BRELAN 


s \ 


J3\ 


7 


□ □ □ 1 


14 


6 

5 


000 


IS 


000 


1G 


4 


0IE3 


17 


M 





P 


mmm 


I 


ii {hi 


IU 


u 


VI j 



JOUEUR 

JOUEUR 

JOUEUR 

JOUEUR 

JOUEUR 

JOUEUR 

JOUEUR 

JOUEUR 8 

JOUEUR 9; 


TOTAL: 13 




198 Super jeux Amstrad 




BACCARA 



Si vous revez de I'ambiance feutree mais exaltante des 
casinos, entrez dans le jeu et osez manipuler des sommes 
fabuleuses. 

Un credit de 10000 francs vous est attribue au debut de la 
partie. La banque - votre adversaire - tire quatre cartes 
d'un sabot compose de 8 jeux de cinquante-deux cartes. 
Toutes les cartes conservent leurs valeurs nominales de 
I'as (1) au neuf ; les figures et le dix ne valent rien. Pour 
obtenir la valeur totale d'un jeu, on additionne les valeurs 
de chaque carte en ne retenant que le chiffre des unites. 

A chaque donne, I'ordinateur affiche les cartes ; de meme, 
tout au long du jeu, il indique en bas de I'ecran les 
mouvements en cours ainsi que votre mise et vos gains. 

La banque donne tout d'abord au ponte deux des quatre 
cartes et garde les deux autres pour lui. 

Vous regardez vos cartes et vous vous trouvez alors devant 
quatre possibilit.es pour parler : 

■ vous avez 8 ou 9 : c'est-a-dire une main naturelle : 
c'estau banquierde parler, 

■ vous avez 6 ou 7 : vous ne prenez pas d'autre carte, 

■ vous avez 5 : vous choisissez ou non de prendre une 
autre carte, 

■ vous avez entre et 4 : vous prenez obligatoirement 
une autre carte. 

Seule la troisieme carte que vous aurez pu tirer est visible 
du banquier. 

Puis le banquier parle. Si vous avez 8 ou 9, il faut 
comparer les jeux. Sinon le banquier a le choix de prendre 
ou non une carte (choix determine par un tableau dans le 
programme). A ce moment-la, toutes les cartes sont 
retournees ; le joueur le plus pres de 9 gagne la partie. 

En tapant sur n'importe quelle touche vous obtenez vos 
gains et vous pouvez miser pour un autre tour. 

Le jeu reprend jusqu'a disparition de tout votre capital. . . 



Super jeux Amstrad 



199 



10 REM BACCARA 

20 REM 

30 SYMBOL AFTER 128:GOSUB 1800 

40 MODE 1:INK 0,13:INK 1,0:INK 2,6:INK 3,8:PAPER 

:PEN 1: BORDER 13 

50 DIM J(13,4),S(6,2) 

60 0$="123456789XVDR" 

70 G=10000 

80 RANDOMIZE TIME 

90 T$(3)="TTTTTTTTRTT" 

100 T$(4)="RRTTTTTTRRT" 

110 T$(5)="RRRRTTTTRRT M 

120 T$(6)="RRRRRRTTRRR M 

130 PEN l:CLS:LOCATE 10, 10: PRINT" JE MELANGE LES CA 

RTES" 

140 FOR 1=1 TO 13 

150 FOR K=l TO 4 

160 J(I,K)=0 

170 NEXT K,I 

180 NC=0 

280 REM 

290 REM MISE DU PONTE 

300 PEN l:CLS:LOCATE 10,10:PRINT "MISE (MAX";G ; "F) 

310 INPUT M 

320 IF M<1 OR M>G THEN 300 

380 REM 

390 REM TIRAGE DE 6 CARTES 

400 FOR 1=1 TO 6 

410 P(I)=0 

420 F=INT(RND*13)+1 

430 C=INT(RND*4)+1 

440 IF J(F,C)>=8 THEN 420 

450 0(F,C)=J(F,C)+1 

460 IF F<10 THEN P(I)=F 

470 S(I, 1)=F:S(I, 2)=C 

480 NEXT I 

490 T=P(1)+P(3) 

500 IF T>9 THEN T=T-10 

510 TB=P(2)+P(4) 

520 IF TB>9 THEN TB=TB-10 

580 REM 

590 REM AFFICHE LE JEU 

600 PEN 3:CLS:PRINT TAB( 17) ; "BACCARA" 

610 PEN 2:PRINT:PRINT TAB( 18) ; "PONTE" 

620 LOCATE 18, 12: PRINT "BANQUE" 

630 PEN 3.-L0CATE 4 f 24:PRINT "PONTE: " ; 6 ; " MISE 

: " ; M ; 

680 REM 

690 REM CHOIX DU PONTE 

700 X=10:Y=4:I=1:GOSUB 1500 

200 Super jeux Amstrad 



716 X=17: 1=3: GOSUB 1560 

720 N=0 

730 IF T<>9 AND T<>8 THEN 750 

740 N=1:60T0 1020 

750 IF T<=5 THEN 800 

760 P(5)=10 

770 M$="«PONTE NON»" 

780 GOSUB 1700 

790 GOTO 1000 

800 IF T=5 THEN 860 

810 M$="*PONTE CARTE»" 

820 GOSUB 1700 

830 T=T+P(5) 

840 IF T>9 THEN T=T-16 

850 GOTO 1000 

860 LOCATE 13, 22: PRINT"CARTE (O/N) ?" ; 

870 A$=INKEY$:IF AS="" THEN 870 

880 IF A$="0" THEN 830 

890 IF A$o"N" THEN 870 

900 P(5)=10 

980 REM 

990 REM CHOIX OE LA BANQUE 

1000 IF P(5)=10 THEN 1020 

1010 X=24: 1=5: GOSUB 1500 

1020 X=10:Y=13:I=2:GOSUB 1500 

1030 X=17: 1=4: GOSUB 1500 

1040 IF N=l THEN 1200 

1050 IF TB<3 THEN 1110 

1060 IF TB>6 THEN 1080 

1070 IF MID$(T$(TB),P(5)+1, 1)= H T" THEN 1110 

1080 M$="*BANQUE NON* M 

1090 GOSUB 1700 

1100 GOTO 1200 

1110 M$= M «BANQUE CARTE*" 

1120 GOSUB 1700 

1130 X=24: 1=6: GOSUB 1500 

1140 TB=TB+P(6) 

1150 IF TB>9 THEN TB=TB-10 

1180 REM 

1190 REM RESULTATS 

1200 IF ToTB THEN 1240 

1210 M$="»EXAEQUO* M 

1220 GOSUB 1700 

1230 GOTO 1320 

1240 IF T>TB THEN 1290 

1250 M$= H *BANQUE GAGNE*" 

1260 GOSUB 1700 

1270 G=G-M 

1280 GOTO 1320 

1290 M$="*PONTE GAGNE"+STR$(M)+"F* M 

1300 GOSUB 1700 

1310 G=G+M 

Super jeuxAmstrad 201 



1330 



1320 NC=NC+6 

1330 IF INKEY$="" THEN 

1340 IF G<1 THEN 1370 

1350 IF NC>=204 THEN 130 

1360 GOTO 300 

1370 PEN 1:CLS 

1380 PRINT-MERCI POUR LES 
LE H :PRINT"CA$INO ACCEPTE 

1390 END 

1480 REM 

1490 REM AFFICHE LES CARTES 

1500 PEN 1 

1510 FOR J=Y+1 TO Y+6: LOCATE 



DIX 
LES 



PRINT"MILLE FRANCS. 
PRINT"CHEQUES! " 



X+l, J:PRINT 



N 



EXT J 

1520 PLOT X*16,400-Y*16:DRAW 96+X*16, 400-Y*16: DRAW 
96+X*16,304-Y*16:DRAW X*16, 304-Y*16: DRAW X*16,400 

-Y»16 

1530 K=128+(S(I,2)-1)*4 

IF S(I,2)>2 THEN Z=l ELSE Z=2 

LOCATE X+2,Y+2:PRINT MID$( J$, S( I, 1 ) , 1 ) ; " 

PEN ZrLOCATE X+2, Y+3: PRINT " "CHR$( K)CHR$ (K+l 



1540 
1550 
1560 

\ N H 

1570 
1580 

),D 
1590 
1680 
1690 
1700 
1710 
1720 
1730 
1780 
1790 
1800 
1810 
1820 
1830 
1840 
1850 
1860 
1870 
1880 
1890 
1900 
1910 
1920 
1930 
1940 
1950 
1960 



LOCATE X+2,Y+4:PRINT " "CHR$(K+2 )CHR$(K+3 ) " " 
PEN l:LOCATE X+2, Y+5: PRINT " "MID$( J$, S ( I, 1 

RETURN 

REM 

REM AFFICHE UN MESSAGE 

PEN 3:LOCATE 20-LEN(M$) /2, 22: PRINT M$ 

FOR 1=1 TO 2000: NEXT I 

LOCATE l f 22:PRINT CHR$(18) 

RETURN 

REM 

REM GRAPHIQUES 



SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
SYMBOL 
RETURN 



128 
129 
130 
131 
132 
133 
134 
135 
136 
137 
138 
139 
140 
141 
142 
143 



1,3,7, 15,31,63,127,255 

128,192,224,240,248,252,254,255 

255,127,63,31,15,7,3,1 

255,254,252,248,240,224,192,128 

56,124,254,254,255,255,255,255 

56,124,254,254,254,254,254,254 

127,127,63,31,15,7,3,1 

252,252,248,240,224,192, 128,0 

1,3,7,15,15,15,7,51 

0,128,192,224,224,224, 192, 152 

121,253,255,253,121,51,7,15 

60, 126,254,126,60,152, 192,224 

1,3,7,15,31,63,63,63 

0, 128, 192, 224, 240, 248, 248, 248 

63,63,31,13, 1,3,7, 15 

248,248,240,96,0,128,192,224 



202 



Super jeux Amstrad 



Programme 



Lignes 30 a 180 : initialisation 

Apres la definition des caracteres graphiques par le sous- 
programme en 1800, on place dans le tableau T$ les 
decisions que prendra le banquier. Chaque liste du tableau 
contient onze informations. Les dix premieres 
correspondent a la valeur de la carte tiree par le ponte 
(entre et 9). La onzieme precise que le ponte n'a pas pris 
de carte. La lettre T conseille au banquier de tirer, alors 
que R I'incite a rester. Chaque ligne correspond au jeu du 
banquier. Seules sont representees les solutions pour les 
valeurs comprises entre 3 et 6 puisque le banquier tire 
toujours une carte quand il a moins de 3 points et refuse 
quand il en a plus de 6. 

Le tableau J correspond au sabot. II est remis a zero quand 
les cartes sont toutes tirees. 

Lignes 300 a 320 : mise du ponte 

On saisit la mise du ponte a condition qu'elle ne soit pas 
superieure au capital et qu'elle ne soit pas nulle. 

Lignes 400 a 520 : tirage des cartes 

On tire 6 cartes dans le sabot, F correspondant a la figure 
de la carte et C a la couleur.On increments le tableau J de 
1 ; celui-ci ne doit jamais depasser 8 puisqu'il n'y a que 
8 jeux de 52 cartes. 

Lignes 700 a 900 : choix du ponte 

Apres I'affichage des cartes du ponte, celui-ci peut choisir 
une carte uniquement si le total de ses points est egal a 5. 

Dans les autres cas, on suit les regies exposees dans 
I'introduction de ce chapitre. 

Lignes 1000 a 1150 : choix du banquier 

Le banquier tire ou non une carte suivant les donnees du 
tableau T$ (voir les explications des lignes 30 a 180). 

Lignes 1200 a 1390 : resultats et fin 

Pour les resultats, il suffit de comparer les jeux du ponte et 
du banquier (variables T et TB). On les affiche a I'ecran 
ainsi que les gains du ponte. Si ce dernier a toujours de 
I'argent, on continue la partie. 
Dans le cas ou le nombre de cartes deja tirees depasse 
204, on remet le tableau J a zero avant une nouvelle partie. 



Super jeux Amstrad 



203 



LlSTE 
DES VARIABLES : 



AS 


choix du ponte 


C 


nombre aleatoire donnant la couleur 


F 


nombre aleatoire donnant la figure 


G 


gain du ponte 


1 


indice de boucle FOR/NEXT 


JS 


liste des cartes 


J(.) 


cartes du jeu : 13 cartes et 4 couleurs 


K 


indice de boucle FOR/NEXT 


M 


mise du ponte 


MS 


message a afficher 


N 


N=1 si main naturelle 


NC 


nombres de cartes deja utilisees 


P() 


valeur des cartes de la partie 


S(.) 


cartes en jeu 


T 


total des cartes du ponte 


no 


liste des choix du banquier : 




- T conseille de tirer une carte 




- R incite a rester a 2 cartes 


TB 


total des cartes du banquier 


XetY 


coordonnees des cartes sur I'ecran 













BACCARA 
PONTE 






9 

9 


s ! 


I 

X 






BfiNOUE 




i 


» 


R 

♦ 
R 






\„. 


*PONTE GAGNE lOQOF* 


9Q / 



204 



Super jeux Amstrad 




BUCK DICE 



Buck Dice se joue avec quatre des. Le premier, tire une 
seule fois en debut de partie, sert d'atout. Chaque joueur 
lance a tour de role les trois autres des. 

Pour gagner une partie, il faut obtenir quinze points. 
Chaque de qui correspond a I'atout donne un point. S'il 
s'agit d'un brelan, appele Little Buck, on obtient cinq 
points. Le brelan d'atout, appele Big Buck, donne 
automatiquement quinze points quel que soit le total 
anterieur. 

Si un joueur obtient au moins un point il doit rejouer. 

A I'exception de Big Buck, il n'est pas possible de depasser 
quinze. Le joueur passe done son tour sans marquer de 
point dans ce cas. 

Pour lancer les des, chaque joueur doit appuyer sur un des 
chiffres de un a neuf pour forcer le sort. Apres chaque 
lancer, n'oubliez pas d'appuyer sur ENTER. 









f RUOK I>IOE 


/ mi 


< — «=l TOUT 1 


m [a 


E3 




■JOUE UP* 


s 




JOUEUR JL = 


G 


I*TS 


JOUEUR S ; 


J_ 


I*TS 


JOUEUR 3 z 





JPTS 


JOUEUR -=» = 


3 


I*TS 


1 JOUEUR S : 


X- 


I*TS 1 


1 JOUEUR G : 


3 


P-TS J 


1 JOUEUR V i 


JLO 


IP TS 1 


1 JOUEUR O i 


•4 


J*TS 1 







Super jeux Amstrad 



205 



10 REM BUCK DICE 

20 REM 

30 CLS 

40 INPUT-NOMBRE DE JOUEURS ■ ; N 

50 IF N<1 OR N>8 THEN PRINT"ENTRE 1 ET 8 !":GOTO 4 



60 MODE 0:INK 0,1:INK 1,24:INK 2,6:INK 3,15:PAPER 

0.-PEN 1: BORDER 1 

70 SYMBOL AFTER 128 

80 RANDOMIZE TIME 

90 SYMBOL 128,0,0,0,24,24,0,0,0 

100 SYMBOL 129,0,24,24,0,0,24,24,0 

110 SYMBOL 130,96,96,0,24,24,0,6,6 

120 SYMBOL 131,102,102,0,0,0,0,102,102 

130 SYMBOL 132,102,102,0,24,24,0,102,102 

140 SYMBOL 133,102,102,0,102,102,0,102,102 

280 REM 

290 REM DESSIN DU JEU 

300 PEN 3:LOCATE 5, 1 : PRINT"BUCK DICE" 

310 PEN 2:LOCATE 11 , 5: PRINT " <-ATOUT" 

320 PLOT 254,338:DRAWR 34,0:DRAWR 0,-22:DRAWR -34, 

0:DRAWR 0,22 

330 FOR 1=0 TO 192 STEP 96 

340 PLOT 158+1, 274:DRAWR 34,0:DRAWR 0,-22:DRAWR -3 

4,0rDRAWR 0,22 

350 NEXT 

360 FOR 1=1 TO RND*30+30 

370 A=INT(RND*6)+1 

380 PEN 3.-LOCATE 9,5:PRINT CHR$(127+A) 

390 NEXT 

480 REM 

490 REM LE JEU 

500 FOR K=l TO N 

510 AP=P(K) 

520 PEN 1 

530 LOCATE 5, 12: PRINT" JOUEUR " ; K 

540 Z=VAL(INKEY$):IF Z<1 OR Z>9 THEN 540 

550 FOR 1=1 TO RND(1)«Z+10 

560 PEN 3 

570 FOR J=l TO 3 

580 D(J)=INT(RND*6)+1 

590 LOCATE 3+J*3, 9: PRINT CHR$ ( 1 27+D( J) ) 

600 NEXT J 

610 PEN 1 

620 NEXT I 

630 IF D(1)<>D(2) OR D(2)<>D(3) THEN 660 

640 IF D(1)=A THEN P(K)=15:QOTO 680 

650 IF P(K)+5<16 THEN P(K)=P(K)+5 

660 P=ABS((D(1)=A)+(D(2)=A)+(D(3)=A)) 

670 IF P(K)+P<16 THEN P(K)=P(K)+P 

680 FOR 1=1 TO N 

206 Super jeux Amstrad 



690 LOCATE 1,14+I:PRINT " JOUEUR"; I; ": " ; USING" ## 

;P(I); :PRINT "PTS" 

700 NEXT 

710 IF INKEY$<>CHR$(13) THEN 710 

720 IF P(K)=15 THEN 900 

730 IF AP<P(K) THEN 510 

740 NEXT: GOTO 500 

880 REM 

890 REM RESULTATS 

900 MODE 1 

910 PRINT TAB(15); "RESULTATS" 

920 FOR 1=1 TO N 

930 LOCATE 8, 6+1*2: PRINT" JOUEUR"; I; ":"; USING" ## 

;P(I); :PRINT"POINT(S)" 

940 NEXT 

950 IF JNKEY$oCHR$(13) THEN 950 

960 RUN 



Super jeux Amstrad I 207 



Programme 



Liste 
des varaibles : 



Lignes 30 a 140 : initialisation 

Apres la saisie du nombre de joueurs, le programme 
initialise les nombres aleatoires (ligne 80). 

Les lignes 100 a 140 initialisent les graphiques avec le 
dessin des six faces d'un de. 

Lignes 300 a 390 : dessin du jeu 

Les lignes 320 a 350 dessinent sur I'ecran les cadres des 
quatre des. C'est la boucle de 360 a 390 qui donne I'atout. 

Lignes 500 a 740 : le jeu 

Les des sont affiches par la boucle des lignes 550 a 620 en 
fonction des nombres aleatoires contenus dans le tableau 
D. 

Les lignes 630 a 670 calculent les points obtenus par le 
joueur. 

La boucle des lignes 680 a 700 affiche le nombre de jetons 
restant a chaque joueur. 



A 


valeurde I'atout 


AP 


nombre de points d'un joueur avec un coup 


D() 


valeur des trois des 


1 


indice de boucle FOR/NEXT 


K 


indice de boucle FOR/NEXT 


N 


nombre de joueurs 


P 


nombre de des correspondant a I'atout 


P() 


nombre de jetons restant a chaque joueur 


Z 


chiffre tape au clavier par le joueur 



208 



Super jeux Amstrad 



**M 



TIERCE 



Pburquoi vous priver d'assister en direct au tierce quand il 
pleut ou qu'il fait froid ? 

Branchez vite votre Amstrad, reunissez votre famille, vos 
amis, et les paris sont ouverts. 

Huit joueurs au maximum peuvent inscrire leurs 
combinaisons de trois chevaux de 1 a 9. 

Puis vos favoris n'attendent que I'enfoncement d'une 
touche pour s'elancer sur I'hippodrome. 
Le 3, le 5... non c'est le 7 qui I'emporte d'une longueur ! 
De toute fagon I'ordre d'arrivee s'inscrit au fur et a mesure 
au bas de I'ecran. 

Quand la course est finie, vous pouvez taper sur n'importe 
quelle touche pour avoir les resultats des joueurs. 
Pour le tierce dans I'ordre, vous « touchez » dix points ; 
dans le desordre 5 points. Pour deux chevaux gagnants 
vous touchez 2 points et pour un seul cheval rien du tout. 
Mais vous pouvez rejouer tres vite en tapant sur une 
touche et aux prochains resultats vous obtiendrez le cumul 
de vos points dans la colonne total. 

Alors, prets pour une deuxieme course ? 



Super jeux Amstrad 



209 



10 REM TIERCE 

20 REM 

30 SYMBOL AFTER 128:60SUB 2000 

40 MODE 1:INK 0,9:INK 1,0:INK 2,6:INK 3,15:PAPER 

:PEN 1: BORDER 9 

50 INPUT-NB DE PARIEURS H ;PA 

60 IF PA>8 THEN 40 

70 PRINT:PRINT 

80 FOR 1=1 TO PA 

90 PRINT H NOM DU PARIEUR";I; 

100 INPUT NS(I) 

110 NEXT I 

120 RANDOMIZE TIME 

180 REM 

190 REM ENTREE DES PARIS 

200 C=C+1 

210 CLS:PRINT:PRINT TAB( 14) ; "COURSE"; C 

220 FOR 1=1 TO PA 

230 PRINTrPRINT 

240 FOR J=l TO 3 

2^0 PRINT-CHEVAL"; J; "DE H ;NS(I) 

260 INPUT C(I,J) 

270 IF C(I,J)>9 THEN 250 

280 NEXT J, I 

380 REM 

390 REM LA COURSE 

400 CLSrPEN 2:PRINT TAB ( 14) ; "COURSE"; C: PRINT: PRINT 

:PRINT:PEN 1 

410 PRINT STRIN6$(36, "-") 

420 FOR 1=1 TO 9 

430 PEN 3:PRINT I;:PEN IrPRINT A$( 1 ) ; CHR$( 134) ; : PE 

N 3:PRINT TAB(36);CHR$(133) 

440 PRINT " ";CHR$(134) ; TAB(36);CHR$(133) 

450 NEXT I: PEN 1 

460 PRINT STRING$(36, "-") 

470 FOR 1=1 TO 9:R(I)=0:X(I)=4:NEXT 

480 PEN 1 

500 IF INKEY$= M " THEN 500 

510 FOR 1=6 TO 23:LOCATE 7,I:PRINT " ":NEXT 

600 I=INT(RND*9)+1 

610 IF X(I)>36 THEN 600 

620 LOCATE X( I ), 4+1*2: PRINT A$(l):FOR J=l TO 50-.NE 

XT J 

630 LOCATE X( I ), 4+1*2: PRINT A$(2) 

640 X(I)=X(I)+1 

650 FOR J=l TO 40:NEXT J 

660 IF X(I)>=36 THEN 700 

670 GOTO 600 

680 REM 

690 REM VERIF. ARRIVEE 
700 X(I)=X(I)+1 

210 Super jeux Amstrad 



710 NA=NA+1:R(NA)=I 

729 PEN 2:L0CATE NA*2, 25: PRINT I;:PEN 1 

730 IF NA<9 THEN 608 

780 REM 

790 REM RESULTATS 

800 IF INKEY$=' M THEN 800 

810 CLS:PEN 2:PRINT TAB(12) ; "RESULTATS": PEN 1 

820 PRINT:PRINT"PLACE NO" 

830 FOR 1=1 TO 9:PRINT I,R(I):NEXT I 

840 PRINT:PRINT"NOM CI C2 C3 PTS TOT." 

850 FOR 1=1 TO PA 

860 NO=0:T=0:TP=0 

870 FOR J=l TO 3 

880 FOR K=l TO 3 

890 IF R(J)<>C(I,K) THEN 910 

900 NO=NO+l 

910 IF JOK OR R(0)<>C(I t K) THEN 930 

920 T=T+1 

930 NEXT K,J 

940 IF T=3 THEN TP=TP+5 

950 IF NO=3 THEN TP=TP+5 

960 IF NO=2 THEN TP=TP+2 

970 P(I)=P(I)+TP 

980 PRINT LEFT$(N$(I)+" ",6); H M ; C( I, 1 ) ; C( I, 2) 

;C(I,3);TP;" ";P(I) 

990 NEXT I 

1000 IF INKEY$="" THEN 1000 

1010 NA = 

1020 GOTO 200 

1980 REM 

1990 REM GRAPHIQUES 

2000 SYMBOL 128,0,0,0,12,3,3,5,10 

2010 SYMBOL 129,8,12,26,113,255,254,1,1 

2020 SYMBOL 130,0,128,224,144,192,128,64,32 

2030 SYMBOL 131,0,0,1,195,63,63,80,80 

2040 SYMBOL 132,128,196,174,153,252,224,20,34 

2050 SYMBOL 133,168,80,168,80,168,80,168,80 

2060 SYMBOL 134,128,128,128,128,128,128,128,128 

2070 A$(1)=CHR$(128)+CHR$(129)+CHR$(130) 

2080 A$(2)=" M +CHR$(131)+CHR$(132) 

2090 RETURN 



Super jeux Amstrad 211 



Programme 



Lignes 30 a 120 : initialisation 

On saisit au clavier le nombre et le nom des parieurs. 

Lignes 200 a 280 : entree des paris 

Apres I'increment du numero de la course, chaque parieur 
donne a tour de role sa combinaison de trois chevaux. 
Celle-ci est placee dans le tableau a deux dimensions C(,). 

Lignes 400 a 730 : dessin, course et verification de 
I'arrivee 

Apres le dessin de I'hippodrome, le jeu commence en 
deplagant aleatoirement les chevaux (variable I). 

La ligne 730 teste si tous les chevaux sont sur la ligne 
d'arrivee. 

Lignes 800 a 1020 : resultats 

Cette partie du programme donne les resultats a I'arrivee et 
compte le nombre de points acquis par chaque parieur. 

Des qu'une touche d'Amstrad est appuyee, le programme 
retoume a la ligne 200 pour une nouvelle course. 



212 Super jeux Amstrad 



LlSTE 
DES VARIABLES : 



A$() 


dessin des chevaux 


C 


numero de la course 


C(.) 


chevaux joues par chaque parieur 


1 


indice de boucle FOR/NEXT 


J 


indice de boucle FOR/NEXT 


K 


indice de boucle FOR/NEXT 


N$() 


nom des parieurs 


NA 


numero d'arrivee 


NO 


nombre de chevaux dans I'ordre 


P() 


total des points (cumul de toutes les courses) 


PA 


nombre de parieurs 


R() 


tableau d'arrivee 


T 


nombre de chevaux dans le desordre 


TP 


total des points de la derniere course 


XI) 


position des chevaux pendant la course 




Super jeux Amstrad 213 




POKER 



Apres avoir rentre votre mise (au maximum le montant du 
capital affiche) I'ordinateurvous propose cinq cartes. 

A vous de preparer une combinaison en gardant (taper 
pour oui) ou en changeant (taper N pour non) les cartes 
designees par lafleche. 

Les resultats seront les suivants : 



Meme pas 


aucune des 


mise perdue 


une paire 


combinaisons qui 
suivent. 




1 paire 


2 cartes de meme 
valeur 


mise perdue 


2 paires 


2x2 cartes de 
meme valeur 


rien 


Brelan 


3 cartes de meme 
valeur 


mise gagnee 


Sequence 


5 cartes qui se 
suivent dans 
n'importe quelle 
couleur 


2 fois la mise 


Full 


Brelan + paire 


3 fois la mise 


Flush 


5 cartes de la meme 
couleur 


4 fois la mise 


Carre 


4 cartes identiques 


5 fois la mise 


Flush royal 


5 cartes se suivant 
dans la meme 
couleur 


6 fois la mise 


Pour les cinq 


dernieres combinaisons 


, I'ordinateur 


propose de doubler votre mise (repondre ou N). Si vous 


acceptez, vous devez lui dire si la prochaine carte affichee 


est rouge ou noire (repondre R ou N) 


. Bien sur vous 


perdez tout si vous vous etes trompe 


i 


Le capital est alors mis a jour et vous 


pouvezcontinuer la 


partie jusqu'a 


epuisement de vosfonds. 



214 



Super |eux Amstrad 



10 REM POKER 

20 REM 

30 SYMBOL AFTER 128:60SUB 2000 

40 MODE 1:INK 0,13:INK 1,0:INK 2,6:INK 3,15:PAPER 

0:PEN l:BORDER 13 

50 DIM J(8,4) 

60 ^vsgxvDRi" 

70 Q=100 

80 RANDOMIZE TIME 

90 FOR 1=1 TO 8 

100 C(I)=0 

110 FOR K=l TO 4 

120 J(I,K)=0 

130 NEXT K, I 

180 REM 

190 REM MISE DU JOUEUR 

200 PEN l=CLS:LOCATE 10, 10: PRINT "MISE (MAX";G;"F) 

210 INPUT M 

220 IF M<1 OR M>G THEN 200 

280 REM 

290 REM TIRAGE DE 10 CARTES 

300 FOR 1=1 TO 10 

310 P(I)=0 

320 F=INT(RND*8)+1 

330 C=INT(RND*4)+1 

340 IF J(F,C)=1 THEN 320 

350 J(F,C)=1 

360 S(I,1)=F:S(I,2)=C 

370 NEXT I 

480 REM 

490 REM LE JEU 

500 PEN 2:CLS:PR.INT TAB ( 19) ; "POKER " 

510 PEN 3 

520 LOCATE 4,24:PRINT "CAPITAL :" ; G; " MIS 

E • " • M • 

U . , I I , 

530 C=0 

540 FOR 1=1 TO 5 

550 X=I*7-3: Y=3:GOSUB 1306 

560 NEXT I 

570 FOR 1=1 TO 5 

580 LOCATE 1+1*7, 12: PRINT 

590 A$=INKEY$:IF A$="" THEN 590 

600 IF A$="N" THEN 640 

610 IF A$<>"0" THEN 590 

620 LOCATE 1+1*7, 11: PRINT "0" 

630 GOTO 660 

640 S(I,l)=S(I+5,l):S(I,2)=S(I+5,2) 

650 LOCATE 1+1*7, 1 1 : PRINT "N" 

660 LOCATE 1+1*7, 12: PRINT " " 

670 NEXT I 

Super jeuxAmstrad I 215 



680 FOR 1=1 TO 5 

690 X=I*7-3:G0SUB 1300 

700 NEXT I 

710 FOR 1=1 TO 8 

720 P(I)=0 

730 FOR J=l TO 5 

740 IK S(J, 1)=I THEN P(I)=P(I)+] 

750 NEXT J 

760 FOR J = 2 TO 4 

770 IF P(I)=J THEN C(J)=C{J)+1 

780 NEXT 3 

790 NEXT I 

800 IF C(4)=l THEN C=7:G0T0 940 

810 IF C(3)=l AND C(2)=l THEN C=5:G0T0 900 

820 IF C(3)=l THEN C=3:G0T0 900 

830 IF C(2)=2 THEN C=2:GOTO 900 

840 IF C(2)=l THEN C=l:GOTO 900 

850 FOR 1=5 TO 8 

860 FOR J=l TO 5 

870 IF S(J,1)>I OR S(0,l)<I-4 THEN 890 

880 NEXT 0:C=4 

890 NEXT I 

900 FOR 1=2 TO 5 

910 IF S(I,2)<>S(I-1,2) THEN 940 

920 NEXT I 

930 IF C=4 THEN C = 8 FL SE C=6 

940 LOCATE 22-L EN ( C$ ( C ) ) / 2, 20: PR INT CS(C) 

950 IF C<2 THEN 1100 

960 IF C<3 THEN LOCATE 8, 21 : PRINT " Df TJX PAIRES C'FS 

T PAS ASS El": GOTO 1 110 

970 LOCATE 16, 21 : PRINT "Ml SE * PAR";C-2 

980 IF C=3 THEN 1090 

990 LOCATE 13, 22: PRINT "VOUS VOUl E7 * PAR" ; (C-2)*2 

1000 A$=INKEY$:IF A$="" THEN 1000 ELSE IF A$<>"0" 

THEN 1090 ELSE LOCATE 16, 21 : PR INT "MI SE * PAR"-(C-2 

>*2 

1010 LOCATE 1, 22: PRINT"l A PROCHAINE CARTE EST ROUG 

E OU NOIRE ?" 

1020 A$ = INKEY$:IF A$="" THEN 1020 ELSE IF A$o"N" 

AND A$o"R" THEN 1020 

1030 X=18:Y=12: 1=1 

1040 F=INT(RND*8)+1:Z=INT(RND*4)+1: IF J(F,7)=1 THF 

N 1040 ELSE S(l, 1) = F:S(1,2)=7 

1050 GOSUB 1300 

1060 IF ($(1,2)<2 AND A$="N") OR (S(l,2)>2 AND A$= 

"R") THEN 1080 

1070 G=G+M»(C-2)»2:GOTO 1110 

1080 G = G-M*(C-2)*2.-GOTO 1110 

1090 G=G+M*(C-2):GOTO 1110 

1100 G=G-M 

1110 IF INKEY$="" THEN 1110 

216 I Super jeux Amstrad 



1120 IF G>0 THEN 80 

1130 CLS 

1140 PRINT'AVEC L' ARGENT QUE VOUS AVEZ" 

1150 PRINT"PERDU, JE VAIS M'ACHETER" 

1160 PRINT"UNE EXTENSION ...!" 

1170 END 

1280 REM 

1290 REM AFFICHE LES CARTES 
1300 PEN 1 

1310 FOR J=Y+1 TO Y+6:L0CATE X+1,J:PRINT" ":N 
EXT J 

1320 PLOT X*16,400-Y*16:DRAW 96+X*16, 400-Y*16: DRAW 
96+X*16,304-Y*16:DRAW X»16, 304-Y*16: DRAW X*16,460 
-Y*16 

1330 K=128+(S(I,2)-1)*4 
1340 IF S(I,2)>2 THEN Z=l ELSE Z = 2 
1350 LOCATE X+2, Y+2: PRINT MID$( J$, S( I, 1 ) , 1 ) ; " 
1360 PEN Z:LOCATE X+2, Y+3: PRINT M "CHR$(K)CHR$(K+1 

1379 LOCATE X+2, Y+4: PRINT M "CHR$(K+2)CHR$(K+3) M " 

1380 PEN l:LOCATE X+2, Y+5: PRINT M "MID$( J$, S( I, 1 

M) 

1390 RETURN 

1980 REM 

1990 REM GRAPHIQUES 

2000 SYMBOL 128,1,3,7,15,31,63,127,255 

2010 SYMBOL 129,128,192,224,240,248,252,254,255 

2020 SYMBOL 130,255,127,63,31,15,7,3,1 

2030 SYMBOL 131,255,254,252,248,240,224,192,128 

2040 SYMBOL 132,56,124,254,254,255,255,255,255 

2050 SYMBOL 133,56,124,254,254,254,254,254,254 

2060 SYMBOL 134,127,127,63,31,15,7,3,1 

2070 SYMBOL 135,252,252,248,240,224,192,128,0 

2080 SYMBOL 136,1,3,7,15,15,15,7,51 

2090 SYMBOL 137,0,128,192,224,224,224,192,152 

2100 SYMBOL 138,121,253,255,253,121,51,7,15 

2110 SYMBOL 139,60,126,254,126,60,152,192,224 

2120 SYMBOL 140,1,3,7,15,31,63,63,63 

2130 SYMBOL 141,0,128,192,224,240,248,248,248 

2140 SYMBOL 142,63,63,31,13,1,3,7,15 

2150 SYMBOL 143,248,248,240,96,0,128,192,224 

2160 C$(1)="UNE PAIRE M :C$(2)="DEUX PAIRES": C$(3)=" 

BRELAN" 

2170 C$(4)=" SEQUENCE" :C$( 5)=" FULL ":C$(6)="FLUSH" 

2180 C$(7)="CARRE":C$(8)="FLUSH ROYAL M : C$(0)= H MEME 

PAS UNE PAIRE" 
2190 RETURN 



Super jeux Amstrad 217 



Programme 



Lignes 30 a 130 : initialisation 

Apres la definition des caracteres graphiques et des 
combinaisons gagnantes dans le tableau C$ (sous- 
programme en 2000), on initialise a le tableau J 
correspondant au jeu de cartes. II est remis a zero a 
chaque partie. 

Lignes 200 a 220 : mise du joueur 

On saisit la mise du joueur a condition qu'elle ne soit pas 
superieure au capital et qu'elle ne soit pas nulle. 

Lignes 300 a 370 : tirage de 10 cartes 

On tire 10 cartes dans le jeu, F correspondant a la figure de 
la carte et C a la couleur. On increments le tableau J de 1 ; 
on teste celui-ci a chaque tirage pour ne pas utiliser deux 
fois la meme carte. 

Lignes 500 a 1170 : le jeu 

Apres I'affichage des cartes avec le sous-programme en 
1300, on saisit le choix du joueur. 

Puis on affiche les nouvelles cartes et Ton suit les regies 
exposees dans I'introduction de ce chapitre. 

Les boucles des lignes 710 a 790 placent dans le tableau C 
le nombre de cartes identiques (exemple : C(4)=1 donne 
un carre, C(2)=2 donne deux paires, etc..) 

Les lignes 800 a 840 placent dans la variable C les 
combinaisons trouvees a partir des valeurs du tableau C 
(exemple : C(3)=1 et C(2) = 1 donne un full done C=5). 

Les lignes 850 a 890 detectent la presence d'une sequence 
(C=4) et les lignes 900 a 920 la presence d'un flush (cinq 
cartes de la meme couleur, C=6). Si Ton avait deja une 
sequence, C=4 devient C=8 pour le flush royal. 

Apres totalisation des gains, on reprend une autre partie 
s'il reste encore du capital. 



218 



Super jeux Amstrad 



LlSTE 
DES VARIABLES : 



AS 


choixdu joueur 


C 


nombre aleatoire donnant la couleur 


CO 


nombre de cartes identiques 


c$() 


liste des combinaisons gagnantes 


F 


nombre aleatoire donnant la figure 


G 


gain du joueur 


1 


indice de boucle FOR/NEXT 


J 


indice de boucle FOR/NEXT 


JS 


liste des cartes 


J(.) 


cartes du jeu : 8 cartes de 4 couleurs 


K 


pointeur des caracteres graphiques pour 




afficher le jeu 


L$0 


dessin des cartes 


M 


mise du joueur 


P() 


nombre de cartes identiques (ex : P(1)=3, 




s'il y a 3 fois la carte 7, P(2)=4 s'il y a 4 fois 




la carte 8) 


S(,) 


cartes en jeu 


XetY 


coordonnees des cartes sur I'ecran 


Z 


couleur de la carte a afficher 



POKER 



D D 

D D 



* 





u 



FULL 
MISE * PAF 6 
LA PROCHAINE CARTE EST ROUGE OU NOIRE t 



CAPITAL: 50 



MISE: 10 



Super jeux Amstrad 



219 




ETITS COCHONS 



Plus de tricherie possible : vous pouvez jouer a deux aux 
celebres petits cochons dont il faut gagner aux des tous les 
elements. 

Amstrad dessine les des sur I'ecran. Chaque joueur doit 
les lancer en appuyant sur un des chiffres de 1 a 9 (pour 
forcer le sort). 

Mais quelle surprise : si vous avez 9 points en tout, le 
corps d'un cochon apparait. II faudra ensuite 
successivement 7 points pour chaque ceil, au moins un de 
de six pour la queue et au moins un as pour une patte ou 
une oreille (un double as vous donnant droit a deux 
pattes) . 




220 



Super jeux Amstrad 



10 REM PETITS COCHONS 

20 REM 

30 MODE 1:INK 0,1:INK 1,24: INK 2,16:INK 3,2:PAPER 

0:PEN l:BORDER 1 

40 SYMBOL AFTER 128 

50 DEG 

60 RANDOMIZE TIME 

70 DATA CORPS, 9.0EIL DR0IT,7,0EIL GAUCHE, 7, QUEUE, 6 

80 DATA OREILLE DROITE, 1 , OREILLE GAUCHE, 1 

90 DATA PATTE AV. DROITE, 1 , PATTE AV. GAUCHE, 1, PATT 

E AR. DROITE, 1, PATTE AR. GAUCHE, 1 

100 FOR 1=1 TO 10:READ N$( I ) , 0( I ) : NEXT 

110 SYMBOL 128,0,0,0,24,24,0,0,0 

120 SYMBOL 129,0,24,24,0,0,24,24,0 

130 SYMBOL 130,96,96,0,24,24,0,6,6 

140 SYMBOL 131,102,102,0,0,0,0,102,102 

150 SYMBOL 132,102,102,0,24,24,0,102,102 

160 SYMBOL 133,102,102,0,102,102,0,102,102 

170 X(1)=200:X(2)=500 

180 FOR 1=1 TO 2 

190 PLOT 158+1*96, 162, 2:DRAWR 18,0:DRAWR 0,-22:DRA 

WR -18,0:DRAWR 0,22 

200 NEXT 

280 REM 

290 REM IE JEU 

300 FOR 1=1 TO 2 

310 LOCATE 1,20:PRINT CHR$(7) ; CHR$( 18) ; TAB( 16) ; " JO 

UEUR M ;I 

320 A=VAL(INKEY$) 

330 IF A<1 OR A>9 THEN 320 

340 FOR J=l TO A*3 

350 FOR K=l TO 2 

360 DE(K)=INT(RND*6)+1 

370 LOCATE 11+K*6, 16: PRINT CHR$ ( 127+DE(K) ) 

380 NEXT 

390 NEXT 

400 DES=DE(1)+DE(2) 

410 J=EL(I)+1 

420 IF 0=4 THEN 440 

430 IF D(J)=DES THEN 480 

440 IF D(J)=DE(1) THEN 480 

450 IF D(J)=DE(2) THEN 480 

460 LOCATE 15,20:PRINT CHR$(18) ; " RIEN" 

470 FOR K=l TO 500: NEXT: GOTO 590 

480 EL(I)=EL(I)+1:X=X(I) 

490 LOCATE 1,20:PRINT TAB( 20-LEN( N$ ( J) ) 12) ; CHR$( 18 

);N$(J) 

500 ON 3 GOSUB 800,900,1000,1700,1100,1200,1300,14 

00,1500,1600 

510 IF DE(1)<>1 OR DE(2)<>1 THEN 570 

520 IF EL(I)=10 THEN 700 

Super jeux Amstrad 221 



530 J=J+1 

540 EL( I )=EL( I )+l 

550 LOCATE l r 20:PRINT TAB(20-LEN(N$( J) ) 12) ; CHR$( 18 

) ; N$(J) 

560 ON GOSUB 800,900,1000,1700,1100,1200,1300,14 

00, 1500, 1600 

570 IF EL ( I ) = 1 THEN 700 

580 GOTO 310 

590 NEXT I 

600 GOTO 300 

680 REM 

690 REM FIN 

700 LOCATE 1,20:PRINT CHR$( 18) ; TAB( 12) ; "LE JOUEUR" 

; I; "GAGNE" 

710 IF INKEY$<>CHR$(13) THEN 710 

720 RUN 

780 REM 

790 REM CORPS 

800 FOR K=l TO 360:MOVE X-14, 300: PLOTR 70*COS(K),5 

0*SIN(K),2:NEXT 

810 FOR K=l TO 360 STEP 3:MOVE X-l 1 0, 320: PLOTR 30* 

COS(K),30*SIN(K):NEXT 

820 FOR K=l TO 360 STEP 6:M0VE X-110, 304: DRAWR 10* 

COS(K), 10*SIN(K):NEXT 

830 RETURN 

880 REM 

890 REM OEIL GAUCHE 

900 FOR K=l TO 360 STEP 6:MOVE X-120, 320: PLOTR 4*C 

0S(K),4*SIN(K),3:NEXT 

910 RETURN 

980 REM 

990 REM OEIL DROIT 

1000 FOR K=l TO 360 STEP 6:M0VE X-100, 320: PLOTR 4* 

C0S(K),4*SIN(K),3:NEXT 

1010 RETURN 

1080 REM 

1090 REM OREILLE GAUCHE 

1100 PLOT X-124,352,2:DRAW X-l 16, 368: DRAW X-112,35 

4:DRAW X-124,352 

1110 RETURN 

1180 REM 

1190 REM OREILLE DROITE 

1200 PLOT X-104,354,2:DRAW X-96, 368: DRAW X-92,352: 

DRAW X-104,354 

1210 RETURN 

1280 REM 

1290 REM PATTE AVANT GAUCHE 

1300 PLOT X-70,262,2:DRAW X-62, 254: DRAW X-62,210:D 

RAW X-70,210:DRAW X-70,262 

1310 RETURN 

1380 REM 

222 Super jeux Amstrad 



1390 REM PATTE AVANT DROITE 

1406 PLOT X-54,250,2:DRAW X-46, 242: DRAW X-46,210:D 

RAW X-54,210:DRAW X-54,250 

1410 RETURN 

1480 REM 

1490 REM PATTE ARRIERE GAUCHE 

1500 PLOT X+24,250,2:ORAW X+16 r 242: DRAW X + 16,210:D 

RAW X+24,210:DRAW X+24,250 

1510 RETURN 

1580 REM 

1590 REM PATTE ARRIERE DROITE 

1600 PLOT X+40,262,2:DRAW X+32 r 254: DRAW X+32, 210: D 

RAW X+40, 210: DRAW X+40,262 

1610 RETURN 

1680 REM 

1690 REM QUEUE 

1700 FOR K=40 TO 60 STEP 10 

1710 FOR 1=1 TO 90 STEP 2:MOVE X+K, 300+K: PLOTR 10* 

COS(L), 10»SIN(L), 1:NEXT 

1720 FOR L=180 TO 360 STEP 2:MOVE X+K, 300+K: PLOTR 

10*COS(L), 10*SIN(L),2:NEXT 

1730 NEXT 

1740 RETURN 



Super jeux Amstrad 223 



Programme 



Liste 
des variables : 



Lignes 30 a 200 : initialisation 

Les DATA des lignes 70 a 90 definissent toutes les parties 
du cochon. Le chiffre qui suit le nom correspond au 
nombre de points a faire avec les des. 

Les lignes 110 a 160 placent dans les graphiques la 
representation des six faces du de. 

Les lignes 180 a 200 dessinent les cadres autour des deux 
des. 

Lignes 300 a 600 : le jeu 

On saisit au clavier le nombre entre 1 et 9 que tape le 
joueur. Ce nombre est utilise dans la generation des des 
aleatoires (boucle des lignes 340 a 390). 

La variable J donne le numero du prochain element a 
afficher. On verifie done dans le tableau D() si les des 
correspondent a cet element. Si e'est le cas, on va a la 
ligne 480 pour afficher la partie du cochon. S'il s'agit d'un 
double as, on affiche une deuxieme patte. 

A chaque lancer de des on verifie si le cochon est complet 
en testant le tableau EL(). 

Lignes 700 a 720 : fin 

Ces lignes affichent le nom du gagnant et recommencent 
une partie des qu'une touche est appuyee. 

Lignes 800 a 1750 : affiche les cochons 

Chaque sous-programme affiche une partie du cochon en 
haute-resolution a droite ou a gauche de I'ecran suivant la 
valeurde la variable X. 



A 


valeur de la touche appuyee 


DO 


valeur de chaque element du cochon 


DE() 


valeur des deux des 


DES 


somme des deux des 


EM) 


nombre d'elements deja affiches 


I 


indice de boucle FOR/NEXT 


J 


indice de boucle FOR/NEXT 


K 


indice de boucle FOR/NEXT 


N$() 


noms des elements du cochon 


X() 


position du cochon sur I'ecran 



224 



Super jeux Amstrad 




PASSE-DIX 



Le passe-dix se joue avec trois des et un tapis de quatre 
cases. Chaque joueur (jusqu'a quatre) mise a chaque 
partie sur une des cases en dormant son numero. Si la 
somme des des correspond a un des nombres de la case 
choisie, le joueur remporte le double de sa mise. 

Les nombres dits « MANQUE » sont ceux compris entre 3 
et 10, etles « PASSE » ceux entre 11 et 18 (d'ou lenom 
du jeu). Les MANQUE et les PASSE sont separes pairs et 
impairs pour obtenir quatre cases. 

Comme la partie se joue sur dix tirages, chaque joueur a 
un capital de 10 jetons des le debut. Le programme affiche 
les resultats en fin de partie. 



jj 


M**HOUE 


passe 


la 




IMPAIR 


IMPAIR 






<* 


■& 






MftNOUE 


P ASSE 




il 


pair 


P AIR 
*> 


S 



TOTAI^ : 



Super jeux Amstrad 



225 



10 REM PASSE-OIX 

20 REM 

30 DEFINT A-Z 

40 CLS 

50 INPUT-NOMBRE DE JOUEURS " ; N 

60 IF N<1 OR N>4 THEN PRINT"ENTRE 1 ET 4 !":GOTO 5 

e 

70 MODE 0:INK 0,1:INK 1,24:INK 2,6:INK 3,15:PAPER 

0:PEN l:BORDER 1 

80 SYMBOL AFTER 128 

90 RANDOMIZE TIME 

108 SYMBOL 128,0,0,0,24,24,0,0,6 

110 SYMBOL 129,0,24,24,0,0,24,24,0 

120 SYMBOL 130,96,96,0,24,24,0,6,6 

130 SYMBOL 131', 102,102,0,0,0,0, 102, 102 

140 SYMBOL 132,102,102,0,24,24,0,102,102 

150 SYMBOL 133,102,102,0,102,102,0,162,102 

160 SYMBOL 134,24,126,102,247,247,118,118,24 

170 SYMBOL 135,24,102,90,247,239,66,126,24 

180 SYMBOL 136,24,126,102,247,231,118,102,24 

190 SYMBOL 137,24,126,94,215,195,118,118,24 

200 C(1)=8:C(2)=13:C(3)=3:C(4)=15 

210X(1)=3:X(2)=3:X(3)=13:X(4)=13 

220 Y(1)=6:Y(2)=12:Y(3)=6:Y(4)=12 

230 FOR 1=1 TO N:P(I)=10:NEXT 

380 REM 

390 REM DESSIN DU JE'J 

400 FOR K=l TO 10 

410 CLS 

420 LOCATE 1 , 2: PRINT" 1 ": LOCATE 3, 2: PRINT M MANQUE": L 

OCATE 3,4:PRINT"IMPA.IR" 

430 LOCATE 20, 2: PRINT"3" : LOCATE 13, 2: PRINT"PASSE" : 

LOCATE 13,4:PRINT"IMPAIR" 

440 LOCATE 1 , 1 2: PRINT"2" : LOCATE 3, 8: PRINT"MANQUE": 

LOCATE 5 I 10:PRINT"PAIR" 

450 LOCATE 20, 12 : PRINT "4" : LOCATE 13, 8: PRINT"PASSE" 

rLOCATE 13, 10:PRINT"PAIR" 

460 PLOT 2,398:DRAWR 634,0:DRAWR 0,-192:DRAWR -634 

,0:DRAWR 0,192 

470 PLOT 304,398:DRAWR 0,-192 

480 PLOT 2,298:DRAWR 634,0 

490 PLOT 2,366:DRAWR 32,0:DRAWR 0,32:PLOT 636,366: 

DRAWR -32,0:DRAWR 0,32 

500 PLOT 2,238:DRAWR 32,0:DRAWR 0,-32:PLOT 636,238 

rDRAWR -32,0:DRAWR 0, -32 

510 FOR 1=0 TO 192 STEP 96 

520 PLOT 190 + 1, liJ0: DRAWR 36,0:DRAWR 0,-26:DRAWR -3 

6,0: DRAWR 0,26 

530 NEXT 

540 FOR 1=1 TO N 

550 LOCATE 4, 21+1 : PRINT" JOUEUR" ; I; " : " ; P( I ) 

226 Super jeux Amstrad 



560 NEXT 

688 REM 

690 REM LE JEU 

700 FOR 1=1 TO N 

710 LOCATE 7 ? 18:PRINT "OOUEUR"; I: PRINT TAB(3) ; "NUM 

ERO DE LA CASE ?" 

720 J(I)=VAL(INKEY$):IF J(I)=0 THEN 720 

730 IF J<I)<1 OR J(I)>4 THEN 720 

740 LOCATE X( J(I ) )+I, Y(0( I ) ) : PRINT CHR$(I+133) 

750 LOCATE 1,18:PRINT CHR$( 18): PRINT: PRINT CHR$(18 

) 

760 NEXT 

770 FOR 1=1 TO RND*20+20 

780 FOR J=l TO 3 

790 0(0)=INT(RN0*6)+1 

800 LOCATE 4+J*3, 15:PRINT CHR$( 127+D( J) ) 

810 NEXT 

820 NEXT 

830 D=D(1)+D(2)+D(3) 

840 LOCATE 6, 18: PRINT"TOTAL: " ? D 

850 IF INKEY$<>CHR$(13) THEN 850 

860 IF D>10 THEN 0=3 ELSE J=l 

870 IF 0/2=INT(D/2) THEN J=J+1 

880 FOR 1=1 TO N 

890 IF J(I)=J THEN P(I)=P(I)+1 ELSE P(I)=P(I)-1 

900 NEXT 

910 NEXT 

1080 REM 

1090 REM RESULTATS 

1100 MODE 1 

1110 PRINT TAB(15); "RESULTATS" 

1120 FOR 1=1 TO N 

1130 LOCATE 9 T 10+I*2:PRINT"JOUEUR";I; ": ";P(I); "JET 

ON(S)" 

1140 NEXT 

1150 IF INKEY$oCHR$(13) THEN 1150 

1160 RUN 



Super jeux Amstrad 227 



Programme 



Liste 
des variables : 



Lignes 30 a 230 : initialisation 

Apres la saisie du nombre de joueurs, le programme 
initialise les nombres aleatoires (ligne 90). 
Les lignes 100 a 190 initialisent les graphiques avec le 
dessin des six faces d'un de et des quatre jetons. 

Lignes 400 a 560 : dessin du jeu 

On commence par afficher le nom des cases (lignes 420 a 
450), puis on trace le tapis (lignes 460 a 500). 

Lignes 700 a 910 : le jeu 

C'est la boucle des lignes 700 a 760 qui saisit le choix des 

joueurs. 

Les des sont affiches par la boucle des lignes 770 a 820 en 

fonction des nombres aleatoires contenus dans le tableau 

D. 

On calcule en fonction de la somme des trois des (variable 

D) le numero de la case gagnante (variable J). 

II ne reste plus qu'a comparer la variable J avec le choix de 

chaque joueur (tableau J). On increments le nombre de 

points des joueurs gagnants (tableau P) et Ton decremente 

celui des perdants. 



D 


somme des trois des 


DO 


valeur des trois des 


I 


indice de boucle FOR/NEXT 


J 


numero de la case gagnante 


JO 


choix des joueurs 


K 


indice de boucle FOR/NEXT 


N 


nombre de joueurs 


P() 


nombre de jetons restant a chaque joueur 


X()etY() 


coordonnees des cases sur I'ecran 



228 



Super ieux Amstrad 




BATAILLE 
NAVALE 



Serez-vous assez rapide pour detruire la flotte de votre 
ennemi avant qu'il ne decouvre les emplacements de vos 
sous-marins ? 

Au lancement du programme, vous devez situer la position 
de vos cinq submersibles sur une grille de neuf colonnes 
(de A a I) sur neuf lignes (de 1 a 9) sous la forme A1 ou 
C3. Cette grille s'affiche alors a gauche de I'ecran. 

La bataille commence. Vous reflechissez et donnez les 
coordonnees supposees d'un sous-marin ennemi. Si vous 
avez touche la cible, I'ordinateur signale COULE, sinon 
DANS L'EAU. Dans les deux cas il coche la case 
correspondante sur la grille qui apparait a droite de I'ecran. 
L'ordinateur propose a son tour une position. S'il saborde 
un de vos batiments, Amstrad I'annonce et I'efface de la 
grille de gauche. 

ADres votre coup et celui de l'ordinateur, le score des deux 
adversaires apparait. Amstrad vous demandera un autre 
coup lorsque vous aurez appuye sur ENTER et ceci jusqu'a 
ce que I'une des flottes soit totalement aneantie. 



1 

2 
3 
4 


ABCDEFGHI 


-- 1 




1 ! ! 


i 






^j 


r r n 














! ! 














i i 








b 








1 1 








b 








i i 








/ 








1 ! 








M 








t J 








y 








\-' 






1 



ABCDEFGHI 






UOTRF CHOTX ? T8 

OANS L'EAU 

HON CHOIX : 17 

COULE 



JOUEUR : 1 



ORDINATEUR: 1 



Super jeux Amstrad 229 



10 REM BATAILLE NAVALE 

20 REM 

30 DIM J(9,9,4) 

40 MODE 1:INK 0,1:INK 1,24:INK 2,6:INK 3,15:PAPER 

0:PEN lrBORDER 1 

50 RANDOMIZE TIME 

60 PRINT-ENTREZ LES COORDONNEES DES 5 SOUS-MARINS" 

70 FOR 1=1 TO 5 

80 PRINT"SOUS-MARIN";I; 

90 INPUT A$:AS=A$+ M • 

100 X=ASC(A$)-64:Y=VAL(MID$(AS,2,1)) 

110 IF X<1 OR X>9 OR Y<1 OR Y>9 THEN 80 

120 IF O(X,Y,1)<>0 THEN 80 

130 J(X,Y, 1)=1 

140 NEXT 

150 FOR 1=1 TO 5 

160 X=INT(RND*9)+1:Y=INT(RND*9)+1 

170 IF J(X,Y,3)<>0 THEN 160 

180 J(X,Y,3)=1 

190 NEXT 

280 REM 

290 REM DESSIN DU JEU 

300 CLS 

310 X=5:T=1:G0SUB 800 

320 X=22:T=2:GOSUB 800 

330 LOCATE 1,15:PRINT CHR$ ( 18) : PRINT CHR$( 18 ) : PRIN 

T CHR$(18) 

380 REM 

390 REM TOUR DU JOUEUR 

400 LOCATE 1,14:PRINT CHR$ ( 18) ; "VOTRE CHOIX " ; 

410 INPUT A$:A$=A$+" ":X=ASC(AS)-64:Y=VAL(MID$(A$ 

420 IF X<1 OR X>9 OR Y<1 OR Y>9 THEN PRINT CHR$(7) 

; :GOTO 400 

430 IF 0(X,Y,3) = 1 THEN PR I NT " COUL E " : J( X, Y, 3 ) =0: Tl = 

Tl+1 ELSE PRINT"DANS L'FAU" 

440 J(X,Y,2)=1 

450 PLOT (22+X-l)*16,398-Y«16,3:DRAW ( 22+X )*16, 382 

-Y*16:PL0T (22+X)*16, 398-Y*16: DRAW ( 22+X-l )*1 6, 382 

-Y*16 

480 REM 

490 REM TOUR DE L'ORDINATEUR 

500 PRINT"MON CHOIX r " ; 

510 X=INT(RND*9)+1: Y=INT(RND*9)+1 

520 IF J(X,Y,4)=1 THEN 510 

530 PRINT CHR$(X+64) ; RIGHT$(STR$(Y), 1) 

540 IF J(X,Y,1)=1 THEN PRINT"CGULE " : J(X, Y, 1 )=0 : T2= 

T2+1 ELSE PRINT"DANS L'EAU" 

550 J(X,Y,4)=1 

560 PRINT:PRINT"JOUEUR: ":T1: " ORDINATEUR: " ; T2 



230 Super jeux Amstrad 



570 PLOT (5+X-l)*16,398-Y»16,0:DRAW (5+X)*16, 382-Y 

»16:PL0T (5+X)*16,398-Y*16:DRAW ( 5+X-l )*16, 382-Y*l 

6 

580 IF INKEY$="" THEN 570 

680 REM 

690 REM FIN DE PARTIE 

700 IF TK5 AND T2<5 THEN 338 

710 PRINT 

720 IF Tl=5 AND T2=5 THEN PRINT"EXAEQUO" : GOTO 740 

730 IF Tl=5 THEN PRINT"VOUS GAGNEZ" ELSE PRINT"JE 

GAGNE" 

740 IF INKEY$oCHR$(13) THEN 740 

750 RUN 

780 REM 

790 REM DESSIN D ' UN CADRE 

808 PEN 1 

810 FOR J=16 TO 148 STEP 16 

820 PLOT X*16,382,1:DRAW J+X*16, 382: DRAW J+X*16,38 

2-J:DRAW X*16, 382-3: DRAW X*16,382 

830 PLOT 144+X*16, 238: DRAW 144+X*16- J, 238: DRAW 144 

+X»16-J,238+J:DRAW 144+X*16, 238+J: DRAW 144+X*16,23 

8 

840 NEXT 

850 PEN 2 

860 FOR 1=1 TO 9 

870 LOCATE X+I,1:PRINT CHR$(I+64) 

880 LOCATE X,1+I:PRINT CHR$(I+48) 

890 NEXT I 

900 PEN 1 

910 FOR 1=1 TO 9 

920 FOR J=l TO 9 

930 IF J(I,J,T)=0 THEN 950 

940 PLOT (X+I-l)»16, 398-3*16, 3:DRAW ( X + I )*16, 382- J 

*16:PL0T (X+I)*16,398-3*16:DRAW ( X+I- 1 ) *16, 382- J*l 

6 

950 NEXT:NEXT 

960 RETURN 



Suoer jeux Amstrad I 231 



Programme 



Lignes 30 a 190 : initialisation 

Les lignes 60 a 140 saisissent les coordonnees des sous- 
marins du joueur. Ce sont les lignes 150 a 190 qui placent 
celles de I'ordinateur grace aux nombres aleatoires X et Y. 

Lignes 300 a 330 : dessin du jeu 

Pour le dessin du jeu, on fait appel au sous-programme en 
800 qui affiche une grille aux coordonnees X et Y. 

Lignes 400 a 450 : tour du joueur 

On saisit dans X et Y les coordonnees du tir. La ligne 430 
verifie si un sous-marin est coule. 

Lignes 500 a 580 : tour de I'ordinateur 

Identique au tour du joueur, mais les coordonnees sont 
determinees par deux nombres aleatoires (variables X et 
Y). 

Lignes 700 a 750 : fin de partie 

On affiche un des trois messages possibles en fonction des 
resultats de la partie. 



LlSTE 


AS 
I 


reponsedu joueur 

indice de boucle FOR/NEXT 


DES VARIABLES : 


J 


indice de boucle FOR/NEXT 




J(„) 


coordonnees des bateaux et des coups joues 




T 


numero de la grille a afficher 




T1 


points du joueur 




T2 


points de I'ordinateur 




XetY 


coordonnees du tir 



232 Super jeux Amstrad 



EN CAS 
DERREUR 



Tous les listings de cet ouvrage sont des originaux sortis 
directement de I'imprimante. Tous les programmes de jeu 
proposes ici ont ete testes attentivement sur Amstrad CPC 
464 et 664. Une erreur serait done exceptionnelle. 

Si, malgre tout, I'un des programmes ne fonctionnait pas, 
assurez-vous d'avoir correctement recopie le listing en 
Basic. 

Voici quelques conseils qui vous aideront a deceler 
I'erreur : 

- ne confondez pas (zero) et (lettre) ; 

- assurez-vous d'avoir place correctement les "." et ";" 
necessaires ; 

- comptez les lignes du programme a recopier et faites 
attention a ne pas en oublier ; 

- donnez toujours le meme nom a vos variables d'un bout 
a I'autre du programme. 

Et surtout... Armez-vous de courage ! 



Super jeux Amstrad 



233 



SUPER JCUX 

AMSTRAD 

50 programmes de jeux en Basic 



50 super programmes de jeux d'adresse, de reflexion et de hasard 
vous proposent de maftriser rapidement le BASIC de votre Amstrad 
CPC 464 ou 664. 

En plus du plaisir que vous aurez a dejouer les pieges tendus par les 
"Motos lumineuses", a trouver le meilleur chemin dans le "Laby- 
rinthe 3D", ou a gagner au "Tierce", vous apprendrez, en jouant, 
a construire des programmes de plus en plus complexes en vous 
aidant des commentaires pedagogiques de l'auteur, et de sa precieuse 
liste de variables. 

"Super Jeux Amstrad" contient des programmes faciles a rentrer 
et a modifier selon votre imagination, ainsi que de tres belles pages- 



Possesseurs d' Amstrad, a vos claviers! 





Editions du P.S.I. 

BP86 

FRANCE - 77402 LAGNY/MARNE CEDEX 

ISBN 2.86595.257.6