这可能是非常明显的事情,但我似乎无法找到为什么网格中的第一列是相同的。
grid = [[1]*8 for n in range(8)]
cellWidth = 70
def is_odd(x):
return bool(x - ((x>>1)<<1))
def setup():
size(561, 561)
def draw():
x,y = 0,0
for xrow, row in enumerate(grid):
for xcol, col in enumerate(row):
rect(x, y, cellWidth, cellWidth)
if is_odd(xrow+xcol):
fill(0,0,0)
else:
fill(255)
x = x + cellWidth
y = y + cellWidth
x = 0
def mousePressed():
print mouseY/cellWidth, mouseX/cellWidth
print is_odd(mouseY/cellWidth + mouseX/cellWidth)
有什么想法吗?
答案 0 :(得分:2)
看起来fill
命令不会改变您绘制的最后一个矩形的颜色;相反,它会改变其后的所有绘制调用的颜色。根据{{3}}:
设置用于填充形状的颜色。例如,如果运行fill(204,102,0),则所有后续形状将用橙色填充。
所以你的所有颜色都落后了一个方格。就好像所有的瓷砖都向右移动了一样,除了最左边的一行,一行向下移动,八行向左移动。这使得该行与所有其他行不匹配。
尝试在fill
电话前发出rect
来电:
for xcol, col in enumerate(row):
if is_odd(xrow+xcol):
fill(0,0,0)
else:
fill(255)
rect(x, y, cellWidth, cellWidth)
x = x + cellWidth