class Game: _instance = None def __new__(cls, *args, **kwargs): if not Game._instance: Game._instance = object.__new__(cls) return Game._instance def __init__(self): self.entity_manager = EntityManager() self.message_dispatcher = MessageDispatcher() def add_entity(self, entity): self.entity_manager.register_entity(entity) entity.game = self def update(self): for entity in self.entity_manager: entity.update() self.message_dispatcher.dispatch_delayed_messages()
import time from sys import stdin import ids from barfly import BarFly from entities import EntityManager from messages import MessageDispatcher from miner import Miner from minerswife import MinersWife entities = EntityManager() messages = MessageDispatcher(entities) entities.register(Miner(messages, ids.MINER)) entities.register(MinersWife(messages, ids.ELSA)) entities.register(BarFly(messages, ids.BAR_FLY)) while True: for i in range(10): [e.update() for e in entities] time.sleep(1) messages.dispatch_delayed_messages() print("Enter to continue") stdin.readline()