My list is behaving oddly and I can't figure out why. I have added a print line each time a variable changes to determine what is happening and it seems like the insert function is writing over multiple items in the list.
def move_down(self, sn_game):
print("Initial Snake: " + str(self.snake_array))
temp_position = self.snake_array[0]
print("Temp Position: " + str(temp_position))
temp_position[1] += 1
print("Updated Position: " + str(temp_position))
self.snake_array.insert(0, temp_position)
print("Updated Snake: " + str(self.snake_array))
del self.snake_array[-1]
print("Final Snake: " + str(self.snake_array) + "\n")
Print output for 3 iterations:
Initial Snake: [[5, 2], [5, 1], [5, 0]]
Temp Position: [5, 2]
Updated Position: [5, 3]
Updated Snake: [[5, 3], [5, 3], [5, 1], [5, 0]]
Final Snake: [[5, 3], [5, 3], [5, 1]]
Initial Snake: [[5, 3], [5, 3], [5, 1]]
Temp Position: [5, 3]
Updated Position: [5, 4]
Updated Snake: [[5, 4], [5, 4], [5, 4], [5, 1]]
Final Snake: [[5, 4], [5, 4], [5, 4]]
Initial Snake: [[5, 4], [5, 4], [5, 4]]
Temp Position: [5, 4]
Updated Position: [5, 5]
Updated Snake: [[5, 5], [5, 5], [5, 5], [5, 5]]
Final Snake: [[5, 5], [5, 5], [5, 5]]
What am I missing?