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 V5 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,whileofforinstructies.C Expandable — Biedt ruimte om Python-besturingscode met meerdere vertakkingen te typen, zoals
if,elif, ofelse.Boolean — Biedt ruimte om Python-code te typen die
TrueofFalseretourneert.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.
[] :: custom-switch
Een Stack-blok kan één of meerdere regels Python-code bevatten.
wanneer gestart :: hat events
[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.
if [] :: custom-switch
einde
Python-besturingscode die in een C-blok kan worden gebruikt, omvat:
wanneer gestart :: hat events
[Drive forward when the screen is pressed.]
altijd
if [if brain.screen.pressing():] :: 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.
if [] :: custom-switch-expand
einde
De volgende Python-besturingscode kan worden gebruikt in een C Expandable-blok:
wanneer gestart
[Turn right when the screen is pressed, otherwise turn left.]
altijd
if [if brain.screen.pressing():] :: custom-switch-expand
draai [rechts v]
else [else:] :: custom-switch-expand
draai [links 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.
<[] :: custom-switch>
Een Booleaanse blok kan een Python-voorwaarde bevatten.
<[bumper_a.is_pressed()] :: custom-switch>
Een Booleaanse blok kan ook logische operatoren gebruiken:
<[bumper_a.is_pressed() or bumper_b.is_pressed()] :: custom-switch>
Een Booleaanse blok kan vergelijkingsoperatoren gebruiken om waarden te vergelijken:
Groter dan:
>Minder dan:
<Gelijk aan:
==Andere vergelijkingsoperatoren zijn onder andere
<=,!=, en>=
<[drivetrain.get_heading()> 100] :: custom-switch>
wanneer gestart :: hat events
[Drive forward whenever the screen is pressed.]
altijd
als <[brain.screen.pressing()] :: 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.
([] :: custom-switch)
Een Reporter-blok kan Python-code bevatten die een waarde retourneert.
([drivetrain.rotation()] :: custom-switch)
In een Reporter-blok kunnen wiskundige operatoren worden gebruikt:
([drivetrain.rotation() + 45] :: custom-switch)
wanneer gestart :: hat events
[Display the rotation while turning.]
draai [rechts v] voor [450] graden ◀ en niet wachten
altijd
wis alle rijen
druk ([drivetrain.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.
[] :: 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.
[def function_name(parameter):] :: hat custom-switch
[def drive_400():] :: hat custom-switch
[Create a function to drive the robot forward.]
rijd [vooruit v] voor (400) [mm v] ▶
wanneer gestart :: hat events
[drive_400()] :: custom-switch