Bonjour, j'aimerais créer un grillage afin de modéliser un petit jeu de rpg tactique (du genre fftactic).
J'ai donc commencé par créer une nouvelle classe appelée Case.
class Case():
def __init__(self):
self.terrain = "brown"
self.occupee = "libre"
self.numero = None
Donc par défaut, la case est une case avec un terrain de type "brown" et non occupée. J'utilise des couleurs comme type de terrain pour réutiliser cette propriété lors de l'affichage. Brown signifie une case terrestre, en comparaison à blue qui signifie une case d'eau.
Bon, maintenant, je vais créer un dictionnaire. La clef sera un tupple de deux nombres, les coordonnés de la cases, tandis que la valeur sera un objet de type case.
J'initialise mon grillage:
class Carte(Frame):
"Carte du terrain, héritage de la classe Layer de Tkinter."
def __init__(self,boss,numero,groupeNpc,formationNpc,groupeEnnemi,formationEnnemie):
Frame.__init__(self)
if numero == "":
largeur = 20
hauteur = 20
nbCases = largeur * hauteur
nbPixel = 20
caseVide = Case()
carteTest = {}
k = 0
for i in range(largeur):
for j in range(hauteur):
carteTest[i,j] = caseVide
carteTest[i,j].numero = k
k += 1
Ensuite, j'essaie de transformer certaine case en case bleue pour en faire des cases d'eau:
for i in range(10,15):
for j in range(10,15):
carteTest[(i,j)].terrain = "blue"
Mais alors, toute mes cases se transforment en case d'eau. En gros, pas seulement les cases mentionnées par la boucle. J'espère que mes perso savent nager...
Quelqu'un a une idée pourquoi ?