<p>我有一个名为<code>Maps</code>的类,我从中创建了两个列表<code>l</code>和<code>lm</code>。<code>l</code>应该随着某个事件而改变,但是<code>lm</code>(内存列表)应该保持原样。你知道吗</p>
<p>有没有办法防止我的列表类发生变化?
打你!你知道吗</p>
<pre><code>class Maps(list):
def createInitial(self, lvlC):
#self.extend(mapDico[lvlC.value])
#get (i,j) coords of "i" in l
def findI(self):
for ordinate, abscissa in enumerate(self):
try:
return (ordinate, abscissa.index("i"))
except:
pass
#get number of "x" in lm
def countX(self):
nbX=0
for rows in range(len(self)):
for elements in range(len(self)):
if self[rows][elements]=="x":
nbX+=1
return nbX
#load next map
def nextLevel(self, nxtL):
del self[:]
self.extend(mapDico[nxtL])
lvlC=Counters()
lm=Maps()
lm.createInitial(lvlC)
l=Maps()
l.createInitial(lvlC)
</code></pre>
<p>这里开始“控制器”文件:</p>
<pre><code> if goalC.value>0 and goalC.value==lm.countX():
lvlC.increment(1)
#lvl.config(text=" | Level Complete ", bg="limegreen")
l.nextLevel(lvlC.value)
lm.nextLevel(lvlC.value)
muvC.reinitialize()
nbMuv.config(text="Moves: "+str(muvC.value))
pushC.reinitialize()
nbPush.config(text=" | Pushes: "+str(pushC.value))
goalC.reinitialize()
nbGoal.config(text=" | Goals: "+str(goalC.value))
lvl.config(text=" | Current level: "+str(lvlC.value), bg="darkgray")
print("New moves",muvC.value, "New pushes",pushC.value, "New level",lvlC.value)
print("New countX: ", lm.countX())
print("New goals: ", goalC.value)
for i in l:
print(i)
for i in lm:
print(i)
can.delete("all")
for i in r:
for j in r:
time.sleep(.005)
can.create_rectangle(j*n, i*n, j*n+n, i*n+n, fill=fillSquare(i,j, l), outline="darkslategray")
</code></pre>