Refonte du README.md

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
This commit is contained in:
Valentin Moguérou 2021-11-01 17:51:17 +01:00
parent 97384b95f7
commit de0691c718

View File

@ -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
```
```
## 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 nest visitée plus dune 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/).