Schakelaar#

Invoering#

Switch-blokken helpen leerlingen de overstap te maken van blokgebaseerd programmeren naar tekstgebaseerd programmeren. Met Switch-blokken kunnen leerlingen Python-code rechtstreeks in een blokkenproject typen – commando’s, voorwaarden, waarden of functiedefinities schrijven – terwijl ze de rest van het project nog steeds met blokken opbouwen. Individuele blokken kunnen ook worden omgezet in hun equivalente Python-commando’s.

Om te leren hoe je Python-opdrachten, -methoden en -operatoren typt, zie de VEX GO Python API.

Omdat Switch-blokken Python-code bevatten, moeten spelling, interpunctie en inspringing correct zijn om ervoor te zorgen dat het project naar behoren werkt.

Hieronder vindt u een lijst van alle Switch-blokken:

Switch blocks — Voeg Python-code toe aan een Blocks-project.

  • Stack — Biedt ruimte om Python-opdrachten te typen die in volgorde met andere stackblokken worden uitgevoerd.

  • C-blok — Biedt ruimte om Python-besturingscode te typen, zoals if, whileof for instructies.

  • C Expandable — Biedt ruimte om Python-besturingscode met meerdere vertakkingen te typen, zoals if, elif, of else.

  • Boolean — Biedt ruimte om Python-code te typen die True of False retourneert.

  • Reporter — Biedt ruimte om Python-code te typen die een waarde retourneert.

  • Hoed — Biedt ruimte om een ​​Python-functie te definiëren.

Stapel#

Het Stack-blok biedt ruimte om Python-opdrachten te typen die in volgorde met andere stack-blokken worden uitgevoerd.

Stapelblok#
[] :: custom-switch

Een Stack-blok kan één of meerdere regels Python-code bevatten.

Bij het opstarten gebruikt het een Stack-blok om vooruit te rijden, te wachten en vervolgens te stoppen.#
wanneer gestart :: hat events
[Build Used: Super Code Base 2.0]
[Drive forward, then stop.]
[drivetrain.drive(FORWARD)] :: custom-switch
wacht [2] seconden
stop rijden

C-blok#

Het C-blok biedt ruimte voor het typen van Python-besturingscode, zoals if, while, of for instructies. Blokken die binnen het C-blok worden geplaatst, worden uitgevoerd als onderdeel van die Python-besturingsstructuur.

C-blok#
if [] :: custom-switch
einde

Python-besturingscode die in een C-blok kan worden gebruikt, omvat:

Bij het opstarten gebruikt het een C-blok om vooruit te rijden wanneer de LED-bumper wordt ingedrukt.#
wanneer gestart :: hat events
[Build Used: Super Code Base 2.0]
[Drive forward whenever the LED Bumper is pressed.]
altijd
if [if bumper.is_pressed():] :: custom-switch
rijd [vooruit v] voor [200] [mm v] ▶
einde
einde

C Uitbreidbaar#

Het C Expandable-blok biedt ruimte om Python-besturingscode met meerdere vertakkingen te typen, zoals if, elifof elseExtra vertakkingen kunnen worden toegevoegd door op de pluspijl te klikken.

C Uitbreidbaar blok#
if [] :: custom-switch-expand
einde

De volgende Python-besturingscode kan worden gebruikt in een C Expandable-blok:

Bij het opstarten gebruikt het een C Expandable-blok om te stoppen wanneer een object wordt gedetecteerd en anders verder te rijden.#
wanneer gestart
[Build Used: Super Code Base 2.0]
[Drive forward if there is not an object in the way.]
altijd
if [if eye.is_object_detected():] :: custom-switch-expand
stop rijden
else [else:] :: custom-switch-expand
rijd [vooruit v] voor [200] [mm v] ▶
einde
einde

Booleaanse#

Het Booleaanse blok biedt ruimte om Python-code te typen die True of Falseretourneert. Het kan worden geplaatst binnen blokken met zeshoekige invoervelden.

Booleaanse blok#
<[] :: custom-switch>

Een Booleaanse blok kan een Python-voorwaarde bevatten.

Booleaanse blok met een Python-voorwaarde#
<[bumper.is_pressed()] :: custom-switch>

Een Booleaanse blok kan ook logische operatoren gebruiken:

Booleaanse codeblok met een logische operator uit Python#
<[bumper.is_pressed() or eye.is_object_detected()] :: custom-switch>

Een Booleaanse blok kan vergelijkingsoperatoren gebruiken om waarden te vergelijken:

  • Groter dan: >

  • Minder dan: <

  • Gelijk aan: ==

  • Andere vergelijkingsoperatoren zijn onder andere <=, !=, en >=

Booleaans blok met een Python-vergelijkingsoperator#
<[drivetrain.get_heading()> 100] :: custom-switch>
Bij het opstarten gebruikt het een Booleaanse waarde om vooruit te rijden wanneer de LED-bumper wordt ingedrukt.#
wanneer gestart :: hat events
[Build Used: Super Code Base 2.0]
[Drive forward whenever the LED Bumper is pressed.]
altijd
als <[bumper.is_pressed()] :: custom-switch> dan
rijd [vooruit v] voor [200] [mm v] ▶
einde
einde

Verslaggever#

Het Reporter-blok biedt ruimte om Python-code te typen die een waarde retourneert. Het kan worden geplaatst binnen blokken met circulaire invoer.

Verslaggeverblok#
([] :: custom-switch)

Een Reporter-blok kan Python-code bevatten die een waarde retourneert.

Reporterblok met Python-code die een waarde retourneert#
([drivetrain.get_rotation()] :: custom-switch)

In een Reporter-blok kunnen wiskundige operatoren worden gebruikt:

  • Optellen: +

  • Aftrekken: -

  • Deling: /

  • Vermenigvuldiging: *

Reporterblok met Python-toevoeging#
([drivetrain.get_heading() + 45] :: custom-switch)
Bij het opstarten wordt de draaiing van de aandrijving afgedrukt terwijl de robot draait.#
wanneer gestart :: hat events
[Build Used: Code Base 2.0]
[Display the rotation while turning.]
draai [rechts v] voor [450] graden ◀ en niet wachten
altijd
wis alle rijen
druk ([drivetrain.get_rotation()] :: custom-switch) af ▶
wacht [0.1] seconden
einde

Hoed#

Het Hat-blok biedt ruimte om een ​​Python-functie te definiëren. Blokken die onder het Hat-blok worden geplaatst, vormen de body van die functie.

Hoedblok#
[] :: hat custom-switch

Typ een Python-functiedefinitie in het Hat-blok. Parameters komen tussen haakjes te staan. Als de functie geen parameters gebruikt, laat de haakjes dan leeg.

Hat-blok met een Python-functiedefinitie#
[def function_name(parameter):] :: hat custom-switch
Bij het opstarten wordt een Hat-blok gebruikt om een ​​functie te definiëren en aan te roepen.#
[def drive_400():] :: hat custom-switch
[Build Used: Code Base 2.0]
[Create a function to drive the robot forward.]
rijd [vooruit v] voor (400) [mm v] ▶

wanneer gestart :: hat events
[drive_400()] :: custom-switch