J'ai toujours cet engin, avec toute une panoplie d'extensions allant du microdrive au lecteur de disquettes 5 pouces 1/4, et même du matériel de rechange. Mais ce qui m'a poussé à replonger dans le monde du Spectrum est l'existence d'émulateurs de qualité... Et dans ce monde où la mémoire ne coûte rien ou presque, où les programmes ne sont plus optimisés mais finissent par fonctionner rapidement à coup d'améliorations successives des performances matérielles, rien ne remplace le plaisir que j'ai eu à gratter jusqu'au moindre octet, à traquer les astuces afin de surmonter les difficultés liées à un matériel de puissance très réduite.
C'est ainsi que, poussé par cette idée de défi, j'ai mis au point un programme des Chiffres et des Lettres où mon vieil ami le Spectrum devient un adversaire avec qui compter !
Mais que de problèmes à traiter, au début je ne savais pas par où commencer. Comment créer un dictionnaire de près de 20000 combinaisons de mots, comment réduire le temps de calcul du "compte est bon" tout en employant une méthode récursive gérant toutes les combinaisons, etc.. La simple programmation en assembleur ne suffisait pas, il m'a fallu plonger dans la recherche d'algorithmes de calcul (division et produit) particulièrement performants, trouver des moyens de limiter le nombre de combinaisons utiles. Et pour les Lettres, trouver une méthode pour générer un nombre de mots assez important alors que la mémoire restante en complément du programme ne permettait a priori qu'un dictionnaire bien pauvre de l'ordre de 4500 mots de 6 lettres de longueur en moyenne.
Je me propose, si ce sujet intéresse, de décortiquer avec vous le détail des astuces et algorithmes utilisés.
Et si certains le souhaitent, je puis aussi vous transmettre le programme résultant en fichier .snap, cela vous permettra de tester si vous êtes meilleurs qu'un petit Spectrum..
Et puis, je ne suis probablement pas le seul à s'être intéressé à ce casse-tête, non ?



