Nomes de aves para códigos de quatro letras

No mundo da observação de aves, existem códigos de quatro letras para os nomes comuns das aves. Esses códigos são criados por algumas regras simples:

  • Se o nome da ave tiver apenas uma palavra, o código usa as quatro primeiras letras dessa palavra.
  • Se o nome for composto por duas palavras, o código usa as duas primeiras letras de cada palavra.
  • Se o nome for composto por três palavras, o código é criado usando a primeira letra das duas primeiras palavras e as duas primeiras letras da terceira palavra.
  • Se o nome tiver quatro palavras, o código usa a primeira letra de todas as palavras.

Existem outras formas de criar códigos, mas este desafio usará apenas as quatro regras listadas acima.

Neste desafio, você escreverá uma função que recebe uma lista de strings com nomes comuns de aves e cria os códigos para esses nomes com base nas regras acima. A função retornará uma lista de códigos na mesma ordem em que os nomes de entrada foram apresentados.

Exemplos

bird_code(["Black-Capped Chickadee", "Common Tern"]) ➞ ["BCCH", "COTE"]

bird_code(["American Redstart", "Northern Cardinal"]) ➞ ["AMRE","NOCA"]

bird_code(["Bobolink", "American White Pelican"]) ➞ ["BOBO","AWPE"]

Observações

  • Os códigos de quatro letras na lista retornada devem estar em LETRAS MAIÚSCULAS.
  • Se um nome comum tiver um hífen/traço, ele deverá ser considerado um espaço.