私の説明が十分にコヒーレントでない場合は、事前にお詫びします。私はPythonとコーディングに新しいです。私は現在、2人のユーザーが互いに戦うことを可能にするポケモンプログラムを作成しようとしています。 moveList
は、ゲーム内のすべての可能な移動を含むグローバルリストです。 x
- どのインデックスがどのポケモンの動きに対応するかを格納するファイルです。 pokeData.loadMoves
は、各ポケモンの内部に4 move
オブジェクトを持つ既存の移動配列をロードします。私が最初にArcanineの4つの動きを加えると、それは問題ありません。しかし、私がeeveeの動きを加えると、Arcanineの動きに書き換えられます。私はすでに約40分を費やしてこれを補うことは無駄にしています。Python:1つのオブジェクトのデータを変更すると、他のオブジェクトが変更されます
別のオブジェクト:
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)
loadMoves:
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']
2つの変数が最も可能性が高い同じオブジェクト –
を参照している(pokeDataArgがP1である)場合、私はすでにチェックしようとした第2のデータ入力のためにfalseを返します –
pokeDataとは何ですか?コードを提供した 'function'は何ですか? – sepulchered