Tu mejor amigo ha empezado a coleccionar rompecabezas y quiere armar un catálogo detallado de su colección, donde registre información como el número total de piezas, la cantidad de filas y columnas, el número de piezas del borde y del interior, la relación de aspecto y el formato del rompecabezas. Incluso con tus poderes combinados, resolver un solo rompecabezas de mil piezas toma varias horas, y luego todavía tienes que contar las filas y las columnas y calcular a mano los números que faltan. Los rompecabezas aún más grandes, de miles de piezas, ahora sí que parecen intimidantes. «¡Tiene que haber una forma mejor!», exclamas, y te sientas frente a tu computadora para resolver el problema.
Dada información parcial sobre un rompecabezas, agrega las piezas que faltan.
Si la información no es suficiente para completar los detalles, o si las partes proporcionadas se contradicen, se debe notificar al usuario.
La información completa sobre el rompecabezas contiene las siguientes partes:
pieces: Número total de piezasborder: Número de piezas del bordeinside: Número de piezas interiores (que no son del borde)rows: Número de filascolumns: Número de columnasaspectRatio: Relación de aspecto entre columnas y filasformat: Formato del rompecabezas, que puede ser portrait, square o landscape
Para este ejercicio, puedes asumir que las piezas son cuadradas, de modo que el formato se puede derivar de la relación de aspecto:
portrait
square
landscape
Un rompecabezas vertical de 6 piezas, todas las cuales son piezas del borde y ninguna es una pieza interior. Tiene 2 columnas y 3 filas. La relación de aspecto es 0.666666... (2/3).
Un rompecabezas cuadrado de 9 piezas, todas las cuales son piezas del 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 rompecabezas horizontal de 12 piezas, 10 de las cuales son piezas del borde y 2 son piezas 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 PowerShell con 136 ejercicios y mentoría humana real, todo gratis.