Re: Pathfinding en python

Posté par siskas le 22/11/2012 18:09:54
Salut !

Ton script va me servir, ça c'est sûr ! :)

Cependant, voici ce que j'ai relevé :

• Il y a beaucoup d'espaces dans ton code ! Et des retours à la ligne non justifiés. Un peu ça améliore la lisibilité, beaucoup ça perd le lecteur
• Fait attention ! Tu nommes une variable "map". Mais ce mot désigne une fonction intégrée à python. En soi, ton code reste fonctionnel, mais par principe, évite d'utiliser des mots réservés...
• Dans la fonction noeuds_voisins, lorsque tu collectes la valeur de retour de la fonction obstacles, tu mets une syntaxe pas très "pythonnique", si j'ose dire :
À ceci :
if (obstacle(tmp,map)==0):
            voisins.append(tmp)

Préfère cela :
if (!obstacle(tmp,map)):
            voisins.append(tmp)

• La vérification des variables, c'est super, et l'utilisation d'une liste pour récolter les messages d'erreurs, c'est une bonne idée. Mais ça n'est pas assez verrouillé : les vérifications que tu effectues dans des boucles for ajoutent autant de fois le message d'erreur à la liste qu'il y a d'erreurs. Un seul exemplaire de chaque message serait plus compréhensible pour le lecture du rapport d'erreurs.
• En restant dans le rapport d'erreurs, il n'est pas très lisible, je trouve : on obtient une liste issue d'un print(liste_d'erreurs) (ou tout comme) alors qu'en parcourant la liste, on pourrait faire une présentation plus compréhensible. Après, certains préfèrent laisser les rapports d'erreurs inbouffables, c'est ton droit si tu es l'un d'eux.
• Pareil, pour les erreurs, je pense que tu mets deux conditions identiques à la suite pour le retour à la ligne. Certaines seraient simplifiables en une seule, et en remplaçant un code du genre : ("\n" => Retour à la ligne)

(Lignes 193-194)
if verbose>1: print(" ")
if verbose>1: print("-- a* - itération " + str(j) + " -----------------------------")

par un truc de ce style :
if verbose>1: print("\n-- a* - itération " + str(j) + " -----------------------------")



Bon, là je pinaille, c'est vraiment un bon bout de code :)
Merci à toi !

Cette contribution était de : http://blenderclan.tuxfamily.org/html/newbb/viewtopic.php?forum=3&topic_id=36855&post_id=453879