Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Робот моделирует поведение лабораторной крысы

Чулан
Перевод
Поведение робота, управляемого специальной программой, удивительно напоминает поведение грызунов. Программа моделирует часть мозга крысы и используется в точно таких же классических экспериментах как и те что ставятся над живыми грызунами.
Читать дальше →
Всего голосов 2: ↑2 и ↓0 +2
Просмотры 322
Комментарии 0

Пройти лабиринт

Занимательные задачки
Клеточный лабиринт — это прямоугольник из квадратных комнат, между некоторыми из них есть перегородки.
НЛО забросило Вас в клеточный лабиринт MxN (M и N известны), без входов и выходов. В одной из комнат лежит приз.
У Вас есть сколь угодно много времени и памяти. Ваша цель — добраться до приза. Гарантируется, что это сделать можно.
Что Вы будете делать?
UPD: мои извинения, варианты, предложенные Tails и Brotherofken указали, что я ошибся при переформулировке.
Канонически нужно было составить программу для робота, который умеет только ходить — вперед, назад, вправо, влево. Условия он проверять не умеет, то, что уперся в стену — не замечает, что взял приз — тоже. Нужно составить программу (конечной длины), действуя по которой он гарантированно побывает в клетке с призом и остановится.
Всего голосов 11: ↑6 и ↓5 +1
Просмотры 1.4K
Комментарии 36

Лабиринты Бильбо Беггинса

Блог компании Papa Buba Diop Разработка под iOS *Разработка мобильных приложений *


Нет в русском языке нарицательного существительного, которое не годилось бы для фамилии еврея.
И нет на Хабре статьи, которую нельзя было бы сделать игрушкой под iPad.

Для доказательства утверждения я взял первую попавшуюся публикацию (ссылка ) и сделал из нее приложение.
Продукт был выложен и одобрен в App Store.
Результат своего труда я решил вынести на обозрение общественности. Суд Хабра-хабра, конечно, не самый гуманный, но известны на Родине суды и пострашнее.

Алгоритм Эллера, спасибо автору публикации deadkrolik-у, описан подробно и внятно.
Будучи человеком небрежным, я запрограммировал его не думая и забыл.
А зря.
Читать дальше →
Всего голосов 52: ↑35 и ↓17 +18
Просмотры 23K
Комментарии 32

Алгоритм поиска путей в лабиринте

Программирование *Алгоритмы *
Из песочницы
Доброго времени суток, уважаемое сообщество.

Предыстория



В один прекрасный день, гуляя просторами интернета, был найден лабиринт. Интересно стало узнать его прохождение и погуляв еще по сети, я так и не нашел, рабочей программной реализации, решения лабиринта.

Вот собственно и он:




Рабочий день был скучный, настроение было отличное. Цель, средства и желание имеются. Вывод очевиден, будем проходить.

Кого заинтересовал, прошу под кат
Всего голосов 65: ↑41 и ↓24 +17
Просмотры 116K
Комментарии 100

Авторское право на сгенерированный лабиринт?

Creative Commons *
Программист Джим Бамгарднер (Jim Bumgardner) в свободное время увлекается составлением лабиринтов. На днях он посетил супермаркет и увидел пачку с макаронами Kraft Mac & Cheese, на которой изображено «что-то очень знакомое».

Для постороннего человека картинка может показаться ничем не выдающейся, но Джим потратил много лет на написание программного обеспечения для генерации таких лабиринтов. Если посмотреть внимательнее, то можно увидеть вершины спирали Фибоначчи. По словам автора, это довольно уникальный дизайн.


Читать дальше →
Всего голосов 91: ↑75 и ↓16 +59
Просмотры 39K
Комментарии 52

Случайный лабиринт на JS в сами знаете сколько строк

Ненормальное программирование *JavaScript *Алгоритмы *
Из песочницы
Начитавшись статей про [все что угодно] на JavaScript в 30 строк кода, я подумал: чем я хуже? Не найдя в перечне своих недостатков пункт «написание плохого кода», решил сделать что-нибудь интересное.

Лабиринты всегда веяли в мою сторону некоторой магией и загадками, поэтому поиск «чего-нибудь интересного» закончился достаточно быстро. К сожалению, создание игры затянулось на долгие часы экспериментов над консолью и моими нервами.

Изначально, осознавая размеры праведного гнева адептов непорочного программирования, я не планировал публиковать свои труды, но после того, как игра понравилась коту, паре друзей и моему самолюбию — решил написать статью (благо в нее можно внедрить теоретическую часть).

Для сторонников принципа «меньше знаешь — крепче спишь» предлагается cсылка на JSFiddle (управление стрелочками).
Читать дальше →
Всего голосов 47: ↑33 и ↓14 +19
Просмотры 28K
Комментарии 16

Решение лабиринтов на Perl

Perl *Программирование *Алгоритмы *
Классическая задача при игре в лабиринте состоит в поиске прохода через него от входа до выхода. Путь-решение рисуется на карте лабиринта. В большинстве случаев лабиринты генерятся компьютерами, которые пользуются алгоритмами вроде поиска в глубину. Интересно, что решать лабиринт можно при помощи того же самого алгоритма.

Читаем лабиринт


Лабиринт можно представлять в разных форматах. Мы будем использовать SVG, поскольку в этом случае легко будет нарисовать решение поверх него.

Пример лабиринта в SVG:
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="112" height="96" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <rect width="112" height="96" fill="white" stroke="none" />
  <title>5 by 4 orthogonal maze</title>
  <g fill="none" stroke="#000000" stroke-width="3" stroke-linecap="round" stroke-linejoin="round">
    <line x1="16" y1="16" x2="32" y2="16" />
    <line x1="48" y1="16" x2="80" y2="16" />
    <line x1="16" y1="80" x2="96" y2="80" />
    <line x1="16" y1="16" x2="16" y2="80" />
    <line x1="96" y1="16" x2="96" y2="80" />
    <line x1="64" y1="16" x2="64" y2="32" />
    <line x1="32" y1="32" x2="32" y2="48" />
    <line x1="32" y1="32" x2="48" y2="32" />
    <line x1="64" y1="32" x2="64" y2="48" />
    <line x1="64" y1="32" x2="80" y2="32" />
    <line x1="32" y1="48" x2="48" y2="48" />
    <line x1="48" y1="48" x2="48" y2="64" />
    <line x1="48" y1="48" x2="64" y2="48" />
    <line x1="80" y1="48" x2="80" y2="64" />
    <line x1="16" y1="64" x2="32" y2="64" />
    <line x1="48" y1="64" x2="64" y2="64" />
    <line x1="80" y1="64" x2="80" y2="80" />
  </g>

  <g fill="black" stroke="none" stroke-width="1">
    <text x="24" y="26" text-anchor="middle" style="font-family:Arial Narrow; font-size: xx-small;">1</text>
    <text x="40" y="26" text-anchor="middle" style="font-family:Arial Narrow; font-size: xx-small;">2</text>
    <text x="56" y="26" text-anchor="middle" style="font-family:Arial Narrow; font-size: xx-small;">3</text>
    <text x="72" y="26" text-anchor="middle" style="font-family:Arial Narrow; font-size: xx-small;">4</text>
    <text x="88" y="26" text-anchor="middle" style="font-family:Arial Narrow; font-size: xx-small;">5</text>
    <text x="24" y="42" text-anchor="middle" style="font-family:Arial Narrow; font-size: xx-small;">6</text>
    <text x="40" y="42" text-anchor="middle" style="font-family:Arial Narrow; font-size: xx-small;">7</text>
    <text x="56" y="42" text-anchor="middle" style="font-family:Arial Narrow; font-size: xx-small;">8</text>
    <text x="72" y="42" text-anchor="middle" style="font-family:Arial Narrow; font-size: xx-small;">9</text>
    <text x="88" y="42" text-anchor="middle" style="font-family:Arial Narrow; font-size: xx-small;">10</text>
    <text x="24" y="58" text-anchor="middle" style="font-family:Arial Narrow; font-size: xx-small;">11</text>
    <text x="40" y="58" text-anchor="middle" style="font-family:Arial Narrow; font-size: xx-small;">12</text>
    <text x="56" y="58" text-anchor="middle" style="font-family:Arial Narrow; font-size: xx-small;">13</text>
    <text x="72" y="58" text-anchor="middle" style="font-family:Arial Narrow; font-size: xx-small;">14</text>
    <text x="88" y="58" text-anchor="middle" style="font-family:Arial Narrow; font-size: xx-small;">15</text>
    <text x="24" y="74" text-anchor="middle" style="font-family:Arial Narrow; font-size: xx-small;">16</text>
    <text x="40" y="74" text-anchor="middle" style="font-family:Arial Narrow; font-size: xx-small;">17</text>
    <text x="56" y="74" text-anchor="middle" style="font-family:Arial Narrow; font-size: xx-small;">18</text>
    <text x="72" y="74" text-anchor="middle" style="font-family:Arial Narrow; font-size: xx-small;">19</text>
    <text x="88" y="74" text-anchor="middle" style="font-family:Arial Narrow; font-size: xx-small;">20</text>
  </g>
</svg>





Файл мы будем обрабатывать двумя регулярками – одна для размера, а вторая – для поиска линий.
Читать дальше →
Всего голосов 15: ↑10 и ↓5 +5
Просмотры 7.4K
Комментарии 6

Генерация и решение лабиринта с помощью метода поиска в глубину по графу

Алгоритмы *C *
Из песочницы
image

В этой статье речь пойдет о самом простом в реализации алгоритме генерации «идеального» лабиринта и его применении для поиска пути.

Мы рассмотрим алгоритм, основанный на бэктрекинге, позволяющий создавать лабиринты без циклов, имеющие единственный путь между двумя точками. Алгоритм не самый быстрый, довольно требователен к ресурсам, по сравнению с алгоритмом Эйлера или Крускала, но очень прост в реализации и позволяет создавать ветвистые лабиринты с очень длинными тупиковыми ответвлениями.

Заинтересовавшихся — прошу под кат.
Читать дальше →
Всего голосов 37: ↑35 и ↓2 +33
Просмотры 102K
Комментарии 26

Неприлично простой алгоритм генерации лабиринтов

Алгоритмы *
Из песочницы
Простенький алгоритм генерации идеальных лабиринтов в самом обычном двухмерном пространстве. Nuff said, остальное под катом.
Читать дальше →
Всего голосов 25: ↑13 и ↓12 +1
Просмотры 19K
Комментарии 23

Неприлично простая реализация неприлично простого алгоритма генерации лабиринта

C++ *Алгоритмы *
Продолжение этой статьи об очень простом алгоритме генерации прямоугольных лабиринтов. В этой статье я приведу мою реализацию алгоритма на С++, а также покажу несколько дополнительных функций, которые породил мой скучающий мозг. Если осмелитесь продолжить читать, убедитесь, что ознакомились с моей предыдущей статьей. Глянули? Молодцы, продолжаем.
Читать дальше →
Всего голосов 51: ↑39 и ↓12 +27
Просмотры 33K
Комментарии 54

Алгоритм генерации гирлянды для новогодней головоломки

Я пиарюсь
image Чтобы занять себя как-то бессонными ночами, опять засел за написание игрушек под Android. Так как скоро новый год, то решил, что игрушка должна быть новогодней. Для меня неотъемлемой частью нового года и новогодней ёлки является гирлянда, так что решение идея пришла сама — буду делать головоломку — собери гирлянду. В процессе разработки, для меня было два интересных момента:

1. Генерация гирлянды.
2. Работа с платежами в Google Play.

Вот об этом я и расскажу подробнее ниже…
Читать дальше →
Всего голосов 8: ↑8 и ↓0 +8
Просмотры 3.1K
Комментарии 3

Открытка-лабиринт. Подарок, который невозможно открыть, не разгадав головоломку

DIY или Сделай сам Игры и игровые консоли Логические игры
Однажды я принёс другу на день рождения подарок, завёрнутый в бумагу с узором лабиринта. Друг пошутил, что было бы здорово, если бы надо было по-настоящему найти путь, чтобы открыть подарок. Мы принялись обсуждать, как можно построить механический лабиринт, причём без использования какой-либо электроники.
Так родилась идея к следующему празднику создать открытку-головоломку. В этой статье я расскажу, как её изготовить и какие тонкости нужно учесть.


Лабиринт в процессе прохождения.
Читать дальше →
Всего голосов 151: ↑151 и ↓0 +151
Просмотры 60K
Комментарии 51

Бегущий в лабиринте: анализ нейронной активности мозга крысы в реальном времени

Блог компании ua-hosting.company Научно-популярное Биотехнологии Физика


Какую суперсилу вы бы выбрали: полет, невидимость или телепатию? Живым, в каком-то смысле, воплощением последнего всегда был персонаж комиксов Люди-Икс профессор Чарльз Ксавье, появившийся еще в далеком 1963 году из-под пера Стэна Ли. Но в комиксах и не такие суперсилы можно встретить. А что насчет реальности? Можно ли читать мысли другого существа? Как оказывается, теперь можно, но не так как вы себе представляете. Сегодня мы с вами будем знакомиться с исследованием, главным достижением которого является считывание электронной активности нейронов мозга подопытной крысы, бегущей по лабиринту, в реальном времени. Как ученым удалось забраться в голову крысы, что им удалось этим добиться и какие перспективы их технологии? Доклад исследователей даст нам ответы на эти и другие вопросы. Поехали.
Всего голосов 23: ↑21 и ↓2 +19
Просмотры 5.5K
Комментарии 1

Система генерации ландшафта лабиринта с улучшенным визуальным реализмом [перевод статьи Jinmo Kim]

Программирование *Разработка игр *Алгоритмы *Дизайн игр *AR и VR
Из песочницы

Привет, Хабр!


В этой публикации я расскажу о статье автора Jinmo Kim: "Maze Terrain Authoring System in Immersive Virtual Reality for New Visual Realism". Она была опубликована 4.04.2019. Полный текст статьи можно посмотреть здесь.


Краткое описание системы


В статье предложена авторская система создания лабиринтных ландшафтов, с помощью которой пользователь может автоматически генерировать различные сложные узоры в простой и интуитивно понятной системе. С помощью информации о лабиринте, рассчитанной в программе, быстро и эффективно генерируется трехмерный ландшафт лабиринта.


Предложенная система генерации ландшафта лабиринта состоит из трех основных функций:


  • функция автоматической генерации сетки лабиринта различных размеров и узоров, реализованная с помощью классического алгоритма генерации лабиринта;
  • функция генерации кругового лабиринта;
  • функция преобразования лабиринта из ручного эскиза в 3D объект с помощью алгоритма обработки изображений.

С помощью предложенной системы, состоящей из этих трех функций, можно эффективно создавать различные лабиринты, от однородных до нерегулярных. Эта разработка позволит генерировать лабиринтные ландшафты различных концепций напрямую из расчетов, сделанных через эту же систему. Кроме того, в этой работе проведен анализ улучшения эффекта присутствия и погружения в виртуальную реальность, т.е. визуального реализма. Также, в этой работе был проведен анализ пригодности предложенной авторской системы с помощью опроса.

Читать дальше →
Всего голосов 22: ↑22 и ↓0 +22
Просмотры 4.4K
Комментарии 3

Альтернатива гудящим фазоинверторам: трансмиссионные линии (TQWT, ALT)

Блог компании Pult.ru Периферия Физика Звук
Сегодня самым популярным акустическим оформлением как домашних, так и студийных АС заслуженно считается фазоинверторное. Применение фазоинвертора — это простой и недорогой способ получить достаточное количество низких частот без использования большой площади излучающей поверхности динамиков и шкафоподобных корпусов. Однако, как и другие рациональные решения в электроакустике, применение фазоинверторов имеет недостатки. И недостатки критично сказываются на верности воспроизведения. Среди самых вредных недостатков этих АС можно выделить бубнение, турбулентное гудение, резонансное дребезжание, уханье и прочие “злокачественные” особенности ФИ-звучания.


От всего вышеописанного хочется избавиться. Сложно найти меломана, который хотя бы раз не ругал фазоинверторную акустику и не искал альтернативу. С последней всё не так просто. Среди возможных вариантов относительное распространение получила лабиринтная акустика. Проблема лабиринтов в том, что они не технологичны и требуют высокой культуры производства, что закономерно отражается на стоимости. Относительно бюджетный вариант лабиринта — трансмиссионная линия, она позволяет добиться плавной АЧХ, при этом сохранить высокое звуковое давление в НЧ диапазоне, но менее требовательна к расчетам, производственным затратам и конструктивно проще классической лабиринтной акустики. Под катом речь о её истории, особенностях и современном применении.
Читать дальше →
Всего голосов 18: ↑16 и ↓2 +14
Просмотры 21K
Комментарии 40

Гениальный алгоритм создания лабиринтов в игре Entombed, который до сих пор не могут разгадать

Блог компании RUVDS.com Разработка игр *Алгоритмы *Дизайн игр *Логические игры


В 2017 двое ученых, канадец John Aycock и британка Tara Copplestone, опубликовали анализ классической игры Entombed для игровой приставки Atari 2600. Механика этой игры, выпущенной в 1982, крайне проста: археолог, управляемый игроком, должен пробраться по прокручивающимся снизу вверх катакомбам, уворачиваясь от зомби.

У Atari 2600 было всего 128 байт ОЗУ; тем не менее, кажущийся бесконечным лабиринт при каждом запуске был новым, т.е. генерировался в памяти. Как же программистам это удалось? Вот комментарий Стивена Сидли — программиста, 38 лет назад создавшего эту игру:
Основную часть генератора лабиринтов написал какой-то уволившийся торчок. Я связался с ним, чтобы выяснить, как его алгоритм работал. Он ответил, что придумал этот алгоритм, когда был вусмерть накурен и вдобавок пьян, что написал его сразу на ассемблере прежде чем вырубился, а потом даже близко не мог вспомнить, в чем его алгоритм состоял.
Всего голосов 126: ↑116 и ↓10 +106
Просмотры 72K
Комментарии 72

Бегущий в лабиринте: роботы, нейроны и резервуарные вычисления

Блог компании ua-hosting.company Разработка робототехники *Научно-популярное Искусственный интеллект Мозг


Как бы сильно писатели или сценаристы не старались создать образ сверхумных и сверхсильных роботов, в реальности же до глобального доминирования им еще очень и очень далеко. В чем их проблема? А в том, что мыслят они совершенно не так, как люди. Можно даже сказать, что современные роботы не мыслят, а выполняют вычислительные процессы. Мозг человека также выполняет эту задачу, но на гораздо более высоком и сложном уровне. Еще одним важным отличием является наше умение обучаться чему-то новому посредством периодического повторения выполняемой задачи. Другими словами, практика и еще раз практика. В отличие от роботов, никто не вкладывает в наше сознание навыки, как это происходит в повести «Профессия» Айзека Азимова. Получается, чтобы сделать роботов умнее (если это хорошая идея), необходимо научить их учиться. Группа ученых из Американского института физики (США) придумали, как обучить маленького робота преодолевать лабиринт, используя при этом самые настоящие нервные клетки мозга человека. Какие принципы лежат в основе разработки, насколько быстро обучался робот и удалось ли ему в итоге преодолеть лабиринт? Ответы на эти вопросы мы найдем в докладе ученых. Поехали.
Читать дальше →
Всего голосов 12: ↑11 и ↓1 +10
Просмотры 1.6K
Комментарии 2