from tkinter import *
import random
master = Tk()
w = Canvas(master, width=400, height=400)
w.pack()
w.config(background = "white")
class gridTile:
def __init__(self,width,height,c1,c2,colour,val):
self.width = width
self.height = height
self.c1 = c1
self.c2 = c2
self.colour = colour
self.val = val
def draw(self):
w.create_rectangle(self.c1, self.c2, self.width self.c1,
self.height self.c2, fill = self.colour)
grid = [["a","b","c","d"],["1a","1b","1c","1d"],["2a","2b","2c","2d"],["3a","3b","3c","3d"]]
當我在單獨的環境中測驗它時,它運行良好,但放大后它不起作用。
print(grid[(3)(3)])
grid_size = 4
count = 0
size = 60
for i in range(0,3):
print(i)
for j in range(0,3):
print(j)
count = 1
print (grid[[i][j]])
這個范圍應該包括在 grid
grid[[i][j]] = gridTile(size,size,i*(size 10),j*(size 10),"black",count)
def end():
sqry = random.randint(0,3)
sqrx = random.randint(0,3)
grid[[sqry][sqrx]].colour = "white"
for i in range(0,2):
x = random.randint(0,3)
y = random.randint(0,3)
mainloop()
錯誤:
<module>
grid[[i][j]] = gridTile(size,size,i*(size 10),j*(size 10),"black",count)
IndexError: list index out of range
uj5u.com熱心網友回復:
我在移動設備上,但它似乎是一個二維陣列。為了訪問值做 grid[x][y] 而不是元組或陣列。
如果我誤解了什么,請糾正我。
uj5u.com熱心網友回復:
我們來看看grid[[i][j]]。該運算式的內部是[i][j]. 例如,如果i = 2和j = 3擴展為[2][3]。換句話說,它創建一個串列[2],然后嘗試從中獲取索引 3 處的專案。
那是行不通的。grid[i][j]是正確的語法。但說真的,不要做那種事for i in range(...)。就像 Matiiss 說的,你真的想寫一些類似的東西:
for sublist in grid:
for item in sublist:
print(item)
count = 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/369774.html
