Scratch/VCRobot v50

Материал из Letopisi.Ru — «Время вернуться домой»
(Различия между версиями)
Перейти к: навигация, поиск
Строка 25: Строка 25:
 
move (n1) steps
 
move (n1) steps
 
end
 
end
if <key [left arrow v] pressed?> then
+
if <<key [left arrow v] pressed?> and <not <key [right arrow v] pressed?>>> then
if <not <key [right arrow v] pressed?>> then
+
 
turn @turnLeft (n2) degrees
 
turn @turnLeft (n2) degrees
 
end
 
end
end
+
if <<key [right arrow v] pressed?> and <not <key [left arrow v] pressed?>>> then  
if <key [right arrow v] pressed?> then
+
if <not <key [left arrow v] pressed?>> then  
+
 
turn @turnRight (n3) degrees
 
turn @turnRight (n3) degrees
 
</scratchblocks>
 
</scratchblocks>
Строка 79: Строка 76:
 
если <не <клавиша [стрелка направо V] нажата>>, то
 
если <не <клавиша [стрелка направо V] нажата>>, то
 
повернуть @turnLeft на (n2) градусов
 
повернуть @turnLeft на (n2) градусов
конец
 
 
конец
 
конец
 
если <клавиша [стрелка направо v] нажата?> , то
 
если <клавиша [стрелка направо v] нажата?> , то

Версия 11:19, 15 февраля 2018

Код для проекта https://scratch.mit.edu/projects/162395866/


1) 1 сводный общий цикл контроля событий:

нажимы клавиш (кнопок) ручного управления действиями робота-пылесоса:

ход Вперед, поворот Налево, поворот Направо.

2) Наличие взаимного исключения действий клавиш (кнопок) управления:

Налево и Направо.

3) Объединение пар условий взаимного исключения в общие составные условия.


Содержание

Сводный общий цикл

Л: Латиница / En: Английский язык

Скрипт (на светлом фоне)

forever
if <key [up arrow v] pressed?> then
if on edge, bounce
move (n1) steps
end
if <<key [left arrow v] pressed?> and <not <key [right arrow v] pressed?>>> then
turn @turnLeft (n2) degrees
end
if <<key [right arrow v] pressed?> and <not <key [left arrow v] pressed?>>> then 
turn @turnRight (n3) degrees

Псевдокод скрипта

+++++++++++++++++++++++++++++++++++

forever

if <key [up arrow v] pressed?> then

if on edge, bounce

move (n1) steps

end

if <key [left arrow v] pressed?> then

if <not <key [right arrow v] pressed?>> then

turn @turnLeft (n2) degrees

end

end

if <key [right arrow v] pressed?> then

if <not <key [left arrow v] pressed?>> then

turn @turnRight (n3) degrees

+++++++++++++++++++++++++++++++++++

К: Кириллица / Ru: Русский язык

Скрипт (на светлом фоне)

всегда
если <клавиша [стрелка вверх v] нажата?> , то
если на краю, оттолкнуться
идти (n1) шагов
конец
если <клавиша [стрелка влево v] нажата?> , то
если <не <клавиша [стрелка направо V] нажата>>, то
повернуть @turnLeft на (n2) градусов
конец
если <клавиша [стрелка направо v] нажата?> , то
если <не <клавиша [стрелка влево v] нажата?>>, то
повернуть @turnRight на (n3) градусов

Псевдокод скрипта

+++++++++++++++++++++++++++++++++++

всегда

если <клавиша [стрелка вверх v] нажата?> , то

если на краю, оттолкнуться

идти (n1) шагов

конец

если <клавиша [стрелка влево v] нажата?> , то

если <не <клавиша [стрелка направо V] нажата>>, то

повернуть @turnLeft на (n2) градусов

конец

конец

если <клавиша [стрелка направо v] нажата?> , то

если <не <клавиша [стрелка влево v] нажата?>>, то

повернуть @turnRight на (n3) градусов

+++++++++++++++++++++++++++++++++++

Персональные инструменты
Инструменты