"Evadez-vous" avec un petit jeu textuel en BASIC

Si vous avez lu l'article sur le CPC 6128 Plus, vous savez déjà qu'enfant, je n'ai jamais réussi à copier correctement un programme en BASIC sur mon Amstrad.
Or, il y a quelques semaines, mon mari a retrouvé dans le grenier de sa grand-mère - oui, je vous raconte vraiment toute ma vie ! - deux petits livres à destination des plus jeunes pour créer des jeux vidéo en BASIC, "BattleGames" et "SpaceGames" édités par Hachette Jeunesse.

Battlegames
BattleGames - Hachette Jeunesse
Bien entendu, j'ai vu ça comme un signe, je me devais d'essayer à nouveau.
Et puis, franchement, la quatrième de couverture donne plutôt envie !

Dos des livres BattleGames et SpaceGames

Première contrainte : trouver un vieil ordinateur dans une brocante ou sur internet.
Je plaisante ! Trouver un émulateur simple et fonctionnel permettant de taper le code présent dans les livres. Ceux-ci proposent, au choix, du code pour le ZX Spectrum, le ZX81, le BBC, le TRS-80, l'APPLE, ou le VIC & PET. Il existe en effet différents langages BASIC, à utiliser en fonction du hardware possédé. Heureusement, les livres l'expliquent bien et adaptent le code pour chaque machine.
Mon choix s'est arrêté sur un émulateur pour le Commodore VIC 20, appelé "VICE VIC 20 Emulator". Contrairement à d'autres, cet émulateur est clair et facile d'emploi, parfait pour moi.

Deuxième contrainte : trouver la photo du clavier du VIC 20, afin de pouvoir comparer les touches d'un clavier de l'époque avec celles d'un clavier d'aujourd'hui.  
Sur la photo que j'ai utilisée, le clavier n'est pas AZERTY mais QWERTY, et franchement, ce n'est pas ce qui m'a le plus gêné...
Prenons le signe = : il est à côté de la touche Return, donc à côté de notre touche Entrée, c'est donc la touche * sur un clavier actuel. Mais, où est donc le * du coup ? Et bien sur la touche ^. Etc. etc.

clavier commodore vic 20

Troisième contrainte, qui n'en est pas une : choisir le jeu !
Je vais être honnête, j'ai commencé par sélectionner un jeu qui, soit-disant, utilisait un mode graphique et dont le but était de tirer des missiles sur des avions. Mais, après avoir fini de taper tout le code, cela ne m'a jamais donné le résultat attendu, et je n'ai pu tirer aucun projectile... 

J'ai très vite abandonné pour me rabattre sur un jeu textuel plus facile d'accès.
"Evadez-vous", ça sonne plutôt bien comme titre de jeu ! Le but est de trouver la fréquence qui permet de neutraliser les robots qui vous ont enfermé dans une prison, afin de s'échapper. En gros, il s'agit de trouver le bon chiffre entre 1 et 100.

code basic - jeu textuel
Le programme en BASIC du jeu "Evadez-vous"

Sois je ne suis vraiment pas douée, ce qui est très possible, soit ce n'est finalement pas si évident. En tout cas, j'ai eu plein d'erreurs de syntaxe, même avec la photo du clavier du VIC 20 juste en dessous de la fenêtre de l'émulateur.

syntax error

Pour se rendre compte que le code n'est pas bien saisi, il faut lancer le jeu. Il est donc possible de commencer le jeu en pensant que tout va bien car les premières lignes de code sont bonnes, puis d'avoir un gros message d'erreur pendant le jeu car les bugs sont détectés au fur et à mesure que le code est lu. 
C'est assez perturbant !

Le jeu commence et puis... Bug !

Chaque ligne de code doit être numérotée à la main. Ces numéros permettent de savoir d'où vient l'erreur. Par exemple, "ERROR IN 120" signifie que l'erreur est à la ligne 120.
Pour revoir la ligne 120, il faut taper LIST 120.

Il m'est arrivé de vouloir lire une ligne présentant une erreur et de réaliser que celle-ci n'existait pas. Heureusement, on peut ajouter une ligne supplémentaire, il suffit de la numéroter correctement pour qu'elle soit lue au bon moment. Voilà pourquoi on numérote tout d'abord de 10 en 10 : c'est pour pouvoir rajouter des lignes : 11, 12, 13 etc.
Sur la capture d'écran ci-dessous, on peut voir que j'ai rajouté la ligne 271, qui n'est pas dans le programme initial. Cette ligne sert tout simplement à connaître la valeur qu'il fallait trouver.



J'ai fini par réussir à ne plus avoir de bugs, mais je suis passée par quelques moments amusants où le jeu me disait que ma valeur était trop élevée alors qu'elle était bien trop basse ! Le jeu ne signalait aucune erreur de syntaxe, chaque ligne pouvait bien s'exécuter, mais les résultats étaient totalement incohérents.

La valeur 33 est trop élevée, alors qu'il faut trouver 81 !

Si vous voulez voir ces quelques lignes de code tourner, voici une vidéo bien rétro (le jaune sur fond bleu, ça vous rappelle quelque chose ?) :




Ce jeu est très connu et il est possible de le faire en utilisant d'autres langages, mais l'important, c'est de trouver l'histoire qui va avec.

L'idée de l'évasion est très sympa, mais rien ne vous empêche de créer une histoire sans intérêt, comme la marchande de pommes :

- Bonjour Madame Pilou, combien de pommes souhaitez-vous ?
- 5
- Dis donc, vous nous sous-estimez, on en a plus que ça à vous proposer !
- 10
- Plus !
- 58
- Vous exagérer Madame Pilou, je n'en ai pas autant !
- 32
- Ah désolé, j'avais oublié qu'elles étaient réservées pour Monsieur Ronchon...
ou au contraire, si vous gagnez :
- Parfait ! Je vous offre une poire en plus en cadeau !

Ou alors, pourquoi pas une histoire de racket ?

- T'as combien, mec, file ta thune !
- 0
- Tu me prends pour un crétin ? T'as plus !
- 7
- Tu veux que je m'énerve ?
- 90
- Là, avec ta dégaine, tu vas me faire croire que t'as autant ?
- 36
-Mouais, file, ça peut aller. Dépêche.
Ou si vous perdez :
- Je pète un câble mec !! (Vous prenez un coup de poing dans la figure).

Enfin, vous avez compris l'idée, ces deux scénarios sont hyper stéréotypés, tout reste à inventer !

Ecrit par Pilouette

Aucun commentaire:

Enregistrer un commentaire