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

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

Середня

Вступ

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

Вказівки

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

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

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

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

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

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

Три приклади

Портретний

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

Пазл 2 на 3

Квадратний

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

Пазл 3 на 3

Альбомний

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

Пазл 4 на 3

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

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

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