Reputation: 169
I've created a 2d array like this:
a, b = 150, 150;
density = .5
def RedOrGreen():
c = random.uniform(0,1)
if c > density:
d = "GREEN"
else:
d = "RED"
return d
Matrix = [[RedOrGreen() for x in range(a)] for y in range(b)]
I'd like to use tkinter to create a square that has a lot of squares inside of it. These squares are represented by my 2d array. I want to make them either green or red, depending on the value in the 2d array. I tried to accomplish this by iterating through my 2d array, and creating rectangles like this:
self.forest = tk.Canvas(self, width = 500, height = 500)
for x in range(a):
for y in range(b):
self.forest.create_rectangle(x,y,x+1,y+1, fill = Matrix[x][y])
self.forest.pack()
I've omitted some code for simplicity, but you can view the entire code here: https://repl.it/repls/WindingUnwelcomeLibrary
However, this solution does not work. I'm not sure why it's not working, because in my head I am iterating through the 2d array, and then creating a corresponding rectangle. Please let me know if you have any ideas.
Edit: The reason it does not work is because it just displays a black canvas. It's not correctly populating the rectangles with the colors I want. I am not running it on repl.it, I just have it there to display the full code.
Upvotes: 0
Views: 570