Bonjour à tous, je suis en train d'exploiter un code d'AlphaZeta vraiment pas mal pour générer le terrain, et voulant pas me faire chi.. avec des conditions à ralonge de 400 blocs, je pass par un for. Or Zeta a utilisé une class à laquelle on fournit une lambda de double array. Et moi je cherche à obtenir cet array. Mais ce code ne me donne que : <function lambda at …>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | class Structure: structures = [] def __init__(self, pattern, base, cond=lambda: True): self.pattern = pattern self.base = base self.cond = cond Structure.structures.append(self) def substitute(self, x, y): base_x, base_y = self.base get_absolute = lambda rel_x, rel_y: (x+rel_x, y+rel_y) get_relative_from_base = lambda abs_x, abs_y: (abs_x-base_x, abs_y-base_y) block_dict = {} for iy, line in enumerate(self.pattern()): for ix, block in enumerate(line): if block is not None: block = Block.from_id[block] abs_pos = get_absolute(*get_relative_from_base(ix, iy)) block_dict[abs_pos] = block return block_dict.items() def __repr__(self): return self.pattern TREE = Structure( lambda: [ [None, None, None, 6 , 6 , 6 , 6 , None, None, None], [None, 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 ], [6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 ], [6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 ], [6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 ], [None, None, 6 , 6 , 6 , 6 , 6 , 6 , None, None], [None, None, None, None, 5 , 5 , 5 , None, None, None], [None, None, None, None, 5 , 5 , None, None, None, None], [None, None, None, None, 5 , 5 , None, None, None, None], [None, None, None, None, 5 , 5 , None, None, None, None], [None, None, None, None, 5 , 5 , None, None, None, None] ], base=(4, 10), cond=condition.TREE ) |
je vous ai mis l'arbre en exemple avec moi j'aimerai pouvoir faire :
1 | TREE.__repr__() |
et que cela me retourne le double array.
merci de votre aide
edit : parfois je suis bete, exposer mon probleme m'aide et là ca m'a bien aidé (et j'espere que d'autres auront ce probleme et passeront par ici) ligne 26, dans la class structure : return self.pattern() désolé du post inutile
+1
-0