Треки
/
JavaScript
JavaScript
/
Вправи
/
Капітанський журнал
Капітанський журнал

Капітанський журнал

Навчальна вправа

Вступ

Багатьом програмам потрібні (псевдо)випадкові значення, щоб імітувати події реального світу.

Ось кілька звичних і знайомих прикладів:

  • Підкидання монети: випадкове значення з ('H', 'T').
  • Кидання грального кубика: випадкове ціле число від 1 до 6.
  • Перемішування колоди карт: випадковий порядок масиву карт.
  • Створення дерев і кущів у симуляції тривимірної графіки.

Генерування справді випадкових значень на компʼютері - напрочуд складна технічна задача, саме тому існують також «псевдовипадкові» генератори.

Caution

Функцію Math.random() НЕ можна використовувати в застосунках, повʼязаних із безпекою та криптографією! Щоб дізнатися більше, заверште навчальну вправу (вправи) про цю концепцію

Генерування випадкових чисел

У JavaScript ми можемо генерувати псевдовипадкові числа за допомогою функції Math.random(). Вона повертає псевдовипадкове число з плаваючою комою від 0 (включно) до 1 (не включно).

Вказівки

Мері дуже любить серіал Star Trek: The Next Generation. Вона часто грає в настільні рольові ігри, де разом із друзями перевтілюється в екіпаж зорельота «Ентерпрайз». Мері грає роль капітана Пікара, а це означає, що їй треба вести капітанський журнал. Їй подобається творча частина гри, але не подобається генерувати випадкові дані на ходу.

Допоможіть Мері: створіть генератори випадкових даних, які часто трапляються в капітанському журналі.

1. Згенерувати випадковий реєстраційний номер зорельота

«Ентерпрайз» (реєстраційний номер NCC-1701) не єдиний зореліт у космосі! Коли він зустрічає інший зореліт, Мері треба записати реєстраційний номер цього зорельота.

Реєстраційні номери починаються з префікса «NCC-», а далі йде число від 1000 до 9999 (включно).

Реалізуйте функцію randomShipRegistryNumber(), яка повертає випадковий реєстраційний номер зорельота.

randomShipRegistryNumber();
// => "NCC-1947"

2. Згенерувати випадкову зоряну дату

Який сенс у журналі, якщо в ньому немає дат?

Зоряна дата - це число з плаваючою комою. Пригоди зорельота «Ентерпрайз» у першому сезоні The Next Generation відбуваються між зоряними датами 41000.0 і 42000.0. «4» позначає 24-те століття, а «1» - перший сезон.

Реалізуйте функцію randomStardate, яка повертає число з плаваючою комою від 41000.0 (включно) до 42000.0 (не включно).

randomStardate();
// => 41458.15721310934

3. Згенерувати випадкову планету

Під час мандрівок зореліт «Ентерпрайз» зустрічає багато планет. Планети у всесвіті Star Trek поділяються на категорії за їхніми властивостями. Наприклад, Земля належить до планет класу M. Усі можливі класи планет: D, H, J, K, L, M, N, R, T і Y.

Реалізуйте функцію randomPlanetClass(). Вона має повертати один із класів планет навмання.

randomPlanetClass();
// => "K"
Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
JavaScript Exercism

Час розпочати Капітанський журнал?

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