__repr__ d'une lambda double array

Le problème exposé dans ce sujet a été résolu.

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 :D

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
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte