You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Deux méthodes sont a priori envisageables<br />
pour réaliser un programme<br />
de puzzle sur micro-ordinateur. La<br />
première serait une présentation des<br />
pièces morceau par morceau; en<br />
d'autres tennes, J'Apple afficherait<br />
successivement de façon aléatoire<br />
chaque case du dessin et attendrait<br />
que le joueur <strong>la</strong> situe correctement<br />
sur l'original.<br />
La seconde, qui vous est ici proposée,<br />
affiche J'ensemble des pièces<br />
mé<strong>la</strong>ngées et vous <strong>la</strong>isse le soin de<br />
remettre les choses en ordre.<br />
Un premier conseil : ne vous <strong>la</strong>issez<br />
pas effrayer par <strong>la</strong> difficulté apparente<br />
du problème. Le monde peut<br />
se reconstituer en moins de deux<br />
heures, je l'ai fait !<br />
120 morceaux sont à remettre en<br />
p<strong>la</strong>ce ; ce n'est pas <strong>la</strong> mer à boire.<br />
Aussi, pour corser <strong>la</strong> difficulté, l'Apple<br />
va tester votre mémoire visuelle<br />
et votre sens de l'analyse en comptant<br />
soigneusement le nombre de vos<br />
recours au dessin original. Il ne vous<br />
<strong>la</strong>issera d'ailleurs que quelques secondes<br />
pour 1'0bseIVer et, lorsque le<br />
puzzle sera intégralement reconstitué,<br />
il vous gratifiera de quelques qualificatifs<br />
que vous aurez sans doute mérités<br />
et qu'il vous appartiendra d'interpréter.<br />
En ce qui concerne le programme<br />
lui-même, il n'y a que deux parties<br />
importantes : mé<strong>la</strong>nge des morceaux<br />
et affichage, puis attente des directives<br />
du joueur.<br />
Mé<strong>la</strong>nge et affichage<br />
Le mé<strong>la</strong>nge et l'affichage se trouvent<br />
aux lignes 800 à 930 (ou 935 pour<br />
<strong>la</strong> couleur) du programme BASIC,<br />
qui renvoient aux lignes 100 à 140<br />
dans lesquelles est exécuté l'appel au<br />
sous-programme en <strong>la</strong>ngage-machine<br />
imp<strong>la</strong>nté de 8460 â 84C3. Ils utilisent<br />
une zone de mémoire tampon<br />
située â l'adresse 17232 correspondant<br />
â J'adresse initiale d'un morceau<br />
d'écran p<strong>la</strong>cé en bas et à gauche sur<br />
<strong>la</strong> page HGRZ. Une fois le mé<strong>la</strong>nge<br />
effectué, le traitement d'affichage<br />
prend le premier morceau d'écran<br />
qu'il met en mémoire tampon<br />
(17232), puis le second qu'il met à<br />
l'adresse du premier, puis le troisième<br />
qu'il met à <strong>la</strong> p<strong>la</strong>ce du second,<br />
et ainsi de suite jusqu'au 120ème,<br />
après lequel il reprend le premier<br />
<strong>Pom's</strong> n° 9<br />
Reconstituez le puzzle<br />
pour le mettre à l'adresse du<br />
120ème. La boucle étant ainsi bouclée,<br />
c'est alors â vous de jouer.<br />
Attente des directives<br />
Les lignes 1000 à 1030 du programmme<br />
correspondent à l'attente<br />
de vos directives. Les deux morceaux<br />
qui se trouvent échangéS par<br />
ces dernières transitent toujours par<br />
<strong>la</strong> zone tampon et <strong>la</strong> routine en <strong>la</strong>ngage-machine.<br />
Conception du<br />
programme<br />
Le programme peut traiter n'importe<br />
quel dessin enregistré sur disquette.<br />
Il uti lise des modules en <strong>la</strong>ngage machine<br />
dont vous trouverez plus loin <strong>la</strong><br />
récapitu<strong>la</strong>tion et qui assurent les<br />
fonctions suivantes :<br />
1) Module ONNER-128<br />
- 300 à 309 : routine de ONNER<br />
GOTO (cf page 124 du manuel de<br />
l'Applesoft).<br />
- 30A à 32B : mise à zéro des octets<br />
qui sont à 128. Sans cette routine, le<br />
programme, qui fait pour sa part <strong>la</strong><br />
différence entre les 0 et les 128,<br />
n'annoncerait jamais que le puzzle<br />
est entièrement reconstitué.<br />
2) Module TRANS<br />
- 8000 â 802B : transfert de <strong>la</strong> page<br />
HGR à <strong>la</strong> page HGRZ.<br />
- 8030 à 8417 : shapes HGR contenant<br />
\' alphabet, les chiffres, le point,<br />
le point d'exc<strong>la</strong>mation et l'étoile.<br />
- 8418 à 8443 : comparaison des<br />
deux pages HGR, octet par octet,<br />
pour savoir si le puzzle est reconstitué.<br />
- 844D à 845F : musique.<br />
- 8460 à 84C3 : échange des morceaux<br />
du puzzle.<br />
- 8500 à 872A : routine de chargement<br />
rapide de fichiers binaires de<br />
Jacques Tran-Van (cf <strong>Pom's</strong> 4).<br />
Remarques sur le programme en Applesoft<br />
:<br />
- Ligne 100 : BI, 82, Cl et C2 sont<br />
les parties hautes et basses des<br />
adresses de début de chaque mor-<br />
Joël Lecoeur<br />
ceau du puzzle. Elles sont p<strong>la</strong>cées<br />
aux adresses 250, 251, 252 et 253<br />
pour <strong>la</strong> sous-routine d'échange des<br />
morceaux.<br />
- Ligne 300 : cet échange nécessite<br />
une zone tampon, d'où les 3 appels<br />
â <strong>la</strong> sous-routine.<br />
- Ligne 400 : début du programme.<br />
- Ligne 498 : CALL -31488 <strong>la</strong>nce le<br />
programme de chargement rapide.<br />
- Ligne 500 : c'est ici que commence<br />
le programme pour un nouveau dessin.<br />
- Ligne 560 : appel du module de<br />
transfert d'image.<br />
- Ligne 600 : effacement des zones<br />
d'écran nécessaires et mise en p<strong>la</strong>ce<br />
des coordonnées. Puis mise en p<strong>la</strong>ce<br />
de l'Image finie sur <strong>la</strong> page 1.<br />
- Lignes 800 à 930 : mé<strong>la</strong>nge des<br />
morceaux et affichage.<br />
- Ligne 890 : adresse de début de <strong>la</strong><br />
zone tampon.<br />
- Ligne 915 : possibilité d'interrompre<br />
le programme pendant l'affichage<br />
par CTRL-Z.<br />
- ligne 940 : effacement de <strong>la</strong> zone<br />
tampon sur HGRZ.<br />
- ligne 980 : affichage de l'étoile sur<br />
HGR.<br />
- lignes 1000 à 1030 : le programme<br />
attend 4 données représentant<br />
les coordonnées des pièces à<br />
échanger. Accessoirement, il traite les<br />
erreurs d'entrée, émet sons et cloches,<br />
et autorise le passage au dessin<br />
original ou aux règles du jeu.<br />
- ligne 1040 : transfonnation des<br />
'coordonnées en numéros pennettant<br />
<strong>la</strong> recherche des DATA correspondants.<br />
- ligne 1100 : B(El) et B(Cl) sont<br />
les adresses des deux morceaux qui<br />
vont être échangés.<br />
- ligne 1120 : effacement de l'étoile<br />
sur <strong>la</strong> page puzzle et effacement de<br />
<strong>la</strong> zone tampon sur <strong>la</strong> page de l'original<br />
afin de voir si <strong>la</strong> reconstitution est<br />
terminée (CAU. -31720).<br />
- ligne 1150 : remise en p<strong>la</strong>ce de<br />
J'étoile.<br />
- ligne 1160 : si ]' adresse 254 est à<br />
zéro, c'est gagné 1<br />
- ligne 1200 : flip-flop entre les deux<br />
pages.