Передача списка и объекта в качестве параметров - PullRequest
0 голосов
/ 15 марта 2020

Я перевожу код 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 (), потому что я полагаю, что монстры - это просто ссылка на список, а не сам объект? Как мне это исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...