Pull to refresh

Comments 28

Было бы здорово, если бы лабиринт был проходим.
там где не можете пройти, нажтимаете кнопку Update, проходите дальше =)
Нажатие кнопки Update завораживает.
Я не понимаю, у вас оно что, построчно обновляется? У меня через секунду после нажатия мгновенно все обновляется.
Стабильный хром под убунтой.
Это одна из причин, по которой там есть кнопка. :)
Вообще говоря, лабиринт проходим, главное правильно выбрать начало и конец.
А сели серьёзно, то лабиринт здесь, в основном, как пример генерируемого фона, строится он, по сути, также как и в оригинальном однострочнике.
На iPad второй вариант не взлетел
File API и Blob URLs поддерживаются в Safari начиная с 6.0.
Подозреваю что у Вас более ранняя версия.
Второй ipad ios 5.1.1

Не уверен какой именно версии в него встроен safari
Добавил код для браузеров без поддержки Blob URLs, возможно теперь заработает (в 5.1.7 под win заработало). Только, наверное, кэш нужно очистить.
Осталось лишь дополнить вариантом на SVG+JS. :)
В хроме и FF вообще можно обойтись без особых сложностей: bolknote.ru/files/bg-slash-maze.html (статья в моём блоге: http://bolknote.ru/2012/12/06/~3809).

Кстати, преимущество такой связи в том, что то, что рисуется на канвасе, сразу пойдёт в фон, «автоматически».
Да, пожалуй, использовать -webkit-canvas() и -moz-element() тоже можно, там где они есть, а вот 'url(' + c.toDataURL(«image/png») + ')' имхо сильно элемент раздувает, по этому я картинку в Blob и засунул.
Мне показалось немного странным, желание автора этого поста, генерировать изображения на сервере, ...
Сразу оговорюсь что, скорее всего, без доработки они будут работать не во всех современных браузерах ...
Думается как раз из за этого. Кроме того вы забыли что браузер кеширует картинки, а если и нет — есть nginx который тоже умеет кешировать :).
А так зачетно, вообщем-то.
за последние несколько дней уже третья (вроде бы) статья на тему, и в каждой этот неаккуратный узор.
в детстве рисовал на спектруме такой узор, с помощью знакогенератора. вот битовая маска 8х8:
16, 16, 32, 192, 3, 4, 8, 8. второй символ в обратом порядке (зеркальное отражение). получается эстетичная, приятная глазу картинка
выглядит отлично! (на старых мониторах с крупным пикселем)
можно две четверти окружности со сглаженной линией произвольной толщины вписать в квадрат побольше, но будет уже другое
Странного в выборе ничего нет, потому что автор того поста не специализируется на front-end'е.

Кроме того автор доволен, что вдохновлённый его поделкой коллективный хабраразум предлагает альтернативные решения.
ещё очень простой двоичный узор: рисовать в каждой точке остаток от деления на 2 произведения квадратов координат (для чётного x*x + y*y чёрный, для нечетного белый, например). листинг не такой лаконичный будет, конечно
Из второго примера с кнопкой «Апдейт» могла бы получиться интересная игра для планшетов. Не знаю еще какая, но интуитивно чувствую, что хотел бы в нее сыграть!
игра «Пройди лабиринт»?
Ну там всякое интересное можно придумать. При перерисовке лабиринта заметно что он не полностью строится заново, а как бы «перестраиваются» некоторые отдельные стенки. При каждой «перестройке» основной костяк помещений остаётся тем же, но некоторые ходы открываются, а некоторые закрываются. То есть если пользователь не успеет пройти из начального пункта в конечный, то при перетасовывании некоторых стенок ему придётся искать новые обходные пути. А иногда он вообще будет оказываться в слепых ловушках и ему придётся ждать следующего обновления, чтобы двигаться дальше.

В общем, можно сделать (2-мерный) лабиринт, частично перестраивающийся через промежутки времени, аналогичный тому что был в фильме «Чужой против Хищника». Это даст простор для разработки сюжета интересной игры.
Не успел докорректировать комментарий. Ещё вспомнил кино про перестраивающийся лабиринт со смертельными ловушками — «Куб» и «Куб Ноль»
Во, действительно нормальная реализация. Я тоже с недоумением посмотрел на всё то PHP.
В Опере второй вариант не работает. А жаль.
function labirint(_length){
   var smb = ["\u2571","\u2572"];
   var line="";

   for(var i=0;i<_length;i++) 
      line += smb[Math.round(Math.random())];

   return line;
};

document.body.innerHTML = labirint(9999)
Sign up to leave a comment.

Articles