Розв’язання задачі методом поділу на підзадачі

гра “Геікоптер”

Виконання проекту - 7 балів, додаткове завдання + 5 балів

На Гелікоптер нападають Кажани. У нього є 3 життя — він може лише 3 рази

зіткнутися з ворогом. Мета гри – набрати 30 очок.

  1. Створюємо Спрайти

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

Спрайт Кота видаліть. Додайте спрайт Гелікоптер та спрайт Кажан. (Спарйтів, якіх не має в бібліотеці можно завантажити тут)

Спочатку ми запрограмуємо одного Кажана, а потім просто продублюємо його. Нові кажани будуть містити такі ж скріпти, як і у першого, адже їх поведінка має бути однаковою.

У Гелікоптера має бути 4 костюми з різним ступенем ушкоджень.

Оберіть спрайт Гелікоптер, перейдіть на вкладку Костюми та продублюйте перший костюм Гелікоптера.

Інструментом Пензлик намалюйте невеликі пошкодження гелікоптера.

Дублюйте другий костюм і додайте ще більше ушкоджень. Можете намалювати білий чи сірий дим.

Дублюйте третій костюм Гелікоптера і додайте суперпошкодження

Спрайти готові, можна програмувати.

  1. Програмуємо Спрайти

Спочатку створіть дві змінні: Очки та Життя. Змінна Очки вестиме підрахунок очок до досягнення 30, а змінна Життя буде показувати життя Гелікоптеру, що залишилися.

Програмуємо Гелікоптер. Створюємо 3 скрипта для Гелікоптера

1

Перший скрипт встановлює розмір  гелікоптера в 2 рази менше звичайного, «одягає» на нього перший костюм і робить Гелікоптер видимим.

Далі встановлює початкові значення змінних, переміщає Гелікоптер у лівий нижній кут сцени, в точку (-190; -150), а потім постійно  встановлює координату Y Гелікоптера в координату Y миші. В результаті вертикальне положення Гелікоптера задається рухом миші.

У горизонтальному напрямку Гелікоптер не рухається.

2

Тепер другий скрипт. Це скрипт перемоги. Весь час (блок завжди) перевіряється, чи дорівнює змінна Очки значення 30. Коли це станеться,

Гелікоптер закричить: "Перемога!"

3

Третій скрипт Гелікоптеру змінює його костюм залежно від кількості життів. Якщо у Гелікоптера 3 життя, він без пошкоджень; якщо 2 життя, то він має небагато пошкоджень; якщо 1, він ледве летить; а якщо 0, то він падає та зупиняє виконання програми.

Тепер запрограмуємо Кажана, у нього 4 скрипти.

1

Перший скрипт Кажана зменшує його в 2 рази, переносить у випадкову точку до правої межі сцени, трохи чекає і завжди змінює Х на -3, повільно переміщаючи Кажана вліво.

2

Другий скрипт завжди чекає, поки Кажан не торкнеться лівого краю сцени. У цьому випадку він  збільшує змінну Очки на 1 і знову «телепортує» Кажана в випадкову точку до правого  кордону сцени.

3

Цей скрипт завжди чекає, поки Кажан не торкнеться Гелікоптера. Коли це станеться, змінна Життя зменшується на 1. Двосекундна затримка потрібна для того, щоб за один дотик забиралося лише одне життя.

4

Це скрипт з умовою перемоги, він стежить значення змінної Очки. Якщо її значення зрівняється з 30, то кажани  заноють: «Знову не зловили!»

Створіть самостійно!

Протестуємо роботу програми. Грати з одним противником дуже легко та нецікаво.

Давайте додамо ще трохи кажанів, щоб їх стало 5.

Змініть у першому скрипті кожного з Кажанів час затримки у блоці чекати. У першого Кажана  має бути 1 секунда, у другого - 2 секунди, і так далі. Тепер вони будуть стартувати по черзі, а не всім гуртом.

Протестуйте гру та збережіть її.

Внесення змін:

  1. Створіть копію проекту.
  2. Зробіть так, щоб Кажани махали крилами в польоті. (1бал)
  3. Зробіть так, щоб при торканні Гелікоптера Кажан на 0.1 секунди змінював свою яскравість. (1 бал)
  4. Додайте Гелікоптеру ще два життя та два костюми. (0,5 бали)
  5. Прискоріть політ Кажанів.(0,5 бали)
  6. Додайте ще два Кажани. (0,5 бали)
  7. Зробіть так, щоб після загибелі Гелікоптера з'являвся Кіт і спускався на парашуті. (1,5 бали)

Джерело: https://tiei.ru/wp-content/uploads/Scratch-dlya-yunyih-programmistov.pdf