Programming your own adventure game in Pascal – part II

Voici la suite de l’article consacré à la programmation d’aventure en langage Pascal. Vous trouverez le premier article datant de mai 2026 ici. Les programmes sont issus d’un livre Programming your own adventure game in Pascal de Richard C. Vile publié en 1984.

Dans cet article, nous allons essayer le deuxième programme du livre, qui est plus abouti. En effet, le deuxième listing adventure 2 ressemble au premier, le but de récupérer le trésor étant le même. Les fonctionnalités sont en revanche bien plus avancées :

  • Le joueur saisit des commande sous la forme VERBE + NOM, comme cela était le cas pour de nombreux jeux d’aventure de l’époque (two-word parser adventure games);
  • La description des lieux explorés est beaucoup plus détaillée, et nous verrons les conséquences importantes que cela a sur le programme ;
  • Le nombre de pièces est plus important, ce qui complexifie la résolution de l’aventure.

Voici le code source en langage Pascal moderne, compilable avec Free Pascal. Ce compilateur est disponible sur de nombreuses plates-formes mais je ne l’ai utilisé que sous Linux. Pour jouer, vous devez télécharger l’archive complète ici, au format tar :

Le contenu de l’archive est le suivant :

a2db.txt                   # fichier texte décrivant les lieux pour le programme n°2
a2.db80                    # fichier de description des lieux au format utilisé par
                           # le programme n°2
a2.db80.x                  # fichier d'index associé au fichier précédent
pascal-adv-game1.pas       # jeu d'aventure n°1 (déjà publié dans l'article
                           # précédent).
pascal-adv-game2.pas       # jeu d'aventure n°2 (objet de cet article).
makedesc.pas               # permet de convertir un fichier ou base
                           # de données des lieux en fichiers utilisables
                           # par le programme d'aventure
browse.pas                 # explorateur de fichiers de base de données de lieux              
makefile                   # permet de lancer la compilation des 4
                           # programmes Pascal précédents.

J’ai prévu un fichier makefile pour faciliter la compilation du code source en Pascal avec fpc. Voici les commandes à saisir depuis le shell :

make adv1          # compile pascal-adv-game1.pas et produit l'exécutable 
                   # pascal-adv-game1
make adv2          # compile pascal-adv-game2.pas et produit l'exécutable  
                   # pascal-adv-game2
make md            # compile makedesc.pas et produit l'exe makedesc
make br            # compile browse.pas et produit l'exe browse
make clean         # fait le ménage...
make backup        # sauvegarde le répertoire sous la forme d'une archive tar

La compilation se fait par la commande make adv2. Pour lancer l’exécutable, saisir depuis le shell la commande :

Pour la description des lieux, le programme utilise une « base de données » externe qui se présente sous la forme de deux fichiers : a2.db80 et a2.db80.x. La présence de ces fichiers est donc indispensable. Ces fichiers sont produits grâce à l’utilitaire makedesc qui est inclus dans l’archive téléchargeable ci-dessus (commande make md pour produire l’exécutable), à partir d’un fichier texte de description des lieux a2db.txt, qui figure en annexe B du livre Programming your own adventure game in Pascal. Il est également présent dans l’archive pour vous éviter une saisie fastidieuse. Voici comment utiliser makedesc :

J’ai effectué quelques modifications du programme source, concernant les instructions de manipulation de fichiers. Celles présentes dans le livre sont obsolètes et ne correspondent pas au Pascal actuel.

Voici un exemple de programme écrivant dans un fichier en Pascal moderne (fpc ou Turbo Pascal)

PROGRAM wrtxt;
VAR

rec : STRING[80];
f   : file of STRING[80];
i   : INTEGER;

BEGIN
  rec := 'You are in the mountains. There are ugly monsters all around...';
  assign (f, 'junk.text');
  rewrite (f);

  FOR i := 1 TO 100 DO
  BEGIN
    write(f,rec);
  END;

  close(f);

END.

Voici comment cela fonctionne ;

  • Le pointeur de fichier f est déclaré dans la section VAR et est de type file of STRING[80]. Il est possible en Pascal de choisir son type de fichier, ici le fichier contient des chaînes de 80 caractères, mais il est possible de manipuler des fichiers de type Integer, Float, etc.
  • La commande assign permet d’associer f au nom du fichier présent sur le disque.
  • rewrite permet d’ouvrir le fichier f en écriture, en effaçant son contenu.
  • L’écriture se fait grâce à la commande write(f,rec);
  • La commande close ferme le fichier.

Et voici un programme effectuant la lecture du fichier précédemment créé et l’affichant à l’écran.

PROGRAM rdtxt;
VAR

rec : STRING[80];
f   : file of STRING[80];
i   : INTEGER;

BEGIN
  assign (f, 'junk.text');
  reset (f);

  FOR i := 1 TO 100 DO
  BEGIN
    read(f,rec);
    writeln(i, ':' , rec);
  END;

  writeln('Got it');
  close(f);

END.  

Quelques explications :

  • La fonction reset permet l’ouverture du fichier en lecture.
  • read(f,rec); permet de lire un enregistrement du fichier.

Tout est prêt pour l’aventure. Voici un extrait du début du jeu.

Il ne vous reste plus qu’à résoudre cette aventure… Pour commencer, allumez la lampe pour voir quelque-chose… La commande help peut vous donner quelques clés. Voici la liste des verbes connus :

carry, drop, help, light, inventory, take, score, push, dig, look, open, unlock, eat.

Haunted house in C available for vintage 6502 computers

J’avais publié il y a quelques temps deux articles concernant le jeu d’aventure Haunted House. Celui-ci avait été publié en 1983 sous la forme d’un livre « Write your own adventure programs for your microcomputer« . Le jeu d’origine était codé en BASIC pour les principaux micro-ordinateurs de l’époque.

Le premier article, Write your own adventure programs for your microcomputer, concerne le jeu original en anglais. Le deuxième, Aventure dans le château hanté, traite de la version française, le livre ayant été traduit et édité à l’époque par Hachette.

J’avais également mentionné l’existence d’un port en langage C du jeu d’origine. Ce port a été effectué par John Elliot en ANSI C89 ; vous pouvez télécharger le code source directement sur son site, depuis cette page.

Dans ce nouvel article, nous allons voir comment compiler ce code C sur de vieux ordinateurs disposant d’un processeur 6502 ou apparentés. Nous allons bien sûr utiliser le cross-compilateur cc65, pour que vous puissiez jouer sur un des ordinateurs suivants : Ordinateur actuel (Linux ou Windows), Commodore 64, Atari 800 XL, Apple II et Apple //e Enhanced.

La page d’intro pour Apple II en 40 colonnes
Continuer la lecture de « Haunted house in C available for vintage 6502 computers »

Programming your own adventure game in Pascal

J’ai trouvé sur internet une version numérisée d’un vieux livre intitulé Programming your own adventure game in Pascal, dont l’auteur est Richard C. Vile, Jr.

Ce livre date de 1984 et se propose de vous apprendre à programmer un jeu d’aventure en langage Pascal, plus exactement en UCSD Pascal disponible sur Apple II.

Dans ce article, nous allons essayer un programme de jeu en langage Pascal de l’époque, issu de ce livre, en le compilant avec Free Pascal et en l’exécutant sur un PC moderne sous Linux…

Continuer la lecture de « Programming your own adventure game in Pascal »

Jeux de labyrinthes graphiques en hommage à J&S – 3ème article

Et voici le dernier article consacré à la série sur les jeux de labyrinthes graphiques de Jeux & Stratégie. Il s’agit du programme BASE ALPHA publié dans le numéro 28 en page 54, dans la rubrique Logiciel. A l’instar des programmes précédents, il a été développé par Michel Brassine.

L’originalité de BASE ALPHA est qu’il est jouable avec les calculatrices programmables de l’époque. Mais nous allons présenter ici la version en BASIC Applesoft, qui utilise les possibilité graphiques « haute résolution » de ce micro-ordinateur.

Voici le scénario issu de l’article :

Vous êtes parvenu sans difficulté à pénétrer au cœur d’une ville souterraine nommée « base Alpha ». Sans davantage de risque vous avez trouvé les documents ultra-secrets que vous étiez venu prendre. Vous découvrez, au moment où commence le jeu, que la sécurité sur la base Alpha n’est pas fondée sur la difficulté d’entrer, mais bel et bien de sortir…

Le but du jeu est de parvenir à accumuler suffisamment de points d’expérience pour s’échapper d’un dangereux dédale. Au cours de vos pérégrinations, vous risquez de rencontrer des monstres peu sympathiques…

Continuer la lecture de « Jeux de labyrinthes graphiques en hommage à J&S – 3ème article »

Jeux de labyrinthes graphiques en hommage à J&S – 2ème article

Dans ce 2ème article consacré aux jeux de labyrinthes graphiques de Jeux & Stratégie, nous allons tester La cité des robots publié dans J&S N°21. Vous y trouverez la description détaillée du jeu et le listing en BASIC Applesoft en page 46, dans la rubrique Logiciel.

Hélas, vous ne verrez pas ces robots en exécutant le programme proposé ; cela nécessiterait un développement supplémentaire.

Vous vous déplacez avec un véhicule dans une ville labyrinthique tout en étant poursuivi par des robots tueurs. Votre mission est de leur échapper tout en tentant de rejoindre un correspondant que vous devez rencontrer. Voici la présentation du jeu extraite de l’article :

Continuer la lecture de « Jeux de labyrinthes graphiques en hommage à J&S – 2ème article »

Jeux de labyrinthes graphiques en hommage à J&S – 1er article

Le magazine Jeux & Stratégie publiait régulièrement des listings de jeux en BASIC pour les micro-ordinateurs de l’époque. Pour rendre hommage à cette merveilleuse revue, je vous propose une série de trois articles consacrés à trois jeux de labyrinthes pour Apple II :

Ces programmes utilisent les capacités graphiques de cet ordinateur, en basse et haute résolution.

Ce premier article est consacré au jeu LABYCODE.

Continuer la lecture de « Jeux de labyrinthes graphiques en hommage à J&S – 1er article »

The Potion, a mini game for your 6502 computers

The Potion est un jeu d’aventure textuel de type 2 word parser similaire à de nombreux jeux publiés dans les années 80s, les capacités des ordinateurs domestiques étant très limités à l’époque. Cela étant, The Potion présente les caractéristiques intéressantes suivantes :

  • Il a été développé en langage C ;
  • Il ne date pas des années 80s mais de 2003, et a été développé par Peter Karlsson dans le cadre d’un concours (The 4k minigame 2003 competition) ;
  • Il est déjà multi-plateforme, pouvant fonctionner sous Linux ou Commodore 64 (grâce au cross-compilateur cc65), et l’effort pour le rendre disponible sur d’autres ordinateurs est donc limité.

Cet article propose une adaptation permettant de jouer à The Potion sur Apple II et Atari 800XL, le programme fonctionnant toujours sous Commodore 64 et avec un PC moderne, sous Windows ou Linux.

L’intro de « The Potion » pour Atari 800XL
Continuer la lecture de « The Potion, a mini game for your 6502 computers »

Aventure dans le château hanté

Il y a quelques années j’avais publié un article à propos d’un livre intitulé Write your own adventure programs for your microcomputer. Ce livre, écrit en anglais, avait pour objectif d’enseigner aux jeunes de l’époque (1983) à programmer un jeu d’aventure en BASIC. Le jeu qui servait d’exemple didactique était Haunted House. Il s’agit d’une aventure très simple où les commandes saisies par le joueur sont composées d’un verbe et d’un complément.

Je viens de découvrir que ce livre avait été traduit en français, le titre étant Écrivez vos jeux d’aventures pour votre micro-ordinateur. Vous pouvez télécharger une version électronique sur le site abandonware magazines. Le jeu en français est intitulé Le château hanté (remarquez qu’en passant de l’anglais au français la maison se transforme en château !).

Version française par HachetteVersion anglaise par Usborne
Continuer la lecture de « Aventure dans le château hanté »

Un jeu d’aventure en C multiplateforme

Le langage C a été conçu pour rendre les programmes portables. Grâce aux compilateurs, le même code source peut fonctionner aussi bien sur un PC moderne que sur un vieil ordinateur des années 80s.

Dans cet article, j’ai adapté le jeu d’aventure Sorcellerie (voir l’article dédié sur le portage de Sorcellerie en langage C) afin qu’il fonctionne non seulement sur un PC moderne sous Linux (grâce au compilateur gcc), mais également sur les Apple II, Atari 8bits et Commodore 64 (grâce au compilateur cc65).

L’adaptation a été très légère, le plus gros du travail étant la reprise du makefile.

Continuer la lecture de « Un jeu d’aventure en C multiplateforme »

Hobbit, the true story in python

/* Updated on 26/01/2026 : programme runs on Linux directly from the shell */

I’ve recently come accross an original game named Hobbit, the true story. This game was released in 1993 and updated in 2001. The original aspect of the game is that it was written in MS-DOS batch, which is a rather unpleasant script-shell langage.

You can find information about Hobbit, the true story on IFDB and also on Tolkien Gateway.

The game is fun as it is a parody of « The Hobbit« , the book byTolkien. I have made a port of the game in Python, so it can be easily played on any modern computer, regardless of the operating system.

The original MS-DOS version was created by Fredrik Ramsberg and Johan Berntsson and this programme is an unofficial port. I release it as a free software under the GNU General Public Lincense, as published by the Free Software Fondation. I hope the creators of the original game will agree with this, since my port is intended as tribute to their work.

First, you need to download the programme, which consists of a single python file available below:

Once downloaded, extract the python file :

If you are using Linux, make sure the file has execution rights:

Then launch the game:

Execution of the programme requires Python 3.

On Windows, start the game as follows:

Now you can play!

Hobbit the true story is a very small adventure and is quite easy to solve. However, if you get stuck, here are some general hints :

  • You need the torch and the map.
  • You can find both at home, and Gandalf will hand over the map to you if you ask him.
  • You also need the sword to cut Smaug’s cigar. You can find it in the cave north of the Troll’s clearing. They won’t let you pass unless you wait until sunset (they don’t like sunshine).
  • From there, go to the forest north of Rivendell, and use the raft to reeach Smaug’s den. Smaug will happily give you his treasure if you help him with his cigar.
  • Then go back home, and the adventure is complete.

Have fun!