Você trabalha em uma empresa que faz um jogo multiplayer online chamado Lexiconia.
Para jogar, cada pessoa recebe 13 letras, que precisa reorganizar para formar palavras. Letras diferentes valem pontos diferentes, já que é mais fácil formar palavras com algumas letras do que com outras.
O jogo foi lançado originalmente em inglês, mas faz muito sucesso, e agora a empresa quer expandir para outros idiomas também.
Idiomas diferentes precisam ter valores de pontos diferentes para as letras. Os valores de pontos são determinados pela frequência com que as letras são usadas, em comparação com as outras letras daquele idioma.
Por exemplo, a letra 'C' é bem comum em inglês e vale só 3 pontos. Mas em norueguês é uma letra muito rara e vale 10 pontos.
Para facilitar a adição de novos idiomas, sua equipe precisa mudar a forma como as letras e seus valores de pontos são armazenados no jogo.
Sua tarefa é mudar o formato dos dados das letras e dos valores em pontos delas no jogo.
Atualmente, as letras ficam armazenadas em grupos com base na pontuação delas, em um mapeamento de um para muitos.
Isso precisa mudar para armazenar cada letra individualmente com a pontuação dela, em um mapeamento de um para um.
Como parte dessa mudança, a equipe também decidiu deixar as letras em minúsculas em vez de maiúsculas.
Se você quiser ver como os dados eram estruturados antes e como eles precisam mudar, dê uma olhada nos exemplos na suíte de testes.
Crie sua conta no Exercism para aprender e dominar Ruby com 21 conceitos121 exercícios e mentoria humana de verdade, tudo de graça.