Tu mejor amigo ha empezado a coleccionar puzles y quiere crear un catálogo detallado de su colección: registrar información como el número total de piezas, el número de filas y columnas, el número de piezas del borde y del interior, la relación de aspecto y el formato del puzle. Incluso combinando tus poderes con los de tu amigo, se tarda varias horas en resolver un solo puzle de mil piezas, y luego aún tienes que contar las filas y las columnas y calcular a mano los números restantes. Los puzles aún más grandes, con miles de piezas, ahora parecen bastante abrumadores. «¡Tiene que haber una forma mejor!», exclamas y te sientas delante de tu ordenador para resolver el problema.
Dada información parcial sobre un puzle, añade las piezas que faltan.
Si la información no es suficiente para completar los detalles, o si las partes proporcionadas se contradicen, hay que avisar al usuario.
La información completa sobre el puzle consta de las siguientes partes:
pieces: Número total de piezasborder: Número de piezas de bordeinside: Número de piezas interiores (no de borde)rows: Número de filascolumns: Número de columnasaspectRatio: Relación de aspecto entre columnas y filasformat: Formato del puzle, que puede ser portrait, square o landscape
Para este ejercicio, puedes suponer que las piezas son cuadradas, de modo que el formato se puede derivar de la relación de aspecto:
portrait
square
landscape
Un puzle vertical de 6 piezas, todas ellas piezas de borde y ninguna interior. Tiene 2 columnas y 3 filas. La relación de aspecto es 0,666666... (2/3).
Un puzle cuadrado de 9 piezas, todas ellas piezas de borde excepto la del centro, que es una pieza interior. Tiene 3 columnas y 3 filas. La relación de aspecto es 1,0 (3/3).
Un puzle horizontal de 12 piezas, 10 de las cuales son piezas de borde y 2 son interiores. Tiene 4 columnas y 3 filas. La relación de aspecto es 1,333333... (4/3).
Regístrate en Exercism para aprender y dominar Wren con 117 ejercicios y mentoría humana real, todo gratis.