#python #python-3.x #python-3.6
#python #python-3.x #python-3.6
Вопрос:
Я создаю игру, в которой я могу собирать ресурсы или строить, когда я отправляю рабочих, но я не могу придумать способ получить эти ресурсы или закончить строительство в зависимости от хода и времени (ходов), необходимого для завершения этих действий.
Я уже создал рабочий класс, и у него есть метод для сбора, и он выдает случайное значение, которое я сохраняю в классе Player. Кроме того, мой игровой класс отслеживает ход, в котором я и компьютеры.
class Game:
def __init__(self, player = None):
self.player = player
self.turn = 1
class Player:
def __init__(self):
self.workers = [Worker(), Worker(), Worker()]
self.resourcers = 0
class Worker:
def __init__(self):
self.hp = 100
def gather(self):
return randint(MIN_CANTIDAD_RECURSO, MAX_CANTIDAD_RECURSO)
player = Player()
game = Game()
game.player = player
for worker in player.workers:
player.resources = worker.gather
game.turn =1
Сбор должен давать результат в следующем ходу, а сборка должна давать его в зависимости от здания.
Ответ №1:
В общем смысле, вы сохраняете нужные вам значения в соответствующем объекте и передаете их в качестве параметров любому методу, требующему эти значения. Например, вам нужно будет сохранить продолжительность хода действия в возвращаемом значении этого действия, например, в class Worker
def gather(self):
# Some code that determines gather_value and duration...
return [gather_value, duration]
и тогда использование ресурсов будет выглядеть примерно так
def use_gather(gather, turn): # Pass in (return value from gather, game.turn)
# Use parameters...
С таким расплывчатым вопросом трудно сказать что-либо еще.
Комментарии:
1. Я хотел бы сохранить данные о ожидающих действиях после выполнения действия в этом формате [‘gather’, ‘gold’, 1], где последнее значение — это ход, в котором я выполнил действие. Поэтому, когда состояние игры (ход) меняется, я хотел бы получить значение этого действия. По сути, я хочу соединить ход, когда я выполнял функцию, и ход игры.