Извините за общее название, если у кого-то после прочтения ниже есть лучший, пожалуйста, измените его.
Я реализую популярную настольную игру на python.Одна особенность игры включает в себя пять стопок жетонов, из которых игрок может взять.У меня возникают проблемы с поиском хорошего способа представить это в коде.Моя текущая реализация выглядит примерно так (упрощенно для поста):
class Game:
def __init__(self):
...
self.tokens = num_tokens
class Player:
def take_token(self, game):
game.tokens[token] -= 1
self.tokens[token] += 1
return game # the updated game instance
Мне это явно кажется ужасной идеей, потому что я передаю игровое состояние в Player
только для того, чтобы манипулировать ими затем отослать это назад ... должен быть намного более чистый способ представить это.Проблема в том, что мне нравится хранить данные под self
для каждого объекта, так как это кажется хорошим способом привязать данные к объекту.Может ли кто-нибудь помочь мне определить правильный шаблон дизайна здесь?