class ControloDelib(Controlo): def __init__(self): self._desejos = [] self._crencas = ModeloMundo() self._intencoes = [] def _processar(self, percepcao): self._actualizar_crencas(percepcao) if self._reconsiderar(): self._deliberar() self._planear() return self._executar() def _actualizar_crencas(self, percepcao): self._crencas._actualizar(percepcao) def reconsiderar(self): Abstract def _deliberar(self): self._desejos = self._geraropcoes() if self._desejos: self._intencoes = self._seleccionaropcoes() else: self._intencoes = [] def planear(self): Abstract def executar(self): Abstract def _geraropcoes(self): self._desejos = self._crencas._pos_alvos() return self._desejos def _seleccionaropcoes(self): return self._desejos