Hi Alberto,

The issue you're seeing is in the intialize() code:

######
    def initialize(self):
        self.buttonmatrix=[]
        self.statematrix=[]
        self.bombmatrix=[]
        for i in range(self.fil):
            aux=[]
            for j in range(self.col):
                aux.append(None)
            self.buttonmatrix.append(aux)
            self.bombmatrix.append(aux)
            self.statematrix.append(aux)
        self.bombs()
######

In particular, it's the reuse of the same list value who we will call
'aux'.


Let's try something from the interpreter to show a simplified version of
the problem:

######
>>> aux = []
>>> x = [aux, aux, aux]
>>> aux.append(42)
>>> aux
[42]
>>> x
[[42], [42], [42]]
######

The last result might be surprising to you.  Things might be clearer if we
draw a diagram of what Python's universe looks like at this point:


---------------------------

   aux --------->[42] <
                   ^^  \
                   | \  \
                   |  |  |
   x   ---------> [ ,  ,  ]

----------------------------


My ascii art is terrible.  *grin* But I hope it's a little clearer now
that what's happening is that the list's values are all to the same thing.


Does this make sense so far?  Please feel free to ask more questions.

_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to