Перемикач#

Вступ#

Блоки Switch допомагають студентам перейти від блочного кодування до текстового. За допомогою блоків Switch студенти можуть вводити код Python безпосередньо всередині проекту блоків — записувати команди, умови, значення або визначення функцій — водночас будуючи решту проекту за допомогою блоків. Окремі блоки також можна конвертувати в еквівалентні команди Python.

Щоб дізнатися, як вводити команди, методи та оператори Python, див. VEX IQ (2-е покоління) Python API.

Оскільки блоки Switch містять код Python, орфографія, пунктуація та відступи мають бути правильними, щоб проєкт працював належним чином.

Нижче наведено список усіх блоків Switch:

Перемикання блоків — додавання коду Python до проєкту Blocks.

  • Stack — Надає простір для введення команд Python, що виконуються послідовно з іншими блоками стеку.

  • C Block — Надає пробіл для введення керуючого коду Python, такого як if, whileабо for операторів.

  • C Expandable — Надає простір для введення коду керування Python з кількома розгалуженнями, наприклад, if, elifабо else.

  • Boolean — Надає пробіл для введення коду Python, який повертає True або False.

  • Reporter — Надає місце для введення коду Python, який повертає значення.

  • Hat — Надає простір для визначення функції Python.

Стек#

Блок Stack надає простір для введення команд Python, які виконуються послідовно з іншими блоками стека.

Блок стека#
[] :: custom-switch

Блок Stack може містити один або кілька рядків коду Python.

Після запуску використовує блок Stack для переміщення робота вперед.#
коли запущено
[Move the robot forward.]
[drivetrain.drive_for(FORWARD, 400, MM)] :: custom-switch

Блок С#

Блок C надає місце для введення коду керування Python, такого як оператори if, whileабо for Блоки, розміщені всередині блоку C, виконуються як частина цієї структури керування Python.

Блок С#
if [] :: custom-switch
Кінець

Код керування Python, який можна використовувати в блоці C, включає:

На початку гри використовується блок C для повороту, поки утримується кнопка Brain.#
коли запущено
[Turn while a button is held down.]
if [while brain.buttonCheck.pressing():] :: custom-switch
повернути [праворуч v]
Кінець
зупинити рух

C Розширюваний#

Блок C Expandable надає місце для введення коду керування Python з кількома гілками, такими як if, elifабо elseДодаткові гілки можна додати, вибравши стрілку з плюсом.

C Розширюваний блок#
if [] :: custom-switch-expand
Кінець

Код керування Python, який можна використовувати в блоці C Expandable, включає:

Після запуску використовує розширюваний блок C для повороту праворуч, якщо утримувати кнопку Brain, та ліворуч у протилежному випадку.#
коли запущено
[Turn right if a button is held down, otherwise turn left.]
назавжди
if [if brain.buttonCheck.pressing():] :: custom-switch-expand
повернути [праворуч v]
else [else:] :: custom-switch-expand
повернути [ліворуч v]
Кінець
Кінець

Булеве значення#

Блок Boolean надає простір для введення коду Python, який повертає True або FalseЙого можна розмістити всередині блоків із шестикутними входами.

Булев блок#
<[] :: custom-switch>

Блок Boolean може містити умову Python.

Булевий блок з умовою Python#
<[brain.buttonCheck.pressing()] :: custom-switch>

У булевому блоці також можуть використовуватися логічні оператори:

Булев блок з логічним оператором Python#
<[controller.buttonRUp.pressing() and controller.buttonLUp.pressing()] :: custom-switch>

Блок Boolean може використовувати оператори порівняння для порівняння значень:

  • Більше ніж: >

  • Менше ніж: <

  • Дорівнює: ==

  • Інші оператори порівняння включають <=, !=та >=

Булев блок з оператором порівняння Python#
<[brain_inertial.heading()> 100] :: custom-switch>
Після запуску використовує булевий блок для обертання при натисканні кнопки Brain.#
коли запущено
[Spin in a circle when a button is pressed.]
назавжди
якщо <[brain.buttonCheck.pressing()] :: custom-switch> тоді
повернути [праворуч v] на (360) градусів ▶
Кінець
Кінець

Репортер#

Блок Reporter надає простір для введення коду Python, який повертає значення. Його можна розмістити всередині блоків із циклічними вхідними даними.

Блок репортера#
([] :: custom-switch)

Блок Reporter може містити код Python, який повертає значення.

Блок репортера з кодом Python, який повертає значення#
([drivetrain.heading()] :: custom-switch)

Математичні оператори можна використовувати в блоці Reporter:

  • Додавання: +

  • Віднімання: -

  • Відділення: /

  • Множення: *

Блок репортера з додаванням Python#
([brain_inertial.heading() + 45] :: custom-switch)
Після запуску друкує поточний напрямок руху після повороту робота.#
коли запущено
[Turn and display the current heading.]
повернути [праворуч v]
чекати (2) секунд
зупинити рух
вивести ([drivetrain.heading()] :: custom-switch) на екран ▶

Капелюх#

Блок Hat надає простір для визначення функції Python. Блоки, приєднані до Hat, стають тілом цієї функції.

Блок капелюха#
[] :: hat custom-switch

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

Блок Hat з визначенням функції Python#
[def function_name(parameter):] :: hat custom-switch
Після запуску використовує блок Hat для визначення та виклику функції.#
[def drive_400():] :: hat custom-switch
[Create a function to drive the robot forward.]
їхати [вперед v] на (400) [мм v] ▶

коли запущено
[drive_400()] :: custom-switch