Ton meilleur ami s'est mis à collectionner les puzzles et veut constituer un catalogue détaillé de sa collection, en y consignant des informations comme le nombre total de pièces, le nombre de lignes et de colonnes, le nombre de pièces de bord et de pièces intérieures, le rapport d'aspect et le format du puzzle. Même en unissant tes forces et les siennes, il faut plusieurs heures pour venir à bout d'un seul puzzle de mille pièces, et il reste ensuite à compter les lignes et les colonnes et à calculer les autres nombres à la main. Les puzzles encore plus gros, avec leurs milliers de pièces, semblent à présent bien intimidants. « Il doit bien y avoir une meilleure solution ! » t'exclames-tu, avant de t'asseoir devant ton ordinateur pour résoudre le problème.
À partir d'informations partielles sur un puzzle, ajoute les pièces manquantes.
Si les informations sont insuffisantes pour compléter les détails, ou si certaines parties fournies se contredisent, il faut en informer l'utilisateur.
Les informations complètes sur le puzzle comprennent les éléments suivants :
pieces : nombre total de piècesborder : nombre de pièces de bordinside : nombre de pièces intérieures (hors bord)rows : nombre de lignescolumns : nombre de colonnesaspectRatio : rapport d'aspect entre les colonnes et les lignesformat : format du puzzle, qui peut être portrait, square ou landscape
Dans cet exercice, tu peux supposer que les pièces sont carrées, ce qui permet de déduire le format à partir du rapport d'aspect :
portrait
square
landscape
Un puzzle au format portrait de 6 pièces, dont toutes sont des pièces de bord et aucune n'est une pièce intérieure. Il compte 2 colonnes et 3 lignes, pour un rapport d'aspect de 0,666666... (2/3).
Un puzzle au format square de 9 pièces, dont toutes sont des pièces de bord sauf celle du centre, qui est une pièce intérieure. Il compte 3 colonnes et 3 lignes, pour un rapport d'aspect de 1,0 (3/3).
Un puzzle au format landscape de 12 pièces, dont 10 sont des pièces de bord et 2 sont des pièces intérieures. Il compte 4 colonnes et 3 lignes, pour un rapport d'aspect de 1,333333... (4/3).
Inscris-toi sur Exercism pour apprendre et maîtriser Zig avec 104 exercices, et un vrai mentorat humain, le tout gratuitement.