300000
English | Français | فارسی | 中文 | Українська | Azerbaijani | ខ្មែរ | Tiếng Việt | Bahasa Melayu | Deutsch | O'zbek | РусскийTurtle Walk
Общее количество побед: 213153
Что такое Blockly?
Blockly — это визуальный способ сборки кода с помощью блоков. Это отличный способ научиться программировать и делать хороший код. Подробнее об этом можно прочитать здесь. Вы также можете попробовать игры Blockly для детей здесь.
Как вы играете?
Здесь вы создадите код, чтобы переместить черепаху к ее пруду. Для этого с помощью мыши вы перетаскиваете блоки из серого прямоугольника посередине, и соединяете их со стартовым блоком. Когда вы нажимаете «Выполнить», он запускает код, который вы создали в блоке «Пуск ». Нажмите на кнопку «Решение», чтобы увидеть одно из возможных решений головоломки, не обязательно самое короткое.
Как выиграть?
Вы выигрываете, когда ваш код перемещает черепаху к ее пруду. Игра усложняется, когда вам приходится делать это с ограниченным количеством блоков.
Для начинающих
Что такое код?
«Код» может звучать сложно, страшно или загадочно, но это не так.
На самом деле, можно с уверенностью сказать, что вы используете код все время! Если вы когда-либо пользовались приложением, играли в игру на экране, нажимали на кнопку, значит, вы использовали код. Код — это всего лишь список инструкций, которые ваше устройство (телефон, планшет, компьютер, консоль) умеет читать и выполнять.
Blockly позволяет создавать код и экспериментировать с такими принципами кодирования, как переменные, функции, циклы и многое другое. Это те же самые идеи, которые программисты и разработчики приложений/игр используют в своей работе каждый день.
Что такое "хороший" код?
Во-первых, код хорош, когда он делает то, что должен! Это значит, что он «правильный». В этой игре ваш код «правильный», когда черепаха добирается до пруда. Тем не менее, существует более одного «правильного» способа сделать это. Допустим, черепахе нужно идти по прямой линии, чтобы добраться до водоема.
Вот один правильный код:
Начало:
⇧ Идем вперед ⇧
⇧ Идем вперед ⇧
⇧ Идем вперед ⇧
⇧ Идем вперед ⇧
⇧ Идем вперед ⇧
Является ли этот код правильным?
Да, черепаха доберется до водоема, так что это правильно.
Является ли этот код лучшим для этой задачи?
Нет. Хороший код также должен быть эффективным: он должен выполнять задачу с минимальным количеством кода (наименьшим количеством блоков). Черепаха также должна выбрать самый прямой путь. Конечно, на данный момент существует только один маршрут, но, как мы увидим в следующем примере, иногда бывает более одного короткого ответа.
Как вы можете выполнить ту же задачу с меньшим количеством блоков?
Блок петли будет повторять то, что вы поместили в него, столько раз, сколько захотите.
Как вы можете использовать цикл для того же самого?
Более качественный код будет выглядеть так:
Начало:
↺ повторить 5 раз ↺
⇧ Идем вперед ⇧
Этот код лучше в других отношениях. Видите как? Допустим, вместо пруда, который находится в 10 шагах, он находится в 100 шагах.
Что нужно изменить, чтобы переместить черепаху на 100 шагов вместо 10?
Вместо того, чтобы 90 раз прибавлять блок "go forward", вам нужно изменить только одну вещь: число в блоке loop. Этот код хорош тем, что он правильный, более эффективный и его легко исправить/изменить.
Начало:
↺ повторить 100 раз ↺
⇧ Идем вперед ⇧
Какой тип блока цикла будет масштабироваться еще проще, чем блок «повторяющегося» цикла?
Блок цикла "do until". Это масштабируется легче, чем блок повтора, потому что для 5 шагов вперед или 100 шагов вперед или даже 1000 шагов вперед код будет одним и тем же:
Начало:
↺ до пруда↺
⇧ Идем вперед ⇧
Другой пример: Можете ли вы сделать этот код лучше?
Здесь черепахе нужно подняться по «лестнице», чтобы добраться до пруда. Ниже приведен код, который поможет ему в этом. Это правильно, но не очень хорошо. Можете ли вы сделать его лучше? Помните, что хороший код должен быть правильным, эффективным и легко исправляться/изменяться.
Начало:
⇧ Идем вперед ⇧
← поверните налево ←
⇧ Идем вперед ⇧
→ повернуть направо →
⇧ Идем вперед ⇧
← поверните налево ←
⇧ Идем вперед ⇧
→ повернуть направо →
⇧ Идем вперед ⇧
← поверните налево ←
⇧ Идем вперед ⇧
Ответ
В коде мы повторяем блоки "идти вперед + поворачивать направо + идти вперед + поворачивать налево" снова и снова. Код будет короче и эффективнее, если мы поместим эти блоки в цикл.
Начало:
↺ до пруда↺
⇧ Идем вперед ⇧
← поверните налево ←
⇧ Идем вперед ⇧
→ повернуть направо →
Как вы можете адаптировать этот код?
Здесь немного другая лестница. Как вы можете изменить свой код, чтобы использовать его здесь?
Ответ
Вы можете сохранить свой старый код: он будет делать то же самое, и черепаха все равно доберется до пруда. В этом случае черепаха попытается продвинуться вверх и удариться о стену, а затем продолжит движение. Но черепаха выбирает более окольный путь, пытаясь продвинуться вверх, когда не может. Вместо этого вы можете дважды добавить «go forward» внутри цикла, как показано ниже. Как видите, в этой версии наличие самого короткого рабочего кода не обязательно является лучшим решением, так как черепахе требуется больше времени, чтобы добраться до водоема.
Начало:
↺ до пруда↺
⇧ Идем вперед ⇧
⇧ Идем вперед ⇧
← поверните налево ←
⇧ Идем вперед ⇧
⇧ Идем вперед ⇧
→ повернуть направо →
Сводка
Получайте удовольствие от написания кода с Blockly! Убедитесь, что вы постарались создать хороший код, который является правильным, эффективным и легко изменяемым или исправляемым.
Общая стратегия
Начните с программирования пути с простыми шагами направления (т.е. идите вперед, поворачивайте).
Затем проверьте, нет ли повторяющихся последовательностей, которые можно поместить в циклы. Если последовательности похожи, но не идентичны, проверьте, можно ли добавить шаги к более короткой последовательности без какого-либо эффекта, например, удар о стену, чтобы эти теперь равные последовательности могли быть заменены тем же циклом, выполненным столько раз, сколько необходимо.
Петли
В игре Turtle Walk есть 2 типа кольцевых блоков.
Повторить [X] раз(ы)
Цикл выполняется фиксированное количество раз, независимо от того, что происходит во время его выполнения.
До пруда, делайте...
Петля выполняется до тех пор, пока черепаха не доберется до водоема.
Вложенность
Вы можете вкладывать петли в другие петли или даже в цикл If... Тогда... (Else) внутри цикла.
Хитрости, которые требуют меньшего количества блоков
Чтобы сделать более качественный и короткий код, попробуйте следующее (нажмите для примеров):
Если действия повторяются, поместите их внутрь цикла.
В Прогулке 3, как вы можете использовать петлю, чтобы использовать меньше блоков?
С помощью петли повторяйте действия «идти вперед + поворачивать налево + идти вперед + поворачивать направо».
Движение по спиралям
Прогулка 8 может быть решена всего с 4 блоками. Как?
Чтобы добраться до водоема, черепахе действительно нужно только идти вперед и поворачивать направо, причем эти действия могут быть вложены внутрь повторяющихся петель. Не имеет значения, если черепаха повернет направо и попытается врезаться в стену в первый раз: в следующие разы она повернет направо, она сможет двигаться вперед. Мы можем думать об этом движении как о спирали, поворачивающей только в одном направлении (вправо или влево) и движущейся вперед.
Перемещение по лестницам
Прогулка 9 может быть решена всего за 5 блоков. Как?
Черепахе нужно добраться из правого нижнего угла в левый верхний. Он не может двигаться по диагонали прямо, поэтому он должен следовать по лестнице (в данном случае влево, вверх, влево, вверх). Даже если путь для перехода не является идеальной лестницей, это сработает. Опять же, не имеет значения, если черепаха столкнется со стенами по пути.
Комбинировать спирали и лестницы
Прогулка 12 может быть решена всего за 9 блоков. Как?
Сначала следуйте схеме «Спираль». То есть, внутри петли поворачиваем в одну сторону (вправо) и двигаемся максимально вперед (выбираем высокое число, здесь работает 5 -- опять же, черепахе не помешает удариться о стену).
Теперь черепаха может следовать по схеме «Лестница», даже если тропинка к пруду не является идеальной тропинкой в форме лестницы. Несколько раз двигайтесь влево и вверх, чтобы добраться до водоема.
Используйте блоки "if path".
Прогулка 5 может быть решена всего за 4 блока. Как?
Объедините блок «До пруда» с блоком «Если путь направо», чтобы черепаха поворачивала направо, когда может, но в остальном продолжала идти вперед.
Различные задачи
Пожалуйста, попробуйте вызовы из нашего широкого ассортимента прогулок. Некоторые из них имеют только один коридор, а другие ответвляются. У некоторых есть ловушки и соединенные между собой двери, ключи для отпирания дверей, открытые пространства с препятствиями или лабиринты, которые нужно пересечь.
Некоторые прогулки с черепахами похожи на лабиринты
Например, Прогулки 36, 44, 48 – это очень простые лабиринты.
Представьте, что вы попали в лабиринт, где стены вокруг вас закрывают вам обзор — какую стратегию побега вы можете применить?
Простая стратегия заключается в том, чтобы следовать либо за правой, либо за левой стеной.
Как можно запрограммировать такую стратегию?
Подсказка: Для этого нужно всего 6 блоков, мы позволим вам разобраться.
Например, в некоторых прогулках, следуя по одной стене, черепаха попадает в ловушку, а другая ведет ее к пруду. Прогулка 44.
Когда эта стратегия полностью проваливается?
В качестве примера можно привести Прогулку 10. Независимо от того, следует ли черепаха за левой или правой стеной, она никогда не достигнет водоема.
В чем заключается математическая проблема?
Этот метод дает сбой, когда есть замкнутая петля, и черепаха находится внутри петли, а пруд снаружи или наоборот. В любом случае, черепаха никогда не достигнет водоема, следуя по одной стене.
Что делать, если эта стратегия терпит неудачу?
В этих случаях вы можете попробовать выполнить другие шаги, прежде чем идти вдоль стены, или сменить стену, или следовать вдоль стены в течение некоторого времени, а затем выполнить несколько других шагов, чтобы добраться до пруда.
Видите ли вы прогулки, которые можно запрограммировать таким образом?
Следите за обновлениями или подписывайтесь на них: