Нехай маємо м’яч який повинен вміти плигати по східцях вгору та вниз. Розглянемо варіант того як це можна реалізувати.
У такої задачі може існувати як мінімум два випадки.
Перший випадок - це коли нам відома кількість східців. В цьому випадку нам потрібно: 1. Піднятися вгору 2. Переміститися вправо.
Щоб піднятися вгору можна 1. Повернутись у напрямку вгору. 2. Переміститися на Х кроків. Щоб переміститися вправо треба: 1. Повернутися вправо. 2. Переміститися на Х кроків.
Отже, щоб піднятися на одну сходинку нам потрібно виконати 4 команди. Якщо ж східців N то достатньо повторити N разів ці 4 команди. Тому у нас вийде такий алгоритм:
команда чекати потрібна для того, щоб побачити послідовність під’йому.
Другий випадок - це коли ми не знаємо чи не хочемо знати наперед кількість східців. В цьому випадку можна скористатись "кольоровими" характеристиками нашої сцени та спрайтів.
Розглянемо наприклад варіант коли м’яч повинен зійти по східцям униз.
Як видно з малюнка східці мають чітку кольорову межу коричневого кольору. А внизу є червоний килим. Скористаємося цим.
Щоб м’яч почав спускатися потрібно, щоб він дійщов до краю першої сходинки. Для цього
він повинен рухатися вправо. Отже маємо той самий набір: 1. Повернутися вправо. 2. Переміститися на Х кроків. Але коли він дійде він повинен рухатися вниз. А це 1. Повернутися вниз. 2. Переміститися на Х кроків. Проблема, яка зовсім не проблема полягає в тому, що ми не знаємо чи не хочемо знати скільки ж кроків йому треба зробити як вниз так і вправо.
Головне, що зупинитись він повинен тоді, коли дістанеться червоного килиму. Щоб рухатись вправо ми можемо скористатись коричневим кольором східців. Якщо м’яч доторкається до коричневого кольору - він повинен: 1. Повернутися вправо. 2. Переміститися на 2 кроків.
Інакше він повинен рухатись вниз: 1. Повернутися вниз. 2. Переміститися на 2 кроків.
Щоб перевірити, що м’яч доторкається до східців (коричневого кольору ) можна скористатись конструкцією розгалуження та датчиком доторкається до кольору. А щоб рухатись вправо та вниз повторюючи ці команди скористайтесь циклом повторювати поки.
І ви отримаєте наступний скрипт:
Отож маємо наступний проект
А знайти його можна на моїй сторінці Scratch
Немає коментарів:
Дописати коментар