LODE RUNNER pour VG5000

Le jeux Lode Runner a été écrit en 1983 par Douglas Smith et avait eu, en son époque, un certain succès.
Frustré de ne pas avoir accès à ce jeu sur mon VG5000, j'entreprends alors de l'écrire. 
C'était en Corse pendant les grandes vacances de 1986, j'avais alors 13 ans.
Mes connaissances en algorithmique étant alors limitées, et étant seul à faire un peu de programmation avec un micro dans mon entourage, aucune possibilité de me faire aider. 
A l'époque, pas d'Internet pour accéder à des connaissances facilement.
Après pas mal de longues journées et quelques nuits d'effort, je suis arrivé à un résultat qui m'avait procuré une grande satisfaction d'avoir accompli mon projet.
Cependant, nous étions loin de la qualité requise.
Les principaux problèmes furent:
1. La faible quantité de tableaux stockés. 3 ou 4 maximum car la limite mémoire fut atteinte. 
   Les tableaux étaient stockés de manière trop gourmande. J'avais quand même trouvé le moyen de compresser les vides, mais guère plus.
2. Le vitesse d'exécution était trop lente.
3. L'algorithme de poursuite des méchants ne semblait pas aussi avancé que sur le jeu publié.
   Le problème étant que j'avais vu le jeu une fois sur une autre machine à l'extérieur de chez moi, mais que je ne pouvais plus observer cela pour comprendre.
Satisfaction d'être arrivé là, mais sentiment d'inachevé.

En 2018, grâce à l'émulateur de Daniel Coulom (merci Daniel!!), je me lance dans la nouvelle version de ce jeu. J'aimerai bien boucler la boucle.
Le problème de stockage de tableaux est réglé. J'ai écrit un algorithme de représentation compressée des tableaux sous forme de chaine de caractères.
J'ai mis les dix premiers tableaux, mais on peut en rajouter. Il faut respecter la longueur des ligne REM ou sont stockées les tableaux. 
Les chaines sont ajoutées les unes derrière les autres et le tout se termine par un point d'exclamation.
Je génère les chaines correspondant aux tableaux grâce à une feuille Excel. Les tableaux du jeu originel peuvent se trouver sur Internet.
Le problème de rapidité n'est pas vraiment encore réglé. Il faut travailler sur le code principal du jeu pour booster cela à un niveau satisfaisant. Ou alors un bout d'assembleur? 
Je triche donc en montant la vitesse du processeur à 16000 (16Mhz) ce que permet l'émulateur. J'ai aussi limité le nombre de méchants à 2, mais c'est paramétrable.
Les tableaux contiennent parfois plus de méchants, il suffit de changer le paramètre dans le programme. Mais une fois les problèmes de lenteur réglés!
L'algorithme de poursuite est une simple idée de succession de phases. Au hasard, les phases d'attente se succèdent aux phases d'exploration.
J'ai prévu d'y ajouté une prochaine fois une phase de poursuite ou les méchants se précipiterons vers le héros!

Pour jouer: 
- Les flèches de déplacements
- La touche espace pour creuser des trous (dessous, ou sur les côtés en fonction du précédant mouvement du joueur).
- La touche S pour se suicider quand on est bloqué dans un trou ou lorsque l'échelle de sortie ou un trésor n'est plus accessible à cause des trous précédemment creusés.
- ESC pour sortir du jeu.

Donc les améliorations envisagées:
- Une revue du code, un peu de factorisation possible par endroit. Si besoin pour la mémoire, de virer les commentaires et de numéroter les lignes séquentiellement.
- Rapidité de la boucle principale pour pouvoir jouer à bonne vitesse et avec plus d'ennemis. Soit en améliorant le code, soit un peu d'assembleur.
- Plus de tableaux (je pense pouvoir faire cela prochainement).
- Un mode de poursuite active pour les ennemis (en plus du mode attente et du mode exploration en place).
- Les vies en attentes sont décalées (il faudrait qu'à la dernière vie en cours se soit vide).
Avis aux amateurs s’il y en a un que cela tente.







  
