|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() Inscription : décembre 2007 Messages : 64 ![]() |
Bonjour,
Je suis en train de finir mon premier programme en python mais j'aurais besoin de conseille sur des pistes que je pourrais suivre concernant un problème sur une fonction. Le programme que j’essaie de créer est un outil de mise en forme de tileset (un bitmap qui contient toute les tuile graphique nécessaire a la création d'un niveau pour un jeux 2D (zelda,...). J'ai joins le programme si vous voulez l'essayer et me donner votre avis (il a été fait sur python 2.7). il autorise 3 import: -le tileset qui est ouvert directement dans l’éditeur -la map qui une fois ouverte demande que l'on choisisse la taille des tuiles a générer a partir de celle ci(le bouton généré s'active a l'ouverture). Les tuiles cette fois sont trillé pour éviter les redondance c'est la troisième qui me pose problème. Celle ci permet normalement d'importer un tileset et son CSV et de reformer des tiles a partir de celle ci avec un CSV qui lui est associé. Un schéma sera plus clair. un tilse composé de 4*2 tiles au format 8*8pixels par exemple 0123 4567 son CSV qui permet de créer la map associé au tileset en haut 0,1,3,5 2,3,5,4 0,7,6,5 si je demande des tiles de 3*3pixels par exemple, la fonction va redécouper la map en fonction de cette taille demandé est recréer un tilseset et un CSV en accord avec ça. Mon problème vient du fait que la fonction de prend pas en compte toute les tiles d'une map pour générer le nouveau tilesetet son CSV. CA marche bien pour de petite map comme "Tiletest" dans le dossier, mais des que ça devient plus grand toute les tuiles ne sont pas prie compte, comme "plateau_tiles"(joins lui aussi). La, je vois pas du tout d’où ça viens. Pourriez vous me donner des pistes pour essayer de le résoudre? Y'a t'il un paramètre dans python que je n'ai pas prie en compte(approximation,limite,..). information utile: LtTset est la liste des bitamp fournie a la fonction sous forme de numpyArray LtCSV est le CSV qui lui est associé fournie lui aussi sous forme de liste. Code :
Bonne journée, |
||
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() Inscription : décembre 2007 Messages : 64 ![]() |
Excusez moi, en fait il n'y a pas d'erreur -__-, j'avais juste crue que plateau tournait avec des tiles en 8*8 alors que c'était des 16*16 forcement au découpage ça a fait un caca nerveux.
Je pense mettre se logiciel a disposition quand il sera terminé même si ça ne va pas intéressé grand monde je pense. Par contre si vous pouvez me donner un avis sur comment améliorer la propreté du code je suis preneur. Avec mes excuse encore et bonne soirée, |
|
|
00
|
|
|
#3 | |
|
Membre éclairé
![]() Inscription : mai 2006 Messages : 258 ![]() |
Citation:
1. Votre méthode parse_CSV est très longue et a visiblement beaucoup de responsabilités : vous devriez la décomposer en plusieurs méthodes. 2. Attention aux conventions sur les noms de variables. Les variables devraient être en snake case (ex: ma_variable) et ne pas commencer par une majuscule (c'est réservé aux définition de classes). 3. Entourez vos opérateurs par des espaces, c'est plus lisible (excepté pour les paramètre nommés dans vos prototypes et appels de méthodes). 4. Utilisez les fonctions de formatage pour vos strings (str.format ou opérateur %). C'est plus élégant que des Code :
print 'lenW_mapGen,lenH_mapGen : '+str(lenW_mapGen)+' , '+str(lenH_mapGen) Concernant la propreté du code et le respect des conventions, vous pouvez utiliser pylint. |
|
|
00
|
|
|
#4 | |
|
Membre du Club
![]() Inscription : décembre 2007 Messages : 64 ![]() |
A merci, je vais regarder tout ça et essayer d'améliorer le code dans se sens.
Par contre pour le conseil ci-dessous, je vois pas du tout ce que c'est. Vous auriez un exemple? Citation:
|
|
|
|
00
|
|
|
#5 |
|
Membre éclairé
![]() Inscription : mai 2006 Messages : 258 ![]() |
Yes : vers la doc officielle http://docs.python.org/2/library/std...string-methods
|
|
00
|
Copyright © 2000-2013 - www.developpez.com