From de0691c71856e29aba73d8b75063c20d86810894 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Valentin=20Mogu=C3=A9rou?= Date: Mon, 1 Nov 2021 17:51:17 +0100 Subject: [PATCH] Refonte du README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ajout de remerciements, des règles du jeu, d'un exemple réalisé dans catwalk-cli, ainsi que l'explication d'un lot de fonctionnalités --- README.md | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 61 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8783c6d..c66c618 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,12 @@ # Bibliothèque libcatwalk -La bibliothèque du jeu Catwalk, servant de base pour que ses différentes interfaces puissent fonctionner +La bibliothèque du jeu Catwalk, servant de base pour que ses différentes interfaces puissent fonctionner. + +## Remerciements + +Merci à [Arnaud Gazagnes](mailto:arnaud.gazagnes@ac-lyon.fr) pour la compilation d'une multitude de jeux dans un document : [Grilles logiques, 69 jeux de grilles](http://math.univ-lyon1.fr/irem/IMG/pdf/GrillesLogiques.pdf). + +Merci à [PuzzlePicnic](http://puzzlepicnic.com) pour avoir hébergé une [description de ce jeu](http://puzzlepicnic.com/genre?catwalk), et de ce fait permis à Arnaud Gazagnes de le recenser. ## Comment s'organise-t-elle ? @@ -42,4 +48,57 @@ $ sudo make uninstall ou ``` # make uninstall -``` \ No newline at end of file +``` + +## Règles du jeu + +Le but du jeu est de dessiner un chemin de chaque chat à son propre bol de lait. + +Les nombres à gauche et au-dessous de la grille indiquent combien de cases sont traversées par ce chemin, chats et bols compris. + +Les chats se promènent seulement horizontalement et verticalement et aucune case n’est visitée plus d’une fois. + +Source : Arnaud Gazagnes (arnaud.gazagnes@ac-lyon.fr), dans [Grille logiques, 69 jeux de grilles](http://math.univ-lyon1.fr/irem/IMG/pdf/GrillesLogiques.pdf). + +## Exemple + +Cet exemple a été réalisé grâce à [catwalk-cli](https://git.kaz.bzh/valentin/catwalk-cli/). + +``` +$ catwalk-cli + + 1 1 2 0 + + +-------+-------+-------+-------+ + | /\_/\ | | | | + 3 |( o.o )| | | | + | > ^ < | | | | + +-------+-------+-------+-------+ + | | | == | | + 1 | | | /mi\ | | + | | | \lk/ | | + +-------+-------+-------+-------+ + | | | | | + 0 | | | | | + | | | | | + +-------+-------+-------+-------+ + | | | | | + 0 | | | | | + | | | | | + +-------+-------+-------+-------+ +``` + +## Fonctionnalités ++ Création d'un objet `struct grid` possédant: + - une largeur; + - une paire de coordonnées de la case de départ; + - une paire de coordonnées de la case d'arrivée; + - un pointeur vers des "indicateurs", des nombres qui servent de contraintes au joueur; + - un pointeur vers le parcours du joueur, quand il existe (sinon le pointeur est nul). ++ Il existe des fonctions pour générer une grille, pour régénérer une grille, et pour vérifier une grille jouée. ++ Création d'un objet `struct indicators`, représentant les nombres aux côtés de la grille. Il possède deux pointeurs vers des tableaux d'entiers, un pour chaque axe, horizontal et vertical. ++ Création d'un objet `struct route`, représentant un parcours. Cette structure est utilisée à la fois pour la génération de la grille, et pour les mouvements du joueur. Il s'agit en réalité d'une liste doublement chaînée. ++ Cet objet dépend d'un autre objet `struct element` qui contient les coordonnées d'une case, et qui contient également les pointeurs de l'élément précédent et de l'élément suivant, dans le contexte de la liste doublement chaînée. ++ Création d'un objet `struct directions`, un objet qui sert à identifier les cases sur lesquelles le chat peut aller. Sur l'exemple ci-dessus, le chat se situe sur la case `(0, 0)`, et peut se déplacer sur les cases de coordonnées `(0, 1)` et `(1, 0)`. Ici, la variable `count` de l'objet est égale à 2 car il y a deux possibilités. + +Cette bibliothèque est utilisée, pour l'heure, par le seul projet [catwalk-cli](https://git.kaz.bzh/valentin/catwalk-cli/). \ No newline at end of file