Halma
=====
Pour Basic 1.1
Auteurs : Thierry & Laurent GAILLARD
Publie dans Amstrad Magazine numero 3 * Avril 1988
HALMA OU LES DAMES CHINOISES EN MIEUX
Savez-vous jouer au Go, jeu de gagne-terrain bien connu des intellectuels ?
Eh bien le jeu que nous vous proposons ce mois-ci se joue aussi avec des
pions mais n'a de repport avec le Go que par le fait qu'il vient du meme pays.
Les regles sont simples. Il faut jouer contre l'ordinateur et faire passer
ses pions dans le camp oppose, tout en empechant l'adversaire d'en faire
autant. Mais c'est qu'il est ruse le bougre, il ne se laisse pas faire.
Il existe seulement un bug dans ce programme. Le jeu ne fait pas attention
aux coup ou aux parties nuls, et il arrive parfois qu'il bloque la partie.
Cela n'est pas un inconvenient car, en fait, le casse-tete n'en devient que
plus excitant parce que plus complexe. Sur cinq parties, il en a gagne trois.
Suite des aventures le mois prochain.
Les touches utilisees sont les touches flechees ou le joystick pour les
deplacements, le bouton de feu ou la touche <Return> pour valider la piece
au depart et a l'arrivee, et la touche <Copy> pour les positions
intermediaires.
Toutes les regles sont incluses dans le programme. Nous vous souhaitons bonne
chance.
Notes de T&J/GPA le 10/07/2010 !
================================
Le maniement du jeu est plus complique qu'annonce dans la notice, un petit
rappel s'impose.
Si le pion fait un mouvement normal (sans sauter d'autre pion)
--------------------------------------------------------------
* La touche <Return> sert a selectionner le pion.
* La touche <Copy> sert a valider la case ou le pion doit aller.
Si vous appuyez une deuxieme fois sur <Return>, vous perder un tour,
petit veinard...
Si le pion fait un deplacement en sautant d'autres pions
--------------------------------------------------------
* La touche <Return> sert a selectionner le pion.
* La touche <Copy> sert a definir les positions intermediaires et la
position finale.
* La touche <Return> sert a valider la position finale.
A noter qu'il n'y a pas de moyen d'annuler le deplacement d'un coup
en cours, dommage...
Correction de deux bugs syntaxiques en ligne 1590. Le bug est d'origine
et ne provient pas d'une coquille a l'impression.
ancien : IF mtp=-5:FOR i=1 TO 13...
nouveau : IF mtp=-5 THEN FOR i=1 TO 13
ancien : IF x=xp(i):y=yp(i)
Nouveau : IF x=xp(i) THEN y=yp(i)
rajout d'une ligne 1581 pour eviter une erreur Unexpected NEXT si le
programme ne rentre pas dans la boucle en 1590.
Note pour les fans d'emulateur. Evitez le mode TURBO pendant l'intro,
cela plante la musique et le programme. Pendant le jeu par contre, ce
mode permet de reduire les temps d'attente du programme.
Il reste au moins un bug dans le jeu. De temps en temps, une case du
tableau c(x,y) (qui permet de savoir s'il y a un pion dans une case
du damier) est consideree comme non vide alors que sur le damier, elle
l'est ! Cela se traduit soit par un mouvement de l'ordinateur impossible
normalement ou un blocage de votre propre mouvement.
Ce bug n'est pas systematique, d'ou la difficulte a le demasquer. Il semble
etre d'origine car le listing est a priori identique a celui publie dans
Amstrad 100%.
Solution temporaire, arreter le jeu, et remettre a la main a zero la valeur
de la case (en faisant c(x,y)=0 ).
Pour faire plaisir a Kukulcan, l'archive contient une version compatible
Basic 1.0. En fait, il suffisait juste de modifier les lignes 2440 et
2460, rien de bien mechant. La commande DEC$ etait utilisee pour reduire
la longueur de la variable sd a deux chiffres apres la virgule.