text: 
  
  """
  Você criará uma classe CARRO que vai possuir
  dois atributos compostos por outras 2 classes:
  
  1 - Motor
  2 - Direção
  
  O Motor será responsável por controlar a velocidade.
  Ele oferecerá os seguintes atributos:
  
  1 - Atributo de dado velocidade.
  2 - Método aceletar, que deverá incrementar a velocidade de 1 unidade.
  3 - Método frear, deverá decrementar a velocidade em 2 unidades.
  
  A Direção será responsável por controlar a direção.
  Ela oferecerá os atributos:
  
  1 - Valor da direção com valores possíveis: Norte, Sul, Leste, Oeste.
  2 - Método girar_a_direita
  3 - Método girar_a_esquerda
  
      N
   O     L
      S
  
      Exemplo:
      >>> #Testando o motor
      >>> motor = Motor()
      >>> motor.velocidade
      0
      >>> motor.acelerar()
      >>> motor.velocidade
      1
      >>> motor.acelerar()
      >>> motor.velocidade
      2
      >>> motor.acelerar()
      >>> motor.velocidade
      3
      >>> motor.frear()
      >>> motor.velocidade
      1
      >>> motor.frear()
      >>> motor.velocidade
      0
      >>> #Testando Direção
      >>> direcao = Direcao()
      >>> direcao.valor
      'Norte'
      >>> direcao.girar_a_direita()
      >>> direcao.valor
      'Leste'
      >>> direcao.girar_a_direita()
      >>> direcao.valor
      'Sul'
      >>> direcao.girar_a_direita()
      >>> direcao.valor
      'Oeste'
      >>> direcao.girar_a_direita()
      >>> direcao.valor
      'Norte'
      >>> direcao.girar_a_esquerda()
      >>> direcao.valor
      'Oeste'
      >>> direcao.girar_a_esquerda()
      >>> direcao.valor
      'Sul'
      >>> direcao.girar_a_esquerda()
      >>> direcao.valor
      'Leste'
      >>> direcao.girar_a_esquerda()
      >>> direcao.valor
      'Norte'
      >>> carro = Carro(direcao, motor)
      >>> carro.calcular_velocidade()
      0
      >>> carro.acelerar()
      >>> carro.calcular_velocidade()
      1
      >>> carro.acelerar()
      >>> carro.calcular_velocidade()
      2
      >>> carro.frear()
      >>> carro.calcular_velocidade()
      0
      >>> carro.calcular_direcao()
      'Norte'
      >>> carro.girar_a_direita()
      >>> carro.calcular_direcao()
      'Leste'
      >>> carro.girar_a_esquerda()
      >>> carro.calcular_direcao()
      'Norte'
      >>> carro.girar_a_esquerda()
      >>> carro.calcular_direcao()
      'Oeste'
  """
  
  
  class Carro:
      def __init__(self, direcao, motor):
          self.motor = motor
          self.direcao = direcao
  
      def calcular_velocidade(self):
          return self.motor.velocidade
  
      def acelerar(self):
          self.motor.acelerar()
  
      def frear(self):
          self.motor.frear()
  
      def calcular_direcao(self):
          return self.direcao.valor
  
      def girar_a_direita(self):
          self.direcao.girar_a_direita()
  
      def girar_a_esquerda(self):
          self.direcao.girar_a_esquerda()
  
  
  NORTE = 'Norte'
  SUL = 'Sul'
  LESTE = 'Leste'
  OESTE = 'Oeste'
  
  
  class Direcao(object):
      rotacao_a_direita_dct = {
          NORTE: LESTE, LESTE: SUL, SUL: OESTE, OESTE: NORTE
      }
      rotacao_a_esquerda_dct = {
          NORTE: OESTE, LESTE: NORTE, SUL: LESTE, OESTE: SUL
      }
  
      def __init__(self):
          self.valor = NORTE
  
      def girar_a_direita(self):
          self.valor = self.rotacao_a_direita_dct[self.valor]
      def girar_a_esquerda(self):
          self.valor = self.rotacao_a_esquerda_dct[self.valor]
  
  
  class Motor:
      def __init__(self):
          self.velocidade = 0
  
      def acelerar(self):
         self.velocidade += 1
  
      def frear(self):
          self.velocidade -= 2
          self.velocidade = max(0, self.velocidade)
  
  
  
  