【发布时间】:2022-11-27 14:42:59
【问题描述】:
我不知道为什么,但我检查“现场游戏”的 3 条规则的“def”无法正常工作。我有 2 个列表,其中包含 0 和一些 1 来检查程序。 3 points 应该给这个 image 但它给了 this
def upd(mass,screen,WHITE,mass1):
BLACK = (0,0,0)
for i in range(len(mass)-1):
for j in range(len(mass[i])-1):
if mass[i][j] == 0:
if near(mass,i,j) == True:
mass1[i][j]=1
print("case1")
if mass[i][j] == 1:
if (near(mass,i,j)==False):
mass1[i][j]=0
print("case 2")
if (near(mass,i,j)==False):
mass1[i][j]=0
print("case 3")
for i in range(len(mass1)-1):
for j in range(len(mass1[i])-1):
if mass1[i][j] == 1:
p.draw.rect(screen, (WHITE), Rect((j*10,i*10), (10,10)))
else:
p.draw.rect(screen, (BLACK), Rect((j*10,i*10), (10,10)))
mass=mass1
def near(mass,i,j):
counter = 0
if mass[i][j+1]==1:
counter+=1
if mass[i][j-1]==1:
counter+=1
if mass[i+1][j]==1:
counter+=1
if mass[i-1][j]==1:
counter+=1
if mass[i+1][j+1]==1:
counter+=1
if mass[i-1][j+1]==1:
counter+=1
if mass[i+1][j-1]==1:
counter+=1
if mass[i-1][j-1] == 1:
counter+=1
if counter<2 or counter == 0:
return False
if counter > 3:
return False
if counter == 3:
return True
log 重复每个圆圈
我不擅长 python 所以我觉得这段代码很可怕:) 我非常感谢任何建议
【问题讨论】:
-
还有另一个规则,如果
no.of.neibours==2那么单元格会存活到下一次迭代,但我无法在你的函数中看到该条件near() -
@Hariharan 在那种情况下,它只是存在于“质量”中,没有任何变化
-
@Rabbid76 我应该试试这个,ty
-
@Rabbid76 我有 2 个列表“mass”和“mass1”,用于检查和绘图的 mass 和包含新值的 mass1,在圆圈之后“mass”采用“mass1”值
-
@Rabbid76 我更改了 mass1 以计算邻居数量,并且有效。太感谢了!