Comments 152
Почему-то вспомнились блок-схемы на уроках по программированию, которые я всегда рисовал уже по написанному коду :)
+52
Где ты «ЛОГО» с черепашкой
+3
Здесь msdn.microsoft.com/en-us/devlabs/cc950524.aspx. Это сайт Майкрософтовского Small Basic, в котором существует API для реализации функций Turtle Logo.
И здесь logo.codeplex.com/
И здесь logo.codeplex.com/
+1
ЛОГО — мульти-парадигмальный язык, на котором можно обучать как императивному, так и функциональном программированию. А Basic…
«Практически невозможно научить хорошему стилю программирования студентов, которые раньше имели дело с Бейсиком; в качестве программистов они умственно покалечены без надежды на восстановление». Дейкстра.
«Практически невозможно научить хорошему стилю программирования студентов, которые раньше имели дело с Бейсиком; в качестве программистов они умственно покалечены без надежды на восстановление». Дейкстра.
+1
Ха-ха. Надо выпускать пазлы для программистов. «От 2 до 4 лет опыта С/С++»
+81
Авторы явно вдохновлялись языком Scratch
+12
Еще, помнится, в начале 2k был такой игровой движок — Virtool. Позволял код писать как вручную, так и путем составления блоков. Какое-то время с ним баловался — забавная штука.
arduino.tw/wp-content/uploads/Image/0001-1280x998.png
arduino.tw/wp-content/uploads/Image/0001-1280x998.png
+2
Выбрался из лабиринта!
+5
А я так:
+6
По всей видимости, мой вариант самый короткий)
+21
Какой-то наприличный жест получился ;)
+53
not убрать еще можно
+1
Правда он в стену постоянно ходит :)
+2
Если я ничего не путаю, то из представленных решений, при минимальном количестве элементов, по общепроходной эффективности он тре-тий(2), а для конкретно этого лабиринта — второй(2).
№1 дает — 63 хода на 8 элементов.
№2 дает(2) — 27 ходов на 6 элементов.
Мой (трансформированный alno) дает — 27 ходов на 8 элементов.
При этом все его проходят.
Так что баланс выдержан по фэн-шую)
з.ы. самый заточеный вроде этот — минимальные 15 ходов на 11 элементов.
№1 дает — 63 хода на 8 элементов.
№2 дает(2) — 27 ходов на 6 элементов.
Мой (трансформированный alno) дает — 27 ходов на 8 элементов.
При этом все его проходят.
Так что баланс выдержан по фэн-шую)
з.ы. самый заточеный вроде этот — минимальные 15 ходов на 11 элементов.
+2
Поворот это ход?
тут сколько?
<img src="" alt=«image»/>
тут сколько?
<img src="" alt=«image»/>
0
Лучшим был бы вариант, имхо, который ни разу не «тыркнется» в стену и с минимальным числом ходов. Но в любом случае для универсального алгоритма обхода лабиринта не хватает списков, которые есть только в полной версии Blockly.
0
можно сделать минимальное количество ходов, НО в данном лабиринте, в другом этот же алгоритм покажет себя не лучшим образом и выиграет другой алгоритм. Все же я считаю что алгоритм должен быть универсальным.
0
Вот вам тогда гирляндочный вариант ;)
0
Кто сделает проще?) Минимальные 15 ходов на 8 элементов.
0
ps. Не смотря на то, что использовал 7 элементов, лично мне такой вариант не по душе.
+2
Кажется, эффективнее уже некуда. Действительно. Вы отобрали первенство)
0
не универсальное решение… а если маршрут немного изменится…
0
Прочитайте, пожалуйста, этот комментарий.
0
и заработает наверное только на данном лабиринте?
вообще в идеале чтобы лабиринт генерить можно было бы рандомный
вообще в идеале чтобы лабиринт генерить можно было бы рандомный
0
Ух как вас занесло… На каком языке пишете?
0
UFO just landed and posted this here
мой вариант
0
мои 3 варианта
+14
Третий вариант особо суровый.
+16
И пусть хоть кто-то скажет, что задача не решена :))
+58
UFO just landed and posted this here
А этот вариант не считается? ;)
0
Я так и сделал. Дизайнер, блин)
0
Наглядное представление различия в мышлении программиста и обычного человека. (Не сарказм )
-2
Аналог:
: Р
: Р
0
выглядит, как будто в лабиринте человечек, дойдя до значка, вешается на нём)
интересно, что они этим хотели сказать
интересно, что они этим хотели сказать
0
не хавтает кармы на картинку
habrastorage.org/storage2/572/3db/c0a/5723dbc0a9e271b3e1c1fd5ea59a6d4f.png
habrastorage.org/storage2/572/3db/c0a/5723dbc0a9e271b3e1c1fd5ea59a6d4f.png
0
Алгоритм левой руки :)
Надеюсь, без ошибок. А вообще, неправильно они подошли к графическому представлению. В таком виде оно не сильно помогает понять ход программы.
+4
Ох блин, ahead можно было поменять на to the left. Не догадался :)
+1
Мне кажется моя интерпретация этого правила не так лаконична, но более правильна:
+1
Или вот так, если хотим, чтобы наш герой не бился об стены:
+1
Посмотрите внизу, у меня не бьётся, проходит любой лабиринт, меньше блоков… И правило всё то же.
0
Да говорю же, не знал о том что можно проверять стену по сторонам, поэтому пришлось извернуться :) Неочевидно сделали. turn left и turn right есть отдельными блоками, а wall только ahead.
0
Надо было сделать, чтобы после трех ударов головой об стену, к примеру, человечек погибал. Тогда было бы интереснее.
PS. это решение похоже на моё =).
PS. это решение похоже на моё =).
+1
Интересно применять такое в образовании
0
UFO just landed and posted this here
Предлагаю такой вариант:
+1
Эээ… Ну, наверно, это должно быть интересно…
Но у меня, честно говоря, впечатление, что это недоGUI и недоСредаРазработки… Может быть, конечно, это дело привычки. Но программирование оно программирование же. Текст то бишь.
Есть, конечно, то же визуальное программирование в Robotics Developer Studio, но там это похоже скорее на блок-схему. А тут как-то слишком много картинок на квадратный пиксель. Ну и да, ядрёные цвета-то какие! :)
Но у меня, честно говоря, впечатление, что это недоGUI и недоСредаРазработки… Может быть, конечно, это дело привычки. Но программирование оно программирование же. Текст то бишь.
Есть, конечно, то же визуальное программирование в Robotics Developer Studio, но там это похоже скорее на блок-схему. А тут как-то слишком много картинок на квадратный пиксель. Ну и да, ядрёные цвета-то какие! :)
+2
-22
На хабре очень не любят эту картинку почему-то :)
+4
Из-за фразы после многоточия. Как это ЗАЧЕМ? Затем что это интересно :3 (я не конкретно про троллейбус, а про сборку различных вундервафль из подручных материалов)
+11
Потому что ее вставляют где ни попадя ;)
+8
Да задолбала эта картинка уже.
+1
Я так понимаю все предложенные выше варианты программы выходят из конкретно этого лабиринта?
Если его отразить зеркально (или в программе поменять left на right), то работать не будет?
Кто-то уже написал универсальный алгоритм? ;)
Если его отразить зеркально (или в программе поменять left на right), то работать не будет?
Кто-то уже написал универсальный алгоритм? ;)
0
Половина предложенных вариантов используют классический алгоритм обхода правой(левой) руки. Но не все лабиринты можно пройти подобным способом, можно попасть в бесконечный цикл. Поэтому, если наложить на лабинт некоторые ограничения, то можно считать эти решения универсальными.
+1
Вот и я о том, что если поменять правило, то человечек погибнет с голоду в левом верхнем углу.
А рука для правила выбрана только глядя на лабиринт.
Т.е. если бы в ладиринте был такой же закоулок справа, то хана человечку. решения нет?
А рука для правила выбрана только глядя на лабиринт.
Т.е. если бы в ладиринте был такой же закоулок справа, то хана человечку. решения нет?
-1
Выше писали алгоритм по «правилу левой руки». Для односвязных лабиринтов он универсален.
+1
Почему не правой?
0
они одинаковы, берите любую)
+2
Докажите ;)
Сравните
и
Во втором варианте человечек погибает…
Сравните
и
Во втором варианте человечек погибает…
0
UFO just landed and posted this here
Объясните разницу в алгоритмах и дополнительный move forward?
0
UFO just landed and posted this here
Да я знаю теорию. Вот только в Вашем алгоритме человечек, дойдя до в хода в кольцевую, разворачивается, а по правилу левой руки должен держаться стены и зайти в кольцевую…
0
UFO just landed and posted this here
Перефразирую свой вопрос: у кого получилось вывести человечка из левого верхнего угла, если он туда попал?
0
Например, мой вариант подходит только для этого лабиринта. Но вместо универсальности, я выбрал скорость и простоту — человек идёт прямо к финишу за считанные секунды, не останавливаясь/поворачиваясь там где этого не нужно.
Но, если Вы хотите универсальный вариант, можно использовать правилу левой/правой руки. Однако, в таком случае быстро его (лабиринт) не пройти.
Но, если Вы хотите универсальный вариант, можно использовать правилу левой/правой руки. Однако, в таком случае быстро его (лабиринт) не пройти.
0
Это невозможно читать, никому
+4
UFO just landed and posted this here
Мой вариант не быстрее?
0
+4
UFO just landed and posted this here
Если убрать цветные блоки и оставить только текст, разве не будет понятнее? Даже для начинающих. Не будет ли их смущать это цветовая мельтешня?
+2
А я вот так выбрался :)
+1
Очевидно же, что это обучающий язык и предназначен для знакомства с программированием, а не для реальной разработки. Так что и цвета в тему и построение блоков :)
+1
напомнило в школе кенгуренка. Он мог еще хвостом рисовать (опустить \ поднять хвост). И чем--то Логомиры на маке.
Здорово, на самом деле. Деткам должно понравится. Не понял только почему именно эти языки выбраны (js, dart и питон). Есл есть js, то с дартом понятно. Но питон… И почему не другие
Здорово, на самом деле. Деткам должно понравится. Не понял только почему именно эти языки выбраны (js, dart и питон). Есл есть js, то с дартом понятно. Но питон… И почему не другие
0
В Maze только один лабиринт? Интересно получилось, поигрался, порешал. Добротная почти полноценная игра получилась.
0
Бьсюь об заклад, что нормальный девелопер напишет кусок кода на своем языке в разы быстрее, чем дергать мышкой туда-сюда.
Так в чем же прикол?
P.S. Визуальное программирование годится только для того, что бы упростить процесс обучения программированию детей. Но, по-моему Scratch с этими целями весьма отлично справляется.
P.P.S. А для обмена языко-платформо-независимыми данными вполне отлично можно пользоваться такими вещами, как XML/JSON/What ever else.
Так в чем же прикол?
P.S. Визуальное программирование годится только для того, что бы упростить процесс обучения программированию детей. Но, по-моему Scratch с этими целями весьма отлично справляется.
P.P.S. А для обмена языко-платформо-независимыми данными вполне отлично можно пользоваться такими вещами, как XML/JSON/What ever else.
0
мой вариант поиска выхода из лабиринта:
0
Действительно интересная штуковина) Соглашусь с обучением, агитировал бы в школьную программу!
Было бы меньше прицепов в универах, которым приходилось построчно рассказывать что написано в коде.
зы: еще проснулась ностальгия по eJay (хоть и другая тема… но моторика перетаскивания блоков у меня зародилась именно там).
Было бы меньше прицепов в универах, которым приходилось построчно рассказывать что написано в коде.
зы: еще проснулась ностальгия по eJay (хоть и другая тема… но моторика перетаскивания блоков у меня зародилась именно там).
0
Меня одного смутил «экпортированный» js-код?
0
Выглядит очень интересно, но есть одно НО: очень похожая вещь (по крайней мере, похожая в основном функционале, не считая экспорт в JS и т.д.) давно уже существует: Scratch Programming Language, разработан в MIT: scratch.mit.edu/ и достаточно популярен на Западе, используется для обучения программированию в младших классах в школах. IDE программы — на локальном компьютере, но скомилированную программу можно конвертировать в нечто Java class — подобное, загрузить на веб-сайт проекта и запускать из браузера. Я бы посоветовал связаться с разработчиками Scratch и продолжать работать вместе с ними (MIT, как ни как).
+1
А я вот создал AI для бойца прикрывающего отход отряда от догоняющих зомби. Передвигается всегда смотря назад, когда попадает в тупик, контратакует до ближайшего перекрёстка и затем опять возвращается в роль прикрывающего.
0
Что-то вроде этого получилось:
0
У вас алгоритм работает только в условиях конкретно данного лабиринта, по-правильному всегда нужно придерживаться одной стороны стены.
0
Видимо я чего то не понимаю… Если лабиринт поменять на другой до конца может не дойти ни у кого. Поправьте меня, если я ошибаюсь, но разве можно написать универсальный алгоритм прохода по лабиринту, без запоминания пройденного пути?
0
не знаю… но по сути это просто перебор всех вариантов и один из них явно будет выигрышным
0
Да, есть алгоритмы для решения этих задач, там выше давали ссылку на их описание. И я привёл пример реализации.
Вкратце — нужно идти по лабиринту так, чтобы правая (или левая) рука постоянно касалась стенки, тогда дойдя к кольцу вы пройдёте по нему и пойдёте дальше под противоположной стеной. Недостаток — не лучшее время решения задачи.
Вкратце — нужно идти по лабиринту так, чтобы правая (или левая) рука постоянно касалась стенки, тогда дойдя к кольцу вы пройдёте по нему и пойдёте дальше под противоположной стеной. Недостаток — не лучшее время решения задачи.
0
Есть подобное на русском?
0
UFO just landed and posted this here
Ну примеры и в нем есть на русском
Там же пощелкайте по ссылкам:
Puzzle — Learn how blocks work while solving this simple country quiz.
Maze — Use Blockly to solve a maze.
Turtle — Drawing with Blockly.
Graph — Blockly's graphing calculator.
Code — Export a Blockly program into JavaScript, Python or XML.
у меня все открывались в русском языке(у всех был выбор языка).
Там же пощелкайте по ссылкам:
Puzzle — Learn how blocks work while solving this simple country quiz.
Maze — Use Blockly to solve a maze.
Turtle — Drawing with Blockly.
Graph — Blockly's graphing calculator.
Code — Export a Blockly program into JavaScript, Python or XML.
у меня все открывались в русском языке(у всех был выбор языка).
0
Не удержался и попробовал сделать свой вариант :)
+2
Почему-то не подтянулась картинка…
bigdig.com.ua/files/code.png
bigdig.com.ua/files/code.png
+1
Ох, как жаль, что я узнал об этом так поздно. Жена бы в школе заюзала на уроках информатики.
0
Через год, другой закроют эту «игрушку».
0
Правило правой руки:
0
Прочитав заголовок подумал: «LabVIEW от Google...» и ужаснулся т.к. до жути не любил его в университете, но эта штука будет по-интереснее…
0
Вот мой вариант прохождения:
0
Sign up to leave a comment.
Визуальный язык программирования Google Blockly