Треки
/
Zig
Zig
/
Вправи
/
Складаємо докупи
Складаємо докупи

Складаємо докупи

Середня

Вступ

Наш найкращий друг почав збирати пазли й хоче створити докладний каталог своєї колекції, записуючи таку інформацію, як-от загальна кількість деталей, кількість рядків і стовпців, кількість крайових і внутрішніх деталей, співвідношення сторін і формат пазла. Навіть якщо поєднати наші зусилля, на складання одного пазла на тисячу деталей іде кілька годин, а потім нам усе ще доведеться вручну порахувати рядки та стовпці й обчислити решту чисел. Ще більші пазли з тисячами деталей тепер здаються доволі страшними. Ми вигукуємо: «Має бути кращий спосіб!» і сідаємо за компʼютер, щоб розвʼязати цю проблему.

Вказівки

Маючи часткову інформацію про пазл, додайте деталі, яких бракує.

Якщо інформації недостатньо, щоб відновити всі деталі, або якщо надані частини інформації суперечать одна одній, потрібно повідомити користувача.

Повна інформація про пазл містить такі частини:

  • pieces: загальна кількість деталей
  • border: кількість крайових деталей
  • inside: кількість внутрішніх (не крайових) деталей
  • rows: кількість рядків
  • columns: кількість стовпців
  • aspectRatio: співвідношення сторін (стовпців до рядків)
  • format: формат пазла, який може бути portrait, square або landscape

У цій вправі вважаємо, що деталі квадратні, тож формат можна вивести зі співвідношення сторін:

  • Якщо співвідношення сторін менше за 1, це portrait
  • Якщо воно дорівнює 1, це square
  • Якщо воно більше за 1, це landscape

Три приклади

Портретний формат

Портретний пазл із 6 деталей, усі вони крайові, а внутрішніх немає. У ньому 2 стовпці та 3 рядки. Співвідношення сторін дорівнює 0.666666... (2/3).

Пазл 2 на 3

Квадратний формат

Квадратний пазл із 9 деталей, усі з них крайові, крім однієї в центрі, яка є внутрішньою. У ньому 3 стовпці та 3 рядки. Співвідношення сторін дорівнює 1.0 (3/3).

Пазл 3 на 3

Ландшафтний формат

Ландшафтний пазл із 12 деталей, 10 з яких крайові, а 2 внутрішні. У ньому 4 стовпці та 3 рядки. Співвідношення сторін дорівнює 1.333333... (4/3).

Пазл 4 на 3

Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
Zig Exercism

Час розпочати Складаємо докупи?

Зареєструйтеся на Exercism, щоб вивчати й опановувати Zig, а також 104 вправи та справжнє наставництво від людей, і все це безкоштовно.