O teu melhor amigo começou a colecionar puzzles e quer criar um catálogo detalhado da coleção, com informação como o número total de peças, o número de linhas e colunas, o número de peças de borda e interiores, a proporção e o formato do puzzle. Mesmo com os teus poderes combinados, são precisas várias horas para resolver um único puzzle de mil peças, e depois ainda tens de contar as linhas e as colunas e calcular os restantes números à mão. Os puzzles ainda maiores, com milhares de peças, parecem agora bastante assustadores. «Tem de haver uma forma melhor!», exclamas, e sentas-te em frente do teu computador para resolver o problema.
Dada informação parcial sobre um puzzle, acrescenta as peças que faltam.
Se a informação não for suficiente para completar os detalhes, ou se as partes dadas se contradisserem, o utilizador deve ser notificado.
A informação completa sobre o puzzle contém as seguintes partes:
pieces: Número total de peçasborder: Número de peças de bordainside: Número de peças interiores (não de borda)rows: Número de linhascolumns: Número de colunasaspectRatio: Rácio de aspeto entre as colunas e as linhasformat: Formato do puzzle, que pode ser portrait, square ou landscape
Para este exercício, podes assumir que as peças são quadradas, de modo que o formato pode ser derivado do rácio de aspeto:
portrait
square
landscape
Um puzzle em formato retrato com 6 peças, todas de borda e nenhuma interior. Tem 2 colunas e 3 linhas. O rácio de aspeto é 0,666666... (2/3).
Um puzzle em formato quadrado com 9 peças, todas de borda exceto a do centro, que é interior. Tem 3 colunas e 3 linhas. O rácio de aspeto é 1,0 (3/3).
Um puzzle em formato paisagem com 12 peças, 10 de borda e 2 interiores. Tem 4 colunas e 3 linhas. O rácio de aspeto é 1,333333... (4/3).
Inscreve-te no Exercism para aprenderes e dominares Wren com 117 exercícios, e mentoria humana real, tudo grátis.