Added a README and started moving the UI code
This commit is contained in:
parent
805f2f11fe
commit
64c5050f84
4 changed files with 52 additions and 6 deletions
41
README.md
Normal file
41
README.md
Normal file
|
@ -0,0 +1,41 @@
|
|||
# Projet d'Algorithme Génétique - Intelligence Artificielle
|
||||
|
||||
## Description
|
||||
|
||||
Ce projet implémente un **algorithme génétique (GA)** en Java dans le cadre de mon cours d'introduction à l'IA.
|
||||
|
||||
Dans ce projet, l'algorithme vise à trouver la meilleure solution pour trouver la sortie d'un labyrinthe, le tout en utilisant le moins de mouvements possible.
|
||||
|
||||
### Fonctionnalités
|
||||
Ce projet implémente une inteface graphique afin de pouvoir visualiser les mouvements du meilleur individu de chaque génération.
|
||||
|
||||
## Librairies
|
||||
- [Jaylib (Binding de Raylib en java)](https://github.com/electronstudio/jaylib) - Pour le GUI
|
||||
- [Gradle Shadow](https://github.com/GradleUp/shadow) - Pour la compilation du projet
|
||||
|
||||
## Utilisation
|
||||
|
||||
Une version est téléchargeable depuis la page **Release** du dépôt GitHub.
|
||||
|
||||
Le programme permets de visualiser de façon dynamique comment le meilleur individu de chaque génération se comporte.
|
||||
De plus, il est possible de modifier certains critères afin de voir leurs effets sur la population.
|
||||
|
||||
### Les critères modifiable
|
||||
- **Nombre d'itération**: Le nombre d'itération afin que l'algorithme ne s'arrête.
|
||||
- **Taille de la population** : Le nombre d'individus dans chaque génération.
|
||||
- **Taux de mutation** : La probabilité qu'une mutation se produise.
|
||||
- **Taux de croisement** : ???.
|
||||
- **Taux de selectivité** : Le nombre d'individus qui seront gardés pour créer la génération suivante.
|
||||
|
||||
## Exemples d'application
|
||||
|
||||
Ce projet est adapté pour comprendre, et visualiser comment un algorithme génétique explore, et trouve une solution à un problème donné.
|
||||
Bien que ce projet reste très simple, il peut être utile pour apprendre.
|
||||
|
||||
## Auteur
|
||||
|
||||
- [Nabil Ould Hamou](https://nbiloh.me/) - Étudiant en Master ISA
|
||||
|
||||
## Licence
|
||||
|
||||
Ce projet est sous licence MIT. Voir le fichier [LICENSE](LICENSE) pour plus de détails.
|
|
@ -3,7 +3,7 @@ import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform
|
|||
plugins {
|
||||
id 'java'
|
||||
id 'application'
|
||||
id 'com.github.johnrengelman.shadow' version '7.0.0'
|
||||
id 'com.gradleup.shadow' version '8.3.0'
|
||||
}
|
||||
|
||||
group = 'fr.nabil'
|
||||
|
|
|
@ -29,17 +29,15 @@ public class Main {
|
|||
|
||||
// Draw UI
|
||||
DrawText("Generation: 1", 10, 510, 24, BLACK);
|
||||
Jaylib.Rectangle r1 = new Jaylib.Rectangle(200, 510, 150, 25);
|
||||
Jaylib.Rectangle r1 = new Jaylib.Rectangle(10, 535, 150, 25);
|
||||
int btn = GuiButton(r1, "Next generation");
|
||||
GuiSetStyle(btn, TEXT_SIZE, 16);
|
||||
|
||||
Jaylib.Rectangle r2 = new Jaylib.Rectangle(200, 550, 150, 25);
|
||||
Jaylib.Rectangle r2 = new Jaylib.Rectangle(10, 565, 150, 25);
|
||||
int btn2 = GuiButton(r2, "Replay");
|
||||
GuiSetStyle(btn2, TEXT_SIZE, 16);
|
||||
|
||||
if (btn == 1) {
|
||||
System.out.println("next gen?");
|
||||
}
|
||||
|
||||
|
||||
// Draw Maze
|
||||
for (int i = 0; i < Maze.MAZE[0].length; i++) {
|
||||
|
|
7
src/main/java/display/UI.java
Normal file
7
src/main/java/display/UI.java
Normal file
|
@ -0,0 +1,7 @@
|
|||
package display;
|
||||
|
||||
public class UI {
|
||||
|
||||
private int replayBtn;
|
||||
|
||||
}
|
Loading…
Add table
Reference in a new issue