8000 GitHub - Tonguechaude/GOL.rs: A simple Game of life implementation in Rust
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Tonguechaude/GOL.rs

Repository files navigation

Jeu De La Vie en RUST

License

Le Jeu de la Vie est une simulation cellulaire automatisée conçue par le mathématicien John Conway. Ce projet est une implémentation en Rust du célèbre algorithme, avec une interface graphique utilisant Bevy et une version WebAssembly (WASM) pour une exécution dans le navigateur.


À quoi ça sert ?

Bonne question ! En réalité je l'ai fait en Java déjà et j'aime pas le fait qur la JVM consomme 3 GB de RAM donc je la tente en Rust.


Fonctionnalités

  • Simulation du Jeu de la Vie : Implémentation de l'algorithme classique de Conway.
  • Interface graphique : Utilisation de Bevy pour une interface 2D interactive.
  • Version WebAssembly : Exécution dans un navigateur web avec une interface simple.

Prérequis

Pour utiliser ce projet, vous aurez besoin des outils suivants :

  • Un cerveau 🧠
  • Une connexion internet
  • Et une vrai liste de prérequis que voici :
  • Rust Toolchain :
    • rustc (compilateur Rust)
    • cargo (gestionnaire de paquets Rust)
    • rustup (gestionnaire de versions Rust)
  • Outils supplémentaires pour WASM :
    • wasm32-unknown-unknown (cible pour la compilation WebAssembly)
    • wasm-bindgen-cli (pour générer les bindings JavaScript)
    • wasm-server-runner (pour exécuter le projet en local)

Installation

  1. Clonez ce dépôt :
git clone https://github.com/Tonguechaude/GOL.rs.git
cd GOL.rs
  1. Installez les dépendances Rust :
rustup target add wasm32-unknown-unknown
cargo install wasm-bindgen-cli wasm-server-runner

Utilisation

Version Rust (fenêtre classique)

Pour compiler et exécuter le projet en mode release :

cargo run --release

Version WASM (en local)

Pour exécuter le projet dans un navigateur web en local :

cargo run --target wasm32-unknown-unknown
cargo serveur

Version WASM (pour déploiement)

Pour compiler le projet en WebAssembly et générer les fichiers JavaScript :

cargo build --release --target wasm32-unknown-unknown
wasm-bindgen --no-typescript --out-dir ./webapp/ --target web ./target/wasm32-unknown-unknown/release/jeu_de_la_vie.wasm

Dépendances

Ce projet utilise les dépendances suivantes :

Bevy : Moteur de jeu pour l'interface graphique.
egui : Interface utilisateur pour la version Rust.
rand : Génération de nombres aléatoires pour l'initialisation de la grille.
wasm-bindgen : Pour la compatibilité WebAssembly.

Contribuer

Les contributions sont les bienvenues ! Si vous souhaitez améliorer ce projet, voici comment procéder :

  1. Forkez ce dépôt.
  2. Créez une branche pour votre fonctionnalité (git checkout -b feature/nouvelle-fonctionnalite).
  3. Committez vos changements (git commit -am 'Ajouter une nouvelle fonctionnalité').
  4. Poussez vers la branche (git push origin feature/nouvelle-fonctionnalite).
  5. Ouvrez une Pull Request.

License

On fait que du Logiciel Libre ici !! Blague à part le code est sous licence GNU GPL v3

Rappel pour moi

⛔ NE LIS PAS SI TU N'ES PAS MOI !!

déploiement en attendant que je me motive à créer les secrets pour github CI/CD :

rsync -av --rsh=ssh webapp/* tongue@tonguechaude.fr:/var/www/tonguechaude.github.io/gol

Amusez-vous bien avec le Jeu de la Vie en Rust ! 🚀

About

A simple Game of life implementation in Rust

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0