Я перевожу код java в python, но java использует массив, а python использует список. Я пытаюсь передать список в качестве параметра в Python, который также должен передавать объект в том же параметре в addObject ().
Объявленный список объектов monsters = [] в SaveTheTribe.py
class SaveTheTribe():
def __init__(self):
self.map = Map()
self.soldier = Soldier()
self.spring = Spring()
self.monsters = []
self.gameEnabled = True
def initialize(self):
self.monsters.append(Monster(1, random.randint(0, 4)*10 + 30))
self.monsters[0].setPos(4,1)
self.monsters[0].addDropItem(2)
self.monsters[0].addDropItem(3)
...
self.monsters.append(Monster(7, random.randint(0, 4) * 10 + 30))
self.monsters[6].setPos(4, 7)
self.monsters[6].addDropItem(-1)
self.monsters[6].addHint(6)
self.map.addObject(self.monsters)
self.soldier.setPos(1,1)
self.soldier.addKey(1)
self.soldier.addKey(5)
self.map.addObject(self.soldier)
self.spring.setPos(7,4)
self.map.addObject(self.spring)
Нужно передать списки монстров и солдат и весенние объекты
class Map():
def __init__(self):
self.cells = [[None]*7]*7
for i in range(7):
for j in range(7):
self.cells[i][j] = Cell()
self.occupiedObject = None
def addObject(self, object):
pos = Pos()
if (isinstance(object, Monster)):
print("is of monster instance")
for monster in object:
pos = monster.getPos()
self.cells[pos.getRow()-1][pos.getColumn()-1].setOccupiedObject(monster)
else:
if isinstance(object, Soldier):
print("is of soldier instance")
pos = object.getPos()
elif isinstance(object, Spring):
print("is of spring instance")
pos = object.getPos()
if (pos !=None):
self.cells[pos.getRow()-1][pos.getColumn()-1].setOccupiedObject(object)
В данный момент список монстров не удовлетворяет условию if в addObjects (), потому что я полагаю, что монстры - это просто ссылка на список, а не сам объект? Как мне это исправить?