README.md 5.31 KB
Newer Older
Merwane Bouri's avatar
Merwane Bouri committed
1
2
# Cellulut LO21

Merwane Bouri's avatar
Merwane Bouri committed
3
Application développée dans le cadre de l’UV LO21 qui permet de répondre à la problématique de simulation d’automates.
Merwane Bouri's avatar
Merwane Bouri committed
4
5
6
7

## Sommaire

 - [Pour commencer](#pour-commencer)
Merwane Bouri's avatar
Merwane Bouri committed
8
 - [Installation](#installation)
Merwane Bouri's avatar
Merwane Bouri committed
9
 - [Démarrage](#demarrage)
Merwane Bouri's avatar
Merwane Bouri committed
10
 - [Détails sur l'Application](#détails-sur-lapplication)
Merwane Bouri's avatar
Merwane Bouri committed
11
12
13
14
15
16
17
18
 - [](#)
 - [](#)
 - [](#)
 - [](#)
 - [](#)
 - [](#)
 - [](#)
 - [](#)
Merwane Bouri's avatar
Merwane Bouri committed
19
 - [Auteurs et licence](#auteurs)
Merwane Bouri's avatar
Merwane Bouri committed
20
21
## Pour commencer

22
Avoir une version de **Qt** d'au moins 5.9. Projet principalement testé sur Qt 5.15.2.
23
Le projet a été testé et fonctionne sur Qt 6, mais il est conseillé d'utiliser une version récente de Qt 5.
Merwane Bouri's avatar
Merwane Bouri committed
24

Yann Boucher's avatar
Yann Boucher committed
25
26
27
28
29
30
31
Testé avec les compilateurs suivants :
```
g++.exe (tdm64-1) 9.2.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
```
Merwane Bouri's avatar
Merwane Bouri committed
32
33
34

### Installation

Merwane Bouri's avatar
Merwane Bouri committed
35
Dans votre répétoire faire: `$ git clone https://gitlab.utc.fr/lo21_pin_noir_boucher_bouri_detree/cellulutlo21.git`
Merwane Bouri's avatar
Merwane Bouri committed
36
37
38

## Démarrage

Merwane Bouri's avatar
Merwane Bouri committed
39
Ouvrez le projet avec QtCreator, compiler et executer le programme, puis admirez **vos** automates cellulaires :)
Merwane Bouri's avatar
Merwane Bouri committed
40
![compiler](./images/2021-06-12_00-42.png )
Merwane Bouri's avatar
Merwane Bouri committed
41

42
En cas de soucis, assurez-vous de bien exécuter l'application et non pas les tests :
Yann Boucher's avatar
Yann Boucher committed
43
![pas_exec_tests](./images/pas_exec_tests.PNG)
44

Merwane Bouri's avatar
Merwane Bouri committed
45
## Détails sur l'Application
Merwane Bouri's avatar
Merwane Bouri committed
46
De prime abord, l’application permet à l’utilisateur de paramétrer intégralement les différents types d’**automates cellulaires** : **taille du réseau** (par réglage des dimensions de la grille), l’ ensemble des états (nombre d’états, nom et couleur associée paramétrable directement par l’interface de l’Alphabet), le **type de voisinage** (Von Neumann, Moore, ou tout simplement arbitraire), ainsi que la règle de transition (Jeu de la vie, totalistique, etc..). L’utilisateur a également une totale liberté sur la nature des frontières de la grille : Elles peuvent être aussi bien périodiques (comme le propose le sujet) ou inertes (ajout supplémentaire).
Merwane Bouri's avatar
Merwane Bouri committed
47
48
49
50
51
52
53
54
55
56
### Alphabet 
En ce qui concerne l’**Alphabet**, ce dernier permet de paramétrer jusqu’à **32 états** (supérieur aux 8 états du cahier des charges). Le nom et la couleur peuvent aussi être paramétrés. Notre application se veut également accessible à tous : En ce sens, nous avons implémenté un mode Daltonien permettant à ces derniers de pouvoir simuler jusqu’à 8 états sans aucun problème, et dont le contraste des couleurs s’adapte aux personnes souffrant de deutéranomalie.
### Voisinage
Du point de vue du **voisinage** et de la règle de transition, l’utilisateur peut à sa guise utiliser des modèles d’automate cellulaires déjà proposés par l’application, ou bien laisser part à sa créativité en créant ou modifiant des règles déjà établies : Ces nouvelles créations pourront être sauvegardées et utilisées par la suite. Une aide est accessible à l’utilisateur dans le cadre de la création de ces règles.

### Configuration initiale 
Au moment de « jouer » avec la grille, l’application propose à l’utilisateur d’utiliser plusieurs structures déjà implémentées : oscillateurs, langton’s loops, etc. Quelques structures « exotiques » ont pu se glisser dans ces patterns, n’hésitez donc pas à toutes les consulter. L’utilisateur peut également paramétrer l’état initial de la grille de façon manuelle en sélectionnant simplement les cellules à modifier (un maintien du clic gauche permet de modifier rapidement un groupe de cellules).

S’il venait à l’utilisateur de devoir interrompre son chef-d’œuvre artistique, l’application sauvegarde automatiquement les différents changements (qu’ils concernent la grille ou les paramètres).
Enfin, l’utilisateur a la possibilité d’utiliser des configurations déjà établies ou d’en créer, de façon similaire aux règles de transition et de voisinage.
Merwane Bouri's avatar
Merwane Bouri committed
57

Merwane Bouri's avatar
Merwane Bouri committed
58
59
Lorsque la configuration de l’automate est complète, l’utilisateur peut réellement démarrer l’application avec le bouton Play. Il peut à n’importe quel instant remettre à zéro l’intégralité de la simulation, modifier à sa guise la vitesse de simulation (mode automatique), aller directement à l’état suivant, ou revenir à l’état précédent (mode pas à pas)

Merwane Bouri's avatar
Merwane Bouri committed
60
61
62
63
64
### Extras 
Et oui l'application fonctionne aussi avec Linux !

Enfin, l’application propose des ajouts supplémentaires beaucoup plus « exotiques ». À l’utilisateur de pouvoir les retrouver ! 

Merwane Bouri's avatar
Merwane Bouri committed
65
 
Merwane Bouri's avatar
Merwane Bouri committed
66
67
## Fabriqué avec

Merwane Bouri's avatar
Merwane Bouri committed
68
69
* [Qt](https://www.qt.io/) - Bibliothèque logicielle pour développer des interfaces graphiques
* [QtCreator](https://www.qt.io/product/development-tools) - IDE pour utiliser les bibliothèques spécifiques
Yann Boucher's avatar
Yann Boucher committed
70
* [gifenc](https://github.com/lecram/gifenc) - Bibliothèque de sauvegarde de fichiers GIF sous le domaine public
Merwane Bouri's avatar
Merwane Bouri committed
71
72

## Versions
Merwane Bouri's avatar
Merwane Bouri committed
73
Version 1.1
Merwane Bouri's avatar
Merwane Bouri committed
74
75

## Auteurs
Yann Boucher's avatar
Yann Boucher committed
76

Merwane Bouri's avatar
Merwane Bouri committed
77
78
79
80
81
* **Yann Boucher** _alias_ [@yboucher](https://gitlab.utc.fr/yboucher)
* **Arthur Detree** _alias_ [@detreear](https://gitlab.utc.fr/detreear)
* **Eugene Pin** _alias_ [@pineugen](https://gitlab.utc.fr/pineugen)
* **Anthony Noir** _alias_ [@noiranth](https://gitlab.utc.fr/noiranth)
* **Merwane Bouri** _alias_ [@bourimer](https://gitlab.utc.fr/bourimer)
Merwane Bouri's avatar
Merwane Bouri committed
82
83
84
85


## License

Yann Boucher's avatar
Yann Boucher committed
86
Ce projet est sous licence ``MIT License`` - voir le fichier [LICENSE](LICENSE) pour plus d'informations
Merwane Bouri's avatar
Merwane Bouri committed
87