home *** CD-ROM | disk | FTP | other *** search
- /************************************************************************
- **************************************************************************
- ** **
- ** Labyrinthe.doc **
- ** -------------- **
- ** **
- ** Auteur : Eric Le Saux **
- ** **
- ** Club Amiga Montreal (CAM) **
- ** C.P. 195 STATION "N" **
- ** Montreal (Quebec) **
- ** H2X 3M2, CANADA **
- ** **
- ** Date : 7 mars 1988 **
- ** **
- ** Statut : DOMAINE PUBLIC - Distribution non-commerciale seulement **
- ** PUBLIC DOMAIN - Freely redistributable **
- ** **
- **************************************************************************
- ************************************************************************/
-
- Objectif
- --------
-
- Generer des labyrinthes possedant la propriete suivante : entre
- deux points quelconques du labyrinthe, il existe toujours un seul et
- unique chemin (pensez-y bien, ca a de nombreux corollaires).
-
-
- Methode de generation
- ---------------------
-
- Le labyrinthe est genere recursivement par la fonction Laby ().
-
- Le principe est le suivant : soit une surface a transformer en
- labyrinthe. Si on peut la diviser en quatre, on envoie chacune des
- sous-partie subir le meme traitement, sinon on trace un corridor.
- Une fois les quatre sous-parties generees, on les relient par trois
- passages, places au hasard.
-
- Est-ce assez simple ?
-
-
- Utilisation
- -----------
-
- Le programme n'accepte aucun argument. Ce qui justifie l'elimination
- des fonctions _cli_parse() et _wb_parse().
-
- Une fenetre va s'ouvrir sur le Workbench. Elle propose 4 resolutions
- et 2 actions.
-
- Le bouton de menus sert a mettre le labyrinthe en premier plan et a
- faire apparaitre/disparaitre la barre de l'ecran.
-
- En 320x200, il y a 16000 'carrefours',
- 320x400 et 640x200 il y en a 32000 et en
- 640x400, il y en a 64000.
-
-
- Compilation
- -----------
-
- Ce programme a ete compile avec Manx 3.4a.
- 1> cc Labyrinthe.c
- 1> ln Labyrinthe.o -lc
-
- Pour que le programme fonctionne correctement, il faut faire la
- correction suivante dans le fichier <exec/types.h> :
-
- #define TRUE 1 et non #define TRUE 1L
- #define FALSE 0 et non #define FALSE 0L
-
- Explication : le type BOOL est un short. Quand on passe comme
- parametre a une fonction la constante de type LONG, elle prend 32 bits
- sur le stack au lieu de 16. Maintenant, si vous appelez une fonction du
- systeme sans l'option de compilation +L, vous devrez convertir vos
- arguments en LONG.
-
- Si ce n'est pas tres clair, vous pouvez toujours poser des questions
- a l'auteur au cours des reunions du Club Amiga Montreal.
-
-
-