Pathfinding module with Heatmap system
Project description
CartFinder
CartFinder est un système de détection de chemin automatique (Pathfinder) fonctionnant avec un système de gestion du danger (Heatmap).
Installation
- Téléchargez le fichier
.zip(bouton à côté de la section description tout en haut de la section des fichiers). - Décompressez-le pour obtenir le fichier
CartFinder.py.
Utilisation
1. Définir la carte
Définissez votre matrice/map sous forme de liste contenant des sous-listes pour les lignes :
"-0": Mur / Infranchissable"0": Case sans danger"1"à"4": Danger initial (1= petit danger,4= très grand danger)
map_test = [
["0", "0", "0", "-0", "0"],
["0", "-0", "0", "4", "0"],
["-0", "-0", "0", "0", "0"]
]
2. Initialiser le Pathfinder
Créez l'instance de la classe en passant ces arguments : la variable de la map, le point de départ [ligne, col], des points additionnels optionnels [[l, c]], et l'arrivée [ligne, col].
game = PathFinder(map_test, [0, 0], [[1, 2]], [0, 4])
3. Lancer la recherche
Lancez la fonction .Find() en spécifiant l'importance de la vitesse (pR) et l'importance de la sécurité (pS).
result = game.Find(pR=2, pS=2)
4. Afficher le résultat
Vous pouvez ensuite afficher le chemin calculé ainsi que le score final.
print("Chemin trouvé par le bot :", result[0] if result else "Aucun")
print("Score final :", result[1] if result else "N/A")
Fonctionnement
- Propagation du danger : Dès l'initialisation, CartFinder augmente automatiquement la valeur de danger des cases situées autour des sources de danger initiales (Heatmap).
- Génération des essais : Lors de l'appel à la méthode Find(), l'algorithme génère des tentatives pour atteindre chaque objectif l'un après l'autre.
- Calcul du meilleur chemin : Au bout de 150 essais, il calcule le score des solutions trouvées avec la formule suivante: $$score = -((nb_cases \times pR) + (danger_accumulé \times pS))$$ L'algorithme retient ensuite le chemin possédant le score le plus élevé (le moins négatif).
License et autres
Ce script est sous licence GNU General Public License 3.0 (GPL 3.0).
La version en module sortira très bientôt
Contact: zedka450 (Discord) zedka.le.vrai.pro@gmail.com (e-mail)
Pourquoi le nom "CartFinder"?
C'est très simple: je voulais un nom simple, qui se retient, alors je me suis dit "C'est pour les cartes, alors Cart, et Finder pour pathfinder" et ça fait CartFinder.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cartfinder-1.0.0.tar.gz.
File metadata
- Download URL: cartfinder-1.0.0.tar.gz
- Upload date:
- Size: 14.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.12 {"installer":{"name":"uv","version":"0.11.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
10d3142087c1ab6ee7e3f8597431f285e40bdce1022282abb56ab974f627ba71
|
|
| MD5 |
4d9dc75e754a4c07a516b59195fe263c
|
|
| BLAKE2b-256 |
8eb0542142535bfb95af48dd0835bdcf556e6fcdc63f954c866240c031605e33
|
File details
Details for the file cartfinder-1.0.0-py3-none-any.whl.
File metadata
- Download URL: cartfinder-1.0.0-py3-none-any.whl
- Upload date:
- Size: 15.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.12 {"installer":{"name":"uv","version":"0.11.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a641c5be75918ee5a4bc93febffd8b5b2bf230afbc3896840dfa589110fe4c25
|
|
| MD5 |
8d8ecdb8277e89bb2083d80d8a7239a7
|
|
| BLAKE2b-256 |
3984e59cb3226ea1f309ae8e420a7938633560a7ba1a589197cfef4f50473d97
|