Hello,

I am completely baffled by this action and would appreciate any help. My problem is occurring within a class which is within a larger program; if I need to post the entire program let me know and I will. It's only about 250 lines so far. Anyways, I am using a list of lists to store data in a GUI game called goMoku. It is kind of like a connect five game, pretty simple. When a user clicks a certain square, this line is called to store the "move":

self.boardarray[row][col] = self.currentPlayer

self.currentPlayer is either "White" or "Black" which are constants set to 1 and 2, so that when, say, the black player clicks on row 2 column 4, self.boardarray[2][4] will be set to "2". Instead, the program is setting multiple values within the list as 2. Here is an example output, when I click on (0,0):

[[2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], etc.

The board is 13X13 and position 0 for each list in the list of lists is being set to 2, while only position 0 in the first list should be changed to 2. To check for errors, I've surrounded the statement by print statements to see what's going on, like this:

print self.boardarray
print row,col,self.currentPlayer,self.boardarray[row][col]
self.boardarray[row][col] = self.currentPlayer
print self.boardarray

My output is:

[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], etc.
0 0 2 0
[[2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], etc.

I do not understand what is going on. Everything is as expected except that the extra positions are being assigned as "2". Can anyone suggest what is going wrong?

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

Reply via email to