J’avais publié un article il y a quelques années déjà sur un jeu d’aventure en BASIC intitulé SORCELLERIE. Il s’agit d’un jeux d’aventure textuel créé par Rafi Deryeghiyan et publié dans le magazine « L’ordinateur Individuel » (hors série n°77). Le jeu est plutôt sympa, et après l’avoir porté sur Apple II, je me souviens avoir passé une bonne paire d’heures avec mon fils pour trouver la solution.
J’ai récemment repris ce programme pour le convertir en langage C, afin d’avoir un programme multi-environnements ; Linux, Windows, Mac et ordinateurs vintages.
Le code source peut être compilé pour une plateforme Linux (avec gcc) ou pour des ordinateurs anciens comme l’Apple II (avec cc65). Le code C étant des plus standard, il peut être compilé pour d’autres plates-formes, mais ceci reste à tester.

Les modules
« Sorcellerie en C » est constitué des modules suivants :
princ.c Module principal, contient la fonction main()
intro.c Affiche les pages d'intro du jeu
parser.c Analyse la commande saisie par le joueur
action.c Exécute l'action analysée par le parser
util.c Bibliothèque de fonctions générales et utilitaires
util.h Header pour util.c
global.h Déclaration des variables globales
init.h Initialise les variables globales
sorcellerie.h Définition des types et constantes du projet.
installation et COMPILATION
La première étape consiste à télécharger le code source disponible ci-dessous au format tar :
Après avoir désarchivé le fichier tar (tar xvf sorcellerie_250127.tar
), se placer dans le répertoire sorcellerie
pour pouvoir lancer la compilation. Celle-ci est très simple à mettre en œuvre, le programme étant livré avec un fichier Makefile
permettant de produire un exécutable pour les environnements Linux et Apple II.
Pour Linux | Saisir la commande make L’exécutable produit est le fichier sorcellerie . |
Pour Apple II | Saisir la commande make a2 L’exécutable produit est le fichier SORCELLERIE Il est nécessite d’avoir installé le compilateur cc65 (voir le tutoriel ici) |
Le Makefile
supporte également les fonctions décrites ci-après.
- Pour supprimer les fichiers objets et les exécutables :
make clear
make clean
- Pour sauvegarder le répertoire :
make backup
Cela crée un fichier d’archive au format tar dans le répertoire $(HOME)/backup
. Ce dernier doit avoir été créé au préalable.
EXÉCUTION SOUS LINUX
Après avoir compilé le code source, saisir la commande suivante depuis le terminal :
./sorcellerie
***************
* *
* SORCELLERIE *
* *
***************
---------------------------------------
AUTEUR: RAFI DERYEGHIYAN, decembre 1985
PORT C: DOMINIQUE RIOUAL, janvier 2025
---------------------------------------
Jusqu'en 2036, le monde vivait en paix, puis des troubles commencerent a remuer la societe.
22 juillet 2037 : reapparition de sorciers aux pouvoirs terrifiants. Encore peu nombreux, ils etaient maitrises facilement.
**** Appuyez sur une touche ****
EXÉCUTION SOUS APPLE II
Le Makefile
prévoit une commande d’installation sur une image de disquette dénommée SORCELLERIE.DSK (au format DOS 3.3). Après avoir compilé pour Apple II, saisir la commande :
make install_a2
L’exécutable SORCELLERIE
sera copié sur l’image de disquette. Attention, pour que cela fonctionne, il est nécessaire d’installer au préalable le programme AppleCommander.
L’image de disquette peut alors être utilisée avec un émulateur ou un véritable Apple II. Pour démarrer le jeu, saisir sous DOS :
]BRUN SORCELLERIE
Il ne vous reste plus qu’à jouer et à sauver le monde en détruisant tous les sorciers !
LICENCE
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.