如果我的解释不够连贯,我提前道歉。我对python和代码还不熟悉。我目前正在尝试创建一个Pokemon程序,允许2个用户互相攻击。moveList
是一个全局列表,包含游戏中所有可能的移动。
x
-存储pokemon移动的索引的文件。pokeData.loadMoves
在每个pokemon中加载一个预先存在的move数组,其中包含4个move
对象。当我第一次加入阿卡宁的4个动作时,它是好的。然而,当我加上埃维的动作,它重写了阿卡宁的动作。我已经花了大约40分钟试图弥补这一点,但毫无结果。你知道吗
分离对象:
P1 = None
P2 = None
loadGame()
P1 = inputPokemon('player1')
P2 = inputPokemon('player2')
功能:
for x in file.readlines():
x = x.split(' ')
if(x[0].strip().lower() == string):
i =int(x[1])-1
j =int(x[2])-1
k =int(x[3])-1
l =int(x[4])-1
if(second == True):
print("Arcanine's moves before loading eevee")
for x in range(4):
print(P1.move[x].name)
pokeData.loadMoves(moveList[i],moveList[j],moveList[k],moveList[l])
print("Load %s's moves " %x)
if(second == True):
print("Arcanine's moves after loading eevee")
for x in range(4):
print(P1.move[x].name)
加载移动:
move=['','','','']
def loadMoves(self, move1, move2, move3, move4):
self.move[0] = move1
self.move[1] = move2
self.move[2] = move3
self.move[3] = move4
输出:
player2, please choose your Pokemon: Eevee
Loading moves for eevee
Arcanine's moves before loading eevee
['takedown']
['growl']
['flamethrower']
['confuseray']
Load 3's moves
Arcanine's moves after loading eevee
['watergun']
['doubleteam']
['shockwave']
['tackle']
罪魁祸首是类变量
move
。将该列表设置为类变量意味着所有实例都将指向同一列表对象。考虑以下几点:您应该考虑在类的实例上设置
move
,即在类的__init__
中。因此,列表绑定到每个实例,而不是类本身:相关问题 更多 >
编程相关推荐