diff --git a/src/scratch/asteroids/asteroids_ua.md b/src/scratch/asteroids/asteroids_ua.md new file mode 100644 index 0000000000..06c82f9605 --- /dev/null +++ b/src/scratch/asteroids/asteroids_ua.md @@ -0,0 +1,184 @@ +--- +title: Астероїди +level: 4 +author: 'Geir Arne Hjelle' +translator: 'Анатолій Пилипенко' +language: ua +--- + + +# Вступ {.intro} + +Наприкінці 1970-х Atari випустила дві гри, в яких потрібно було керувати космічним кораблем. Першою була "Місячний модуль", але її витіснила "Астероїди", яку Atari випустила кількома місяцями пізніше. Насправді, ігри були настільки схожі, що змогли повторно використати багато технологій. Ми збираємося зробити те ж саме! Отже, перед тим, як розпочати цей проект, вам потрібно буде створити "Місячний модуль". У "Астероїди" ваша мета - захистити свій космічний корабель від астероїдів, розстрілюючи їх на шматки. + +![Illustrasjon av et ferdig astroide spill](asteroids_ua.png) + + +# Огляд проєкту {.activity} + +*Більшу частину коду для "Астероїди" ви будете писати самостійно (а дещо ви вже написали). У "Астероїди" ми розглянемо деякі способи повторного використання коду у Scratch.* + +## План {.check} + +- [ ] Ще один літаючий космічний корабель + +- [ ] Космічний корабель вміє стріляти! + +- [ ] Обережно, астероїди! + +- [ ] .. та інші виклики + + +# Крок 1: Ще один літаючий космічний корабель {.activity} + +*У "Місячний модуль" ми зробили чудовий космічний корабель. Тепер ми побачимо, як ми можемо використовувати той самий космічний корабель у цьому проєкті.* + +Ви, мабуть, знаєте, що можете реміксувати чужі Scratch-проєкти. Це дає вам можливість створити власну версію того, що зробили інші, і, зокрема, ви можете повторно використовувати код, написаний іншими раніше. + +Давайте розглянемо трюк для повторного використання коду, який ми створили в минулому. Використовуючи `Сховок`, ви можете копіювати фігури та код між різними проєктами. Тому спочатку ми скопіюємо космічний корабель, який ми створили у "Місячний модуль". + +## Контрольний список {.check} + +- [ ] Відкрийте свій проєкт "Місячний модуль". +Зверніть увагу, що в самому низу екрана написано `Сховок`. Натисніть на нього, і перед вами відкриється трохи більше поле. + +- [ ] Перетягніть фігуру космічного корабля до відкритого сховку. Копія вашої фігурки космічного корабля залишиться в сховку. + +- [ ] Створіть новий проєкт, вибравши команду `Новий` в меню `Файл`. Видаліть символ кота і додайте зоряне тло. + +- [ ] Тепер ви можете перетягнути репліку космічного корабля з сховку у вікно персонажа нового проєкту. + + ![Bilde av hvordan dra romskip-kopien fra ryggsekken i Scratch](ryggsekk_ua.png) + +Тепер ви побачите, що всі костюми, всі змінні і всі скрипти для космічного корабля були скопійовані. Ви можете трохи навести лад, видаливши скрипти, які не мають нічого спільного з керуванням космічним кораблем, наприклад, якщо у вас є скрипт `Перевірте посадку`, то він нам не потрібен у цій грі. + +- [ ] Розмістіть на сцені сценарій, який надсилає повідомлення космічному кораблю про початок польоту після натискання на зелений прапорець. Спробуйте свою гру. Чи зможете ви керувати космічним кораблем? + +- [ ] Ми збираємося внести невеликі зміни в поведінку космічного апарату. Астероїди знаходяться далеко в космосі, де немає помітної гравітації. Тому видаліть блок, який моделює гравітацію у вашому циклі `завжди`{.blockcontrol}, +`замінити [швидкістьY v] на (-0.01)`{.b}. + +- [ ] Ми також робимо дещо більшу зміну в грі. Ми хочемо, щоб космос відчувався трохи великим і захаращеним, тому, коли космічний корабель виходить з екрану з одного боку, він з'являється з іншого боку екрану. + +Ми робимо це за допомогою досить простих тестів `якщо`{.blockcontrol}. Потрібно пам'ятати, що координати `x` на екрані знаходяться в діапазоні від `-240` до `240`, а координати `y` від `-180` до `180`. Оскільки Scratch стежить за тим, щоб фігури не виходили повністю за межі екрану, ми зсуваємо їх трохи всередину краю екрану: + + ```blocks + коли я отримую [Нова гра v] + завжди + якщо <(значення x) < [-235]> то + змінити x на (470) + slutt + якщо <(значення x) > [235]> то + змінити x на (-470) + slutt + якщо <(значення y) < [-175]> то + змінити y на (350) + slutt + якщо <(значення y) > [175]> то + змінити y на (-350) + slutt + slutt + ``` + + +# Крок 2: Космічний апарат може стріляти {.activity} + +*Наш космічний корабель незабаром влетить в астероїдний рій, тому нам потрібно встановити ракети, які зможуть підірвати астероїди.* + +## Контрольний список {.check} + +- [ ] Створіть нового персонажа, якого ви назвете `Постріл`. Ви можете намалювати його самостійно. Ви також можете знайти фігури у вигляді куль, які можна використати як кулі. Використовуйте блок +`задати розмір`{.blocklooks}, щоб зробити фігуру потрібного розміру. Також додайте блок `сховати`{.blocklooks}, щоб приховати фігуру. + +- [ ] Ми хочемо використовувати клони, щоб зробити більше пострілів. Спочатку нам потрібен код, який створює новий клон пострілу при натисканні клавіші пробілу: + +Створіть скрипт для `Постріл` персонажа, який запускається на повідомленні `Нова гра`. Скрипт може складатися з `завжди`{.blockcontrol} циклу, де перевіряється, чи натиснута клавіша пробілу. Якщо потрібно здійснити постріл, спочатку перемістіть постріл до `перейти до`{.blockmotion} місячного модуля, а потім наведіть його в тому ж напрямку, що й місячний модуль. Останнє можна зробити за допомогою комбінації блоків `повернути в напрямку`{.blockmotion}, `напрям з Місячний модуль`{.blocksensing}. Нарешті, `створити клон з мене`{.blockcontrol}. + +- [ ] Щоб переконатися, що при кожному натисканні клавіші пробілу надсилається лише одне повідомлення, ми можемо запустити тест `якщо`{.blockcontrol}, дочекавшись, поки клавішу пробілу знову не буде відпущено. Цей трюк виглядає приблизно так: + + ```blocks + якщо <клавішу [пропуск v] натиснуто?> то + чекати поки <не <клавішу [пропуск v] натиснуто?>> + ... + slutt + ``` + +- [ ] Тепер ми закодуємо поведінку пострілу після того, як він був зроблений. Це може бути досить просто. Коли символ пострілу запускається `коли я стартую як клон`{.blockcontrol}, він повинен з'явитися + `показати`{.blocklooks}, а потім його можна переміщати у циклі, перш ніж він буде видалений. Експериментуйте зі швидкістю та дальністю пострілу, змінюючи кількість повторень циклу та кількість кроків, які персонаж робить всередині циклу. + +- [ ] Нарешті, ми також хочемо, щоб зображення могли зникати з одного боку екрана та з’являтися з іншого. Для цього ми будемо використовувати приблизно такий же код для космічного корабля. + +Щоб копіювати скрипти між фігурами, ви можете використовувати сховок так само, як і раніше. Трохи швидший спосіб - просто перетягнути скрипт, який ви хочете скопіювати, на фігуру, до якої ви хочете скопіювати. + +Скопіюйте код, щоб перемістити з космічного корабля на фігуру `Постріл`. + +- [ ] Ми можемо використовувати цей код як є. Єдина зміна, яку нам потрібно внести, це те, що він повинен починатися з `коли я починаю як клон`{.b} замість `коли я отримую [Нова гра v]`{.b} оскільки така поведінка має застосовуватися до всіх клонів. + +- [ ] Спробуй свою гру. Тепер ви зможете літати в космосі під час стрілянини. + + +# Крок 3: Слідкуйте за астероїдами {.activity} + +*Тоді настав час створити астероїдний рій. Одна з цікавинок гри Астероїди полягає в тому, що при зіткненні астероїди розлітаються на шматки, і вам все одно потрібно стежити за цими меншими астероїдами і стріляти в них. Ми будемо кодувати це за допомогою клонів різних розмірів.* + +## Контрольний список {.check} + +- [ ] Створіть фігуру астероїда. Один із способів зробити це - намалювати нову фігуру за допомогою векторної графіки. Почніть з простого квадрата, а потім за допомогою інструмента `Реформувати` додайте більше кутових точок і перемістіть їх, як показано на малюнку нижче. + + ![Bilde av en astroidefigur i Scratch](flyttpunkt_ua.png) + +- [ ] Також для астероїдів ми будемо використовувати клони. Створіть скрипт, який приховує +`сховати`{.blocklooks} персонажа і створює пару клонів астероїдів у випадкових місцях на екрані, коли він отримує повідомлення `Нова гра`. + +- [ ] Коли фігура запускається як клон `коли я починаю як клон`{.blockcontrol} , ми хочемо, щоб вона спочатку вказувала у випадковому напрямку: + +```blocks + повернути в напрямку (випадкове від (0) до (360)) +``` + +а потім з'являлася `показати`{.blocklooks}. +Потім вона може увійти в `завжди`{.blockcontrol} цикл, який повторюється, поки вона не +`торкається`{.blocksensing} місячного модуля. Усередині циклу ви спочатку дозволяєте астероїду пройти кілька кроків `перемістити на .. кроків`{.blockmotion}. Потім потрібно перевірити, чи `торкається`{.blocksensing} астероїд пострілу. Якщо так, ви можете зробити астероїд меншим за допомогою блоку, подібного до + + ```blocks + задати розмір ((розмір) * (0.9)) + ``` + +`Якщо`{.blockcontrol} `розмір`{.blocklooks} все ще більший, ніж, наприклад, 10, ви можете створити кілька нових клонів цього меншого астероїда. Нарешті, ви можете `вилучити цей клон`{.blockcontrol} незалежно від його розміру. + +- [ ] Додайте повідомлення або блок `зупинити все`{.blockcontrol}, щоб гру можна було завершити після завершення циклу `повторити до`{.blockcontrol}, оскільки космічний корабель зіткнеться з астероїдом. + +- [ ] Астероїди також повинні мати можливість вилітати з одного боку екрану і з'являтися з іншого. Тому скопіюйте скрипт, який це виправляє, з постріл фігури. + +- [ ] Нарешті, ми також видалимо розстріляні клони, коли вони вдаряться об астероїди. Тут треба бути обережними, щоб не видалити постріляні клони до того, як астероїди зрозуміють, що в них влучили. Це можна зробити, додавши невелику затримку. Наприклад, ви можете ввести такий код у цикл, який переміщує фігурку пострілу: + + ```blocks + якщо <торкається [Астероїд v] ?> то + чекати (0.01) секунд + вилучити цей клон + slutt + ``` + + +# Крок 4: Подальший розвиток гри {.activity} + +*Ви створили просту версію Астероїди. Але спробуйте зробити гру цікавішою, розвиваючи її далі. Вам вирішувати, як ви хочете діяти далі, але нижче наведено кілька ідей, які можуть вас надихнути.* + +## Ідеї для подальшого розвитку {.check} + +- [ ] Давати очки, коли гравець влучає в астероїд. Можливо, варто давати більше очок за влучання в маленькі астероїди? Ви можете зробити це за допомогою такого розрахунку + + ```blocks + округлити ((100) / (розмір)) + ``` + +- [ ] Якщо ви розміщуєте астероїди навмання, коли починаєте нову гру, то цілком ймовірно, що ваш космічний корабель вріжеться в астероїд ще до того, як гра почнеться. Це не дуже весело. Один із способів виправити це - спочатку підпустити клон астероїда до космічного корабля `перейти до Місячний модуль`{.blockmotion}, а потім направити його у випадковому напрямку і `перемістити на 100-200 кроків`{.blockmotion}, перш ніж він нарешті з'явиться `показати`{.blocklooks}. + +- [ ] Гра виглядає трохи крутіше, якщо ви намалюєте кілька астероїдних костюмів і виберете один з них навмання при створенні клону. + +- [ ] Якщо вам вдасться збити всі астероїди, ви перейдете на складніший рівень. Можливо, з більшою кількістю астероїдів? Або з астероїдами, які рухаються швидше? Або розбиваються на кілька частин при пострілі? + +Щоб знати, коли можна переходити на новий рівень, потрібно порахувати, скільки астероїдів пролітає навколо. Тому створіть змінну `Кількість астероїдів`{.blockdata}, яку ви збільшуватимете на 1, коли астероїд `починає як клон`{.blockcontrol}. Змінна повинна зменшуватися на 1, коли клон видаляється. + +Крім того, ви використовуєте змінну `Рівень`{.blockdata}, яка відстежує, якого рівня досяг гравець. + +- [ ] В оригінальній грі Астероїди час від часу з'являлася літаюча тарілка (НЛО). За нею теж треба було стежити, але на відміну від астероїдів, НЛО могло відстрілюватися. Спробуйте додати такий НЛО у свою гру! diff --git a/src/scratch/asteroids/asteroids_ua.png b/src/scratch/asteroids/asteroids_ua.png new file mode 100644 index 0000000000..23d4f0f78e Binary files /dev/null and b/src/scratch/asteroids/asteroids_ua.png differ diff --git a/src/scratch/asteroids/flyttpunkt_ua.png b/src/scratch/asteroids/flyttpunkt_ua.png new file mode 100644 index 0000000000..afc3de49e4 Binary files /dev/null and b/src/scratch/asteroids/flyttpunkt_ua.png differ diff --git a/src/scratch/asteroids/ryggsekk_ua.png b/src/scratch/asteroids/ryggsekk_ua.png new file mode 100644 index 0000000000..d2a309123d Binary files /dev/null and b/src/scratch/asteroids/ryggsekk_ua.png differ diff --git a/src/scratch/data_navn/data_navn_ua.md b/src/scratch/data_navn/data_navn_ua.md new file mode 100644 index 0000000000..8db0d6fdd1 --- /dev/null +++ b/src/scratch/data_navn/data_navn_ua.md @@ -0,0 +1,111 @@ +--- +title: 'Використовуйте дані: Імена дівчаток та хлопчиків' +level: 2 +author: 'Geir Arne Hjelle' +translator: 'Анатолій Пилипенко' +language: ua +--- + + +# Вступ {.intro} + +Давайте подивимося, як можна використовувати [списки імен](https://docs.google.com/spreadsheets/d/1RlKtvPeGG5bcNv9uiWwC6nC0mB9HJwDltoQRlZR9adM/edit?usp=sharing) у Scratch. Можливо, кіт зможе відрізнити імена дівчаток від імен хлопчиків? + +![Illustrer katten Felix som skiller mellom jente- og guttenavn](data_navn_ua.png) + + +# Крок 1: Списки імен {.activity} + +*Погляньмо на списки імен.* + +## Контрольний список {.check} + +- [ ] Ми хочемо отримати списки з усіма іменами дівчаток та хлопчиків. Їх можна знайти, натиснувши [сюди](https://docs.google.com/spreadsheets/d/1RlKtvPeGG5bcNv9uiWwC6nC0mB9HJwDltoQRlZR9adM/edit?gid=0#gid=0). На цій сторінці ви побачите **таблицю**, яка містить «**Імена дівчаток** в алфавітному порядку» та «**Імена хлопчиків** в алфавітному порядку». Завантажте цю таблицю у форматі **Excel** або **CSV**. + +- [ ] Відкрийте щойно завантажені файли в Excel або подібній програмі для роботи з електронними таблицями. + +- [ ] Це буде виглядати приблизно так: + + ![Bilde av regneark med kolonne for jente- og guttenavn](navnelister_regneark_ua.png) + +- [ ] Це важливо! Збережіть таблицю у форматі CSV. Для цього виберіть **Зберегти як** або **Експортувати** в меню, а потім виберіть формат CSV. Дайте файлу ім'я, яке ви впізнаєте, наприклад, `списки_імен.csv`. + +# Крок 2: Перенесіть списки імен до Scratch {.activity} + +*Тепер ми можемо читати списки імен у Scratch.* + +## Контрольний список {.check} + +- [ ] Почніть новий Scratch-проєкт. + +- [ ] Створіть новий список, перейшовши на вкладку `Змінні`{.blockdata} і натиснувши кнопку `Створити список`. + +- [ ] Дайте ім'я списку **Імена дівчаток**. + +- [ ] Клацнути правою кнопкою миші у вікні `Імена дівчаток` і вибрати пункт `імпорт`. Виберіть CSV-файл, який ви щойно створили та виберіть 1 стовпчик. + +- [ ] Створіть ще один список: `Імена хлопчиків` + +- [ ] Клацнути правою кнопкою миші у вікні `Імена хлопчиків` і вибрати пункт `імпорт`. Виберіть CSV-файл та виберіть 2 стовпчик. + + ![Bilde av navnelistene i Scratch](navnelister_scratch_ua.png) + +- [ ] Списки імен є прикладами того, що у Scratch просто називається списками. Вони програмуються за допомогою цеглинок, розташованих у категорії `Змінні`{.blockdata} Як і у випадку зі змінними, ви можете видалити списки зі Сцени, знявши з них позначку, клацнувши правою кнопкою миші або скориставшись блоком `сховати список [Імена дівчаток v]`{.b}. + +# Крок 3: Використовуйте списки імен {.activity} + +*Зараз ми напишемо невелику програму, яка використовує списки імен. Можливо, ми зможемо навчити нашого кота розпізнавати різницю між іменами дівчаток та хлопчиків?* + +## Контрольний список {.check} + +- [ ] Ми починаємо з того, що дозволяємо коту попросити ім'я. Для цього ми можемо використати блок `запитати + [ Як вас звати?] і чекати`{.b}. + +- [ ] Для того, щоб кіт запам'ятав ім'я, яке ми йому скажемо, ми використаємо змінну. Клацніть на `Змінні`{.blockdata} а потім `Створити змінну`. Назвіть змінну `(Ім'я)`{.b}. + +- [ ] Тепер ми можемо зберегти відповідь у змінну `(Ім'я)`{.b}. + + ```blocks + запитати [Як вас звати?] і чекати + надати [Ім'я v] значення (відповідь) + ``` + +- [ ] Якщо ви подивитеся на цеглинки, які зараз знаходяться в категорії `Змінні`{.blockdata}, є одна, яка каже + +- [ ] <[Імена дівчаток v] містить (щось)?> + +- [ ] Ми можемо використовувати цей блок, щоб дізнатися, чи є ім'я в списку імен дівчаток або хлопчиків (або в обох списках, або в жодному з них). + +- [ ] Зробіть перевірку `(Ім'я)`{.b} дівчини: + + ```blocks + запитати [Як вас звати?] і чекати + надати [Ім'я v] значення (відповідь) + якщо <[Імена дівчаток v] містить (Ім'я)?> то + говорити (з'єднати (І'мя) [ це і'мя дівчинки]) (2) сек + slutt + ``` + +## Перевірте проєкт {.flag} + +__Натисніть на зелений прапорець.__ + +- [ ] Ваш кіт просить вас ввести ім'я? + +- [ ] Введіть ім’я дівчини, наприклад `Анна`. Кіт каже, що `Анна це ім’я дівчинки`? + +- [ ] Що станеться, якщо ви введете ім'я хлопчика? Або слово, яке не є ім'ям? + +## Контрольний список {.check} + +- [ ] Зробіть перевірку `(Ім'я)`{.b} хлопчика. Спробуйте створити його самостійно. Ви можете зробити це так само, як і для дівочих імен. Додайте новий якщо-блок під тим, що вже є. + +- [ ] Додайте цикл `завжди`{.b} навколо всього коду. Таким чином, кіт буде постійно запитувати у вас нові імена. + +- [ ] Також додайте блок `коли grønt flagg натиснуто`{.b} поверх вашого коду, щоб ви могли запустити програму, натиснувши на зелений прапорець. + +## Спробуйте самі. {.challenge} + +- [ ] Це дуже простий приклад того, що можна зробити зі списками імен (і він має деякі проблеми: наприклад, кіт не може знайти подвійні імена, такі як `Марта-Марія`). Чи є у вас ідеї, як використовувати списки імен ще цікавіше? + +- [ ] Чи знаєте ви інші набори даних, з якими хотіли б попрацювати у Scratch? diff --git a/src/scratch/data_navn/data_navn_ua.png b/src/scratch/data_navn/data_navn_ua.png new file mode 100644 index 0000000000..4233cd18f1 Binary files /dev/null and b/src/scratch/data_navn/data_navn_ua.png differ diff --git a/src/scratch/data_navn/navnelister_regneark_ua.png b/src/scratch/data_navn/navnelister_regneark_ua.png new file mode 100644 index 0000000000..c136ed794e Binary files /dev/null and b/src/scratch/data_navn/navnelister_regneark_ua.png differ diff --git a/src/scratch/data_navn/navnelister_scratch_ua.png b/src/scratch/data_navn/navnelister_scratch_ua.png new file mode 100644 index 0000000000..8b9f202ca8 Binary files /dev/null and b/src/scratch/data_navn/navnelister_scratch_ua.png differ diff --git a/src/scratch/felix_og_herbert/felix_og_herbert_ua.md b/src/scratch/felix_og_herbert/felix_og_herbert_ua.md new file mode 100644 index 0000000000..3ea71b0dd0 --- /dev/null +++ b/src/scratch/felix_og_herbert/felix_og_herbert_ua.md @@ -0,0 +1,222 @@ +--- +title: 'Фелікс і Герберт' +level: 1 +author: 'Oversatt fra [Code Club UK](//codeclub.org.uk)' +translator: 'Anatolii Pylypenko' +language: ua +--- + + +# Вступ {.intro} + +Ми будемо створювати гру, де кіт Фелікс повинен схопити мишу Герберта. Ви керуватимете Гербертом за допомогою мишки та спробуєте уникнути захоплення Феліксом. Чим довше ви уникнете його, тим більше балів ви отримаєте, але якщо вас спіймали, ваша сума балів зменшиться. + +![Bilde av katten Felix og musa Herbert](felix_og_herbert.png) + + +# Крок 1: Фелікс слідує за курсором {.activity} + +*Ми хочемо, щоб кіт Фелікс слідував за курсором.* + +## Контрольний список {.check} + +- [ ] Розпочніть новий проєкт. + +- [ ] Натисніть на фігурку кота внизу правої частини екрана та змініть ім’я фігури на `Фелікс`. + + ![Skift navn](navn_figur_ua.png) + +- [ ] Переконайтеся, що Фелікс дивиться лише праворуч і ліворуч, встановивши режим обертання зліва-направо. + + ![Høyre/Venstre](../bilder/rotasjonsmate-hv.png). + +- [ ] Натисніть на + ![Velg en ferdig bakgrunn](../bilder/velg-bakgrunn.png) у нижньому правому куті екрана, щоб встановити фон. Виберіть потрібний фон. + +- [ ] Натисніть на Фелікс, виберіть вкладку `Код` і створіть цей сценарій: + + ```blocks + коли grønt flagg натиснуто + завжди + слідувати за [вказівник v] + перемістити на (10) кроків + наступний образ + slutt + ``` + +## Перевірте проєкт {.flag} + +__Натисніть на зелений прапорець.__ + +- [ ] Чи стежить Фелікс за вказівником миші? + +- [ ] Коли він рухається, здається, що він ходить? + +- [ ] Він рухається з правильною швидкістю? + +- [ ] Натисніть на червоний символ зупинки, щоб Фелікс перестав слідувати за курсором миші. + +## Збережіть проєкт {.save} + +Якщо ви увійшли у свій обліковий запис Scratch, усі ваші проекти автоматично зберігаються з певною періодичністю. Однак все одно корисно зберігати їх вручну час від часу. + +- [ ] У меню «Файл» виберіть `Зберегти негайно`. + +Якщо у вас немає облікового запису і ви не можете зберігати проекти, просто перейдіть до кроку 2. + + +# Крок 2: Фелікс переслідує Герберта {.activity} + +*Тепер ми хочемо, щоб Фелікс ганявся за мишкою Гербертом замість вказівника миші.* + +## Контрольний список {.check} + +- [ ] Створіть новий спрайт, натиснувши на кнопку + ![Velg figur fra biblioteket](../bilder/hent-fra-bibliotek.png) + і виберіть фігурку `Тварини/Mouse1`. + +- [ ] Перейменуйте фігуру на `Герберт`. + +- [ ] Зробіть Герберта меншим за Фелікса, вибравши поле `Розмір` прямо над фігурою та введіть менше число. Спробуйте змінити число з 100 на 30. + + +- [ ] Дайте Герберту цей скрипт: + + ```blocks + коли grønt flagg натиснуто + завжди + перейти до [вказівник v] + слідувати [Фелікс v] + slutt + ``` + +## Перевірте проєкт {.flag} + +__Натисніть на зелений прапорець.__ + +- [ ] Герберт рухається разом із вказівником миші? + +- [ ] Фелікс женеться за Гербертом? + + +# Крок 3: Фелікс каже, коли він спіймав Герберта {.activity} + +*Ми хочемо, щоб Фелікс знав, коли він спіймав Герберта, і сказав нам.* + +## Контрольний список {.check} + +- [ ] Змініть сценарій Фелікса на такий: + + ```blocks + коли grønt flagg натиснуто + завжди + слідувати за [вказівник v] + перемістити на (10) крок + наступний образ + якщо <торкається [Герберт v]? то> + говорити [Попався!] (1) сек + slutt + slutt + ``` + +## Перевірте проєкт {.flag} + +__Натисніть на зелений прапорець.__ + +- [ ] Чи розповідає Фелікс, коли він спіймав Герберта? + + +# Крок 4: Герберт стає привидом, коли його схопили {.activity} + +*На додаток до того, що Фелікс щось говорить, ми тепер хочемо, щоб Герберт перетворився на привида, коли його схоплять.* + +## Контрольний список {.check} + +- [ ] Змініть сценарій Фелікса так, щоб він надсилав повідомлення та видавав звук, коли він ловить Герберта: + + ```blocks + коли grønt flagg натиснуто + завжди + слідувати за [вказівник v] + перемістити на (10) кроків + наступний образ + якщо <торкається [Герберт v]? то> + оповістити [Упіймав! v] + відтворити звук [Няв] + говорити [Попався!] (1) сек + чекати (1) секунду + slutt + slutt + ``` + +- [ ] Виберіть Герберт і перейдіть на вкладку `Образи`. + +- [ ] Отримайте новий костюм, натиснувши + ![Velg drakt fra biblioteket](../bilder/hent-fra-bibliotek.png) + і виберіть `Фантазії/Ghost` + +- [ ] Змініть назви костюмів Герберта, щоб костюм миші називався `живий` а костюм привида `мертвий`. + +- [ ] Перейдіть на вкладку Код і створіть новий сценарій для Герберта, щоб перетворити його на привида. Не видаляйте старий скрипт: + + ```blocks + коли я отримую [Упіймав! v] + змінити образ на [мертвий v] + чекати (0.5) секунд + змінити образ на [живий v] + ``` + +## Перевірте проєкт {.flag} + +__Натисніть на зелений прапорець.__ + +- [ ] Чи перетворюється Герберт на привида, коли його ловлять? + +- [ ] Чи вмикає Фелікс свій звук у потрібний момент? + +- [ ] Чи стоїть Фелікс на місці достатньо довго, щоб Герберт зміг втекти? + + +# Крок 5: Підрахуйте бали {.activity} + +*Давайте додамо бали, щоб побачити, наскільки добре вам вдається тримати Герберта живим. Починаємо з нуля і збільшуємо його на одиницю за кожну секунду. Якщо Фелікс спіймає Герберта, ми зменшуємо рахунок на десять.* + +## Контрольний список {.check} + +- [ ] На вкладці `Код` у розділі `Змінні`{.blockdata}, створіть нову змінну. Назвіть змінну `Рахунок`, і застосуйте її до всіх фігур. + + ![Bilde av den nye poeng variabelen](ny-variabel-poeng_ua.png) + + Зверніть увагу, що `Рахунок 0` з’явився у верхньому лівому куті гри. + +- [ ] Клацніть `Сцена` в крайньому правому куті екрана, поруч зі списком персонажів Фелікса і Герберта. Створіть ці два сценарії на сцені: + + ```blocks + коли grønt flagg натиснуто + надати [Рахунок v] значення [0] + завжди + чекати (1) секунд + змінити [Рахунок v] на (1) + slutt + + коли я отримую [Упіймав! v] + змінити [Рахунок v] на (-10) + ``` + +## Перевірте проєкт {.flag} + +__Натисніть на зелений прапорець.__ + +- [ ] Чи збільшується рахунок на одиницю щосекунди? + +- [ ] Чи зменшується кількість очок на десять, коли Герберта спіймають? + +- [ ] Що станеться, якщо Герберта спіймають до того, як у вас буде десять очок? + +- [ ] Чи обнуляється рахунок при перезапуску гри? + +## Збережіть проєкт {.save} + +*Все готово. Молодець. Тепер ви можете грати у гру!* + +Якщо ви увійшли в систему під своїм обліковим записом Scratch, ви можете поділитися грою з родиною та друзями, натиснувши кнопку `Поділитись в рядку меню`. diff --git a/src/scratch/felix_og_herbert/navn_figur_ua.png b/src/scratch/felix_og_herbert/navn_figur_ua.png new file mode 100644 index 0000000000..0b388a8ff7 Binary files /dev/null and b/src/scratch/felix_og_herbert/navn_figur_ua.png differ diff --git a/src/scratch/felix_og_herbert/ny-variabel-poeng_ua.png b/src/scratch/felix_og_herbert/ny-variabel-poeng_ua.png new file mode 100644 index 0000000000..9486e41559 Binary files /dev/null and b/src/scratch/felix_og_herbert/ny-variabel-poeng_ua.png differ diff --git a/src/scratch/flagg/flagg_ua.md b/src/scratch/flagg/flagg_ua.md new file mode 100644 index 0000000000..e26c6ef4cc --- /dev/null +++ b/src/scratch/flagg/flagg_ua.md @@ -0,0 +1,236 @@ +--- +title: Прапор +level: 3 +author: 'Sverre Oskar Konestabo og Geir Arne Hjelle' +translator: 'Анатолій Пилипенко' +language: ua +--- + + +# Вступ {.intro} + +У цьому завданні ми розглянемо, як за допомогою математики можна створювати захоплюючі візерунки та анімації. Зокрема, ми намалюємо прапор, який ніби розвівається на вітрі. + +![Bilde av Norges flagg som vaier i vind](flagg.png) + + +# Крок 1: Пройдіться по колу {.activity} + +Раніше ми вже бачили кілька способів, як змусити фігури рухатися по колу. Ми відсунули фігуру від центру і використали `слідувати за [вказівник v]`{.b} для переміщення фігури по колу. + +У цьому завданні ми будемо використовувати дві функції, синус і косинус, щоб краще контролювати, як відбувається круговий рух. Можливо, ви ще не чули про синус і косинус? Це числа, які показують, якою є довжина сторін прямокутного трикутника відносно одна до одної. На прикладі нижче, косинус, `cos(кут)`, показує, якою є довжина горизонтальної лінії відносно похилої лінії. + +![Bilde av sammenhengen mellom vinkel, sinus og cosinus](sinus_cosinus_ua.png) + +Давайте подивимося, як ми можемо використовувати це для малювання кіл! + +## Контрольний список {.check} + +- [ ] Розпочати новий проект. + +- [ ] Напишіть наступний сценарій для персонажа кота: + + ```blocks + коли @greenFlag натиснуто + стиль обертання [не обертати v] + завжди + задати x ((100) * ([cos v] з (напрям))) + задати y ((100) * ([sin v] з (напрям))) + поворот @turnLeft на (5) градусів + slutt + ``` + +## Перевірте проєкт {.flag} + +__Натисніть на зелений прапорець.__ + +- [ ] Що відбувається? Ви розумієте, чому фігурка кота рухається по колу? + + Число `100` показує, якого розміру має бути коло (це довжина похилої лінії на малюнку вище). Спробуйте змінити число (в обох місцях) і подивіться, що станеться. + +- [ ] Що станеться, якщо замість `100` використати різні числа в цих двох місцях? + +- [ ] Як зміниться рух кота, якщо змінити число 5 у + `поворот @turnLeft на (5) градусів`{.b}? Не соромтеся пробувати і з від'ємними числами! + +## Напрямок кругового руху {.tip} + +Ви можете помітити, що кіт рухається в напрямку, протилежному напрямку стрілки на `поворот @turnLeft на (5) градусів`{.b} Це тому, що Scratch вимірює кути у протилежному напрямку від того, що прийнято в математиці (і який ми намалювали вище). + +# Крок 2: Перемістіть коло {.activity} + +Поки що ми просто намалювали коло в центрі екрана. Спробуймо його перемістити! + +## Контрольний список {.check} + +- [ ] Оскільки ми вже рухаємо фігуру по колу, ми не можемо використовувати блок `перемістити в x: () y: ()`{.b} для переміщення всього кола. Замість цього ми будемо використовувати змінні. Створіть дві змінні з іменами `(центрX)`{.b} та `(центрY)`{.b} і яка застосовується _Тільки для цього спрайту_. + +- [ ] Тепер ми можемо перемістити коло, встановивши змінні `(центрX)`{.b} та + `(центрY)`{.b}: + + ```blocks + коли @greenFlag натиснуто + стиль обертання [не обертати v] + надати [центрX v] значення [-100] + надати [центрY v] значення [50] + завжди + задати x ((центрX) + ((100) * ([cos v] з (напрям))) + задати y ((центрY) + ((100) * ([sin v] з (напрям))) + поворот @turnLeft на (5) градусів + slutt + ``` + +## Перевірте проєкт {.flag} + +__Натисніть на зелений прапорець.__ + +- [ ] Чи рухається коло до нового центру? + +## Спробуйте самі. {.challenge} + +- [ ] Додайте нову змінну, `(радіус)`{.b}, яка також застосовується _Тільки для цього спрайту_. + Чи можна за допомогою цього контролювати розмір кола? + Тобто, `(радіус)`{.b} повинен показувати довжину похилої лінії на малюнку який був на початку завдання. + + Вам потрібен блок `надати [радіус v] значення []`{.b} на додаток до використання + `(радіус)`{.b} у двох місцях вашого коду. + + +# Крок 3: Танцювальні диски {.activity} + +Тепер ми спробуємо змусити багато фігур обертатися по колу одночасно. + +## Контрольний список {.check} + +- [ ] Намалюйте новий костюм для свого персонажа. За допомогою векторної графіки намалюйте коло (диск), заповнене червоним кольором. Він може бути досить маленьким, наприклад, `20 x 20` пікселів. + + ![Bilde av en liten rød fyllt disk i Scratch](rod_disk_ua.png) + +- [ ] Ми можемо створити багато червоних дисків, дублюючі один диск. Розділіть свій код на дві частини і змініть його таким чином: + + ```blocks + коли @greenFlag натиснуто + повторити (99) + надати [центрX v] значення (випадкове від (-150) до (150)) + надати [центрY v] значення (випадкове від (-100) до (100)) + надати [радіус v] значення [50] + створити клон з [мене v] + slutt + + коли я починаю як клон + завжди + задати x ((центрX) + ((радіус) * ([cos v] з (напрям))) + задати y ((центрY) + ((радіус) * ([sin v] з (напрям))) + поворот @turnLeft на (5) градусів + slutt + ``` + +- [ ] Якщо ви запустите програму зараз, то побачите 99 дисків, що танцюють (і 1, що стоїть на місці) по екрану в чудовому хаосі! + + Хаос насправді виникає через те, що Scratch потребує певного часу для запуску кожного клону. Таким чином ми можемо створити менш хаотичний танець: + + Змінемо `коли я починаю як клон`{.b} на `коли я отримую [танець v]`{.b}, і додайте + `оповістити [танець v]`{.b} після `повторити (99)`{.b}. + + Якщо ви запустите програму ще раз, то побачите, що всі диски танцюють в такт. Який вам подобається найбільше? + +# Крок 4: Підняття прапора {.activity} + +Давайте подивимося, як можна перетворити цей хаотичний танець на щось схоже на триколірний прапор. + +## Контрольний список {.check} + +- [ ] На попередньому кроці ми клонували диски у випадкові місця. Тепер ми розкладемо їх більш впорядковано. Перепишіть скрипт, який розкладає диски таким чином: + + ```blocks + коли @greenFlag натиснуто + показати + надати [радіус v] значення [25] + надати [центрX v] значення [-160] + повторити (19) + надати [центрY v] значення [-100] + повторити (14) + створити клон з [мене v] + змінити [центрY v] на (16) + slutt + змінити [центрX v] на (16) + slutt + оповістити [майоріти v] + сховати + ``` + +- [ ] Тоді нехай сценарій `майоріти` буде тим самим, який був у сценарії танець: + + ```blocks + коли я отримую [майоріти v] + завжди + задати x ((центрX) + ((радіус) * ([cos v] з (напрям))) + задати y ((центрY) + ((радіус) * ([sin v] з (напрям))) + поворот @turnLeft на (5) градусів + slutt + ``` + +- [ ] Запустіть програму. Тепер ви побачите прапор, що складається з багатьох червоних дисків, які рухаються по колу. Але ось найцікавіше: Ми можемо змусити червоні диски рухатися трохи не синхронно! + + + Додайте блок `поворот @turnRight на (1) градусів`{.b} після блоку `створити клон з [мене + v]`{.b}, і спробуйте свою програму ще раз. Що сталося? + + +# Крок 5: Норвезький прапор {.activity} + +Тепер давайте подивимося, як можна намалювати прапор у різних кольорах. + +## Контрольний список {.check} + +- [ ] Спочатку замініть колір у двох копій червоного диска. Перший повинен бути білим диском, а другий - синім диском. Назвіть ваші три фігури дисків ч, б і с так, щоб назва була першою літерою кольору диска: червоний, білий і синій. + + ![Bilde av en rød, hvit og blå disk i Scratch](tre_disker_ua.png) + +- [ ] Тепер ми будемо використовувати нову змінну `(прапор)`{.b} яка описує кольори у прапорі. Створіть змінну _Для усіх спрайтів_, а потім додайте код: + + ```blocks + коли @greenFlag натиснуто + надати [прапор v] значення [чччччбссбччччч] + ``` + + Букви чччччбссбччччч означають, що спочатку ми хочемо 5 червоних дисків, потім 1 білий, 2 синіх, 1 білий і 5 червоних дисків. + +- [ ] Для того, щоб використовувати нову змінну `(прапор)`{.b}, кожен диск повинен знати, який номер він має. Створіть нову змінну `(номер)`{.b} яка застосовуватиметься _Тільки для цього спрайту_. + +- [ ] Додайте `надати [номер v] значення [1]`{.b} трохи нижче `показати`{.b} та `змінити + [номер v] на (1)`{.b} нижче блоку `створити клон з [мене v]`{.b}. + +- [ ] Нарешті, ми змінимо зовнішній вигляд дисків. Додайте + + ```blocks + змінити образ на (символ (номер) у (прапор)) + ``` + + у верхній частині циклу `завжди`{.blockcontrol} у скрипті `майоріти`. + +- [ ] Запустіть програму. Тепер ліва частина вашого прапора повинна мати кольори норвезького прапора. Щоб розфарбувати весь прапор, нам потрібно додати ще багато літер до змінної `(прапор)`{.b} Весь норвезький прапор матиме літери + + ``` + чччччбссбччччччччччбссбччччччччччбссбччччччччччбссбччччччччччбссбччччч + ббббббссббббббссссссссссссссссссссссссссссббббббссббббббчччччбссбччччч + чччччбссбччччччччччбссбччччччччччбссбччччччччччбссбччччччччччбссбччччч + чччччбссбччччччччччбссбччччччччччбссбччччччччччбссбччччч + ``` + +- [ ] Простіший спосіб намалювати прапори - сказати, що ми хочемо, щоб візерунок повторювався. Тоді нам не доведеться писати літеру для кожного диска. Для цього ми можемо використати `остача () на ()`{.b}. + + Змініть `(символ (номер) у (прапор))`{.b} на `(символ (остача (номер) на (довжина + (прапор))) у (прапор))`{.b} в `змінити образ на [с v]`{.b}. Якщо ви спробуєте запустити програму ще раз, ви побачите, що шаблон прапорців повторюється (наприклад, встановіть прапорці до `чбс`, щоб побачити це). + +## Спробуйте самі {.challenge} + +- [ ] Намалюйте власні прапори. Якщо вам потрібно більше кольорів, просто зробіть більше костюмів. Переконайтеся, що кожен образ має літеру або цифру в якості назви. + + +- [ ] Ви також можете погратися з різними цифрами, щоб отримати дещо іншу анімацію. +Спробуйте, наприклад, в блоці `поворот @turnRight на (25) градусів`{.b} після + `створити клон з [мене v]`{.b}. + +- [ ] Ви можете змінювати зовнішній вигляд прапора в процесі роботи. Наприклад, якщо ви використовуєте блок + `коли клавішу [пропуск v] натиснуто`{.b} ви можете змінити значення `(прапор)`{.b} залежно від того, які клавіші натиснуто. Кольори у прапорці також буде змінено. diff --git a/src/scratch/flagg/rod_disk_ua.png b/src/scratch/flagg/rod_disk_ua.png new file mode 100644 index 0000000000..d7bf404554 Binary files /dev/null and b/src/scratch/flagg/rod_disk_ua.png differ diff --git a/src/scratch/flagg/sinus_cosinus_ua.png b/src/scratch/flagg/sinus_cosinus_ua.png new file mode 100644 index 0000000000..ca74b73850 Binary files /dev/null and b/src/scratch/flagg/sinus_cosinus_ua.png differ diff --git a/src/scratch/flagg/tre_disker_ua.png b/src/scratch/flagg/tre_disker_ua.png new file mode 100644 index 0000000000..0c369241a5 Binary files /dev/null and b/src/scratch/flagg/tre_disker_ua.png differ diff --git a/src/scratch/lunar_lander/lunar_lander_ua.md b/src/scratch/lunar_lander/lunar_lander_ua.md new file mode 100644 index 0000000000..9590648dc1 --- /dev/null +++ b/src/scratch/lunar_lander/lunar_lander_ua.md @@ -0,0 +1,166 @@ +--- +title: 'Місячний модуль' +level: 4 +author: 'Geir Arne Hjelle' +translator: 'Анатолій Пилипенко' +language: ua +--- + + +# Вступ {.intro} + +"Місячний модуль" (Lunar Lander) була розроблена наприкінці 1970-х років. Метою гри є посадка космічного корабля на Місяць. Керування космічним кораблем було продовжено у грі "Астероїди", яка вийшла наступного року. + +![Illustrasjon av et ferdig Lunar Lander spill](lunar_lander_ua.png) + + +# Огляд проєкту {.activity} + +*Більшу частину кодування "Місячний модуль" будете виконувати ви. Зокрема, в "Місячний модуль" ми витратимо деякий час на те, щоб зробити фізичне моделювання космічного корабля досить реалістичним.* + +## План {.check} + +- [ ] Літаючий космічний корабель + +- [ ] Ми прибуваємо на Місяць + +- [ ] Готові до посадки + +- [ ] Обмежене паливо, кілька посадочних майданчиків та інші виклики + + +# Крок 1: Літаючий космічний корабель {.activity} + +Зараз ми запрограмуємо космічний корабель, який буде літати по екрану. Для керування рухом ми будемо використовувати дві змінні: `швидкістьX`{.blockdata} та +`швидкістьY`{.blockdata}, які описують швидкість руху корабля з боку в бік та вгору-вниз відповідно. Використовуючи обидві змінні одночасно, космічний корабель зможе рухатися в будь-якому напрямку. + +Складність програмування гри полягає в тому, що космічний корабель може обертатися незалежно від того, в якому напрямку він насправді летить. Коли гравець натискає стрілку вгору, щоб задіяти двигун, ми хочемо надати космічному кораблю додаткову швидкість у напрямку, на який він вказує. Це означає, що нам потрібно розподілити швидкість у напрямку руху космічного корабля таким чином, щоб визначити, яку частину швидкості він отримує у бік, а яку - вгору або вниз. + +На перший погляд, це може здатися трохи складним, але це саме те, що роблять +математичні функції `синус` і `косинус`. Наприклад, у функції нижче `косинус(кут)` показує нам, наскільки довшою є горизонтальна лінія по відношенню до похилої. + +![Viser sammenhengen mellom vinkel, cosinus og sinus](sinus_cosinus_ua.png) + +## Контрольний список {.check} + +- [ ] Почніть новий проєкт. Видаліть символ кота. + +- [ ] Додайте персонажа космічного корабля. Не соромтеся використовувати `Усі/Rocketship`. + +- [ ] Зробіть космічний корабель зовсім маленьким. Наприклад, ви можете використати + + ```blocks + задати розмір (20) + ``` + + одразу після натискання зеленого прапорця. + +- [ ] Створіть дві нові змінні, `швидкістьX`{.blockdata} та `швидкістьY`{.blockdata}, які застосовуються лише до цієї фігури космічного корабля. +- [ ] Спочатку створюємо основний цикл, який дозволяє космічному апарату падати під дією лише сили тяжіння. Напишіть цей код: + + ```blocks + коли я отримую [Нова гра v] + перемістити в x: (0) y: (175) + повернути в напрямку (90 v) + надати [швидкістьX v] значення [0] + надати [швидкістьY v] значення [0] + завжди + змінити [швидкістьY v] на (-0.01) + змінити x на (швидкістьX) + змінити y на (швидкістьY) + slutt + ``` + + Якщо ви спробуєте запустити гру зараз, космічний корабель повинен падати все швидше і швидше вниз по екрану. Спробуйте змінити щось у блоці + + ```blocks + змінити [швидкість v] на (-0.01) + ``` + + Саме він моделює силу гравітації. Якщо ви зміните значення тут, космічний корабель буде падати швидше або повільніше, або навіть може впасти вгору, якщо залишити гравітацію з плюсом. + +- [ ] Тепер ми запрограмуємо керування космічним кораблем. Перш за все, ми хочемо, щоб корабель повертався, коли ми натискаємо клавіші зі стрілками вправо та вліво. + + Додайте два блоки `якщо`{.blockcontrol} всередині циклу `завжди`{.blockcontrol} де ви `повертаєте`{.blockmotion} космічний корабель, наприклад, на `5` градусів праворуч або ліворуч, залежно від того, яку клавішу зі стрілкою натиснуто. + +- [ ] Коли натиснута клавіша зі стрілкою вгору, ми хочемо, щоб космічний апарат набрав трохи більшої швидкості в напрямку, на який він вказує. Як ми вже говорили раніше, для цього ми можемо використати математичні функції синус і косинус. Також додайте цей блок всередину вашого циклу `завжди`{.blockcontrol}. + + ```blocks + якщо <клавішу [стрілка в гору v] натиснуто?> то + замінити [швидкістьX v] на ((0) - ([cos v] з (напрям))) + замінити [швидкістьY v] на ([sin v] з (напрям)) + slutt + ``` + + Ви знайдете функції синуса і косинуса як варіанти на вибір у блоці + + ```blocks + ([sqrt v] з (9)) + ``` + + Нам потрібно використовувати + `((0) - ([cos v] з (напрям)))`{.b} замість `([cos v] з + (напрям))`{.b} тому що `напрям`{.blockmotion} у Scratch вимірюються у протилежний спосіб від того, як кути вимірюються у математиці. + +- [ ] Спробуй свою гру. Чи можете ви керувати космічним кораблем по екрану? Якщо вам здається, що космічний корабель рухається надто швидко або повільно, ви можете відрегулювати блоки `швидкості`{.blockdata}, наприклад, ось так, + + ```blocks + замінити [швидкістьX v] на ((0.3) * ((0) - ([cos v] з (напрям)))) + замінити [швидкістьY v] на ((0.3) * ([sin v] з (напрям))) + ``` + + Переконайтеся, що ви налаштували обидва блоки на однакове число. + + +# Крок 2: Ми прибуваємо на Місяць {.activity} + +*Тепер ми додамо місячний пейзаж, де гравець намагатиметься приземлитися.* + +## Контрольний список {.check} + +- [ ] Створіть новий фон, на якому намалюйте відповідний місячний пейзаж. Зробіть його настільки простим або складним, наскільки вам подобається. Також намалюйте один або кілька посадкових майданчиків, де приземлиться космічний корабель. Пізніше ми будемо використовувати `торкається кольору`{.blocksensing} блоки для перевірки посадки, тому найпростіше використовувати один колір для ландшафту, а інший - для місця посадки. + +- [ ] Щоб змусити космічний корабель припинити політ, коли він впаде на землю, ви можете замінити цикл + `завжди`{.blockcontrol} на цикл `повторити до`{.blockcontrol}, в якому ви перевіряєте, чи `торкається кольору`{.blocksensing} космічний корабель, який ви застосували до ландшафту або місця приземлення. + +- [ ] Також додайте `оповістити [Перевірте посадку v]`{.b} одразу після `повторити до`{.blockcontrol}. + +- [ ] Спробуйте ще раз. Тепер у вас має вийти літати навколо, поки космічний корабель не наблизиться до землі. + + +# Крок 3: Готовність до посадки {.activity} + +*Ми нарешті перевіримо, де і як приземлився космічний апарат.* + +## Контрольний список {.check} + +- [ ] Коли ми перевіряємо приземлення космічного апарату, ми будемо розрізняти три різні випадки: + + __1__: Космічний апарат приземлився за межами посадкового майданчика (розбився). + + __2__: Космічний апарат приземлився на посадковому майданчику, але приземлився під кутом (або догори дном) або занадто швидко. + + __3__: Космічний апарат ідеально приземлився на посадковому майданчику. + + Створіть новий скрипт на космічному кораблі, який запускається, коли він отримує повідомлення `Перевірте посадку`. Під цим блоком вам потрібно використовувати блоки `якщо`{.blockcontrol} та `якщо-інакше`{.blockcontrol}, які перевіряють три випадки. Наприклад, ви можете сказати, що посадка пройшла ідеально, якщо апарат приземлився на посадковий майданчик, `швидкістьY`{.blockdata} більше `-1.5`, а напрямок знаходиться в межах від `80` до `100`. + +- [ ] Знайдіть спосіб розповісти гравцеві, як космічний корабель приземлився. Найпростішим способом може бути просто використання блоку `говомрити`{.blocklooks}. Але ви також можете використовувати звукові ефекти, різні костюми або, можливо, текстовий плакат, що спливає. + + +# Крок 4: Подальший розвиток гри {.activity} + +*Ви створили просту версію "Місячний модуль". Але спробуйте зробити гру ще цікавішою, розвиваючи її далі. Вам вирішувати, як ви хочете діяти далі, але нижче наведено кілька ідей, які можуть вас надихнути.* + +## Ідеї для подальшого розвитку {.check} + +- [ ] Створіть кілька посадкових майданчиків. Можливо, на деякі з них буде складніше приземлитися, ніж на інші (або через рельєф місцевості, або через те, що сам посадочний майданчик менший). + +- [ ] Створіть кілька фонів або дощок. Ви можете дозволити гравцеві вибрати фон для гри на початку гри або переходити від дошки до дошки, коли гравцеві вдасться приземлитися. + +- [ ] Ви також можете використовувати кілька фонів як лоток. Якщо космічний корабель вилітає з екрана праворуч, ви можете зробити так, щоб він знову з'явився ліворуч на іншому тлі, і навпаки. + +- [ ] Однією з проблем оригінальної гри Lunar Lander було те, що гравець мав лише обмежену кількість пального. Ви можете додати це у свою гру, створивши змінну `паливо`{.blockdata}, яка зменшуватиметься, коли гравець натискатиме клавіші зі стрілками. Якщо у космічного корабля закінчується паливо, ви можете ігнорувати натискання клавіш гравця і просто дозволити кораблю летіти, поки він нарешті не розіб'ється. + +- [ ] Ви можете створити різні бонусні предмети для гравця, які він зможе підібрати. Щоб трохи ускладнити завдання, ви можете залишити їх на поверхні Місяця, щоб гравцеві довелося ретельно маневрувати, щоб підібрати їх. Прикладами таких бонусів можуть бути додаткове паливо, бонусні бали, більший посадковий майданчик тощо. + +- [ ] Серйозною зміною в грі може бути те, що на початку гри посадковий майданчик захований під землею, і гравець повинен відкопати його, скидаючи бомби з космічного корабля. diff --git a/src/scratch/lunar_lander/lunar_lander_ua.png b/src/scratch/lunar_lander/lunar_lander_ua.png new file mode 100644 index 0000000000..faf8f71a97 Binary files /dev/null and b/src/scratch/lunar_lander/lunar_lander_ua.png differ diff --git a/src/scratch/lunar_lander/sinus_cosinus_ua.png b/src/scratch/lunar_lander/sinus_cosinus_ua.png new file mode 100644 index 0000000000..ca74b73850 Binary files /dev/null and b/src/scratch/lunar_lander/sinus_cosinus_ua.png differ