1. Куча / Говнокод #20269

    −309

    1. 1
    https://alexnisnevich.github.io/untrusted/

    Запостил: 3_14dar, 25 Июня 2016

    Комментарии (182) RSS

    • Запустил с планшета - увидел какое-то гоатсе
      Ответить
    • Когда я эту гаму проходил - мне там больше всего уровень с html страничкой мозг вынес. Я так и не понял, какого хуя там происходит. Потыкал стрелочки и случайно его прошёл ;)
      Ответить
    • какого хуя на говнокоде суббота заканчивается в 23:00?
      Ответить
      • Такого, что на сервере до сих пор tzdata 2011-го года, когда обещали что реформа поясного времени будет последней.
        Ответить
        • а я думал что одмин по киевскому времени живет
          Ответить
          • Промах. В Киеве летнее время совпадает с московским, а зимнее на час отстаёт. Тут скорее самарское время либо Армения/Азербайджан/Грузия/Маврикий/ОАЭ/Сейшельские острова. Какой из вариантов вероятнее?
            Ответить
      • https://ru.wikipedia.org/wiki/Часовой_пояс
        Ответить
    • Господи, каждый раз когда я думаю: "ну всё, тупее чем это просто не бывает", 3_14dar умудряется с лёгкостью превзойти установленную планку.

      Предыстория: пару лет назад (anonimb-сёма тогда уже искрил на сайте) кто-то выложил ссыль на эту игру. Было длинное жаркое обсуждение. Недавно, увидев марио я попросил напомнить линк.

      http://govnokod.ru/20234#comment335766
      Xom94ok 5 дней назад #

      И только через ПЯТЬ дней до пидара доходит...
      После чего он привычно поделился весьма свежей инфой с ГК.
      Ответить
      • Eбaныe борцы за свежесть

        Не могу, сука, передать, как меня, блять, бесят люди, которые пишут в форумы, блоги, каменты и почту слово "Баян!".

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

        Приходят, блять, в каменты и гордо печатают: "Баянищще!" или "Да этому сто лет уже". Ну и хуй с ним. Да хоть, сука, триста.

        Эти пидарасы являются идеальными одноразовыми потребителями. С утра увидели что-то, посмотрели, а к обеду любая ссылка на это что-то уже считается баяном. Чтоб у вас клавиатуры сгорели, уебаны!

        Самое главное, что многие, кто дал на что-нибудь ссылку, и кому тут же в каменты насыпали "баян, баян", замыкаются и впредь боятся писать о чем-либо. Правильная реакция должна быть такой: "Баян? Ну и пошел нахуй, пидарас!" Тогда уже баянист задумается - а стоит ли в следующий раз вафельницу раззявать.
        Ответить
        • http://tema.livejournal.com/94921.html

          Ты как всегда оригинален, пидар.
          Ответить
          • Интересно, а когда 3_14dar захочет вореции генерировать, он их тоже станет копипастить из старых тредов?

            Кто написал его? Инканус, Вы же вебовскими делами занимаетесь, поисковые системы знаете? Признайтесь, что 3_14darа написали.
            Кстати, может стоит вручную фильтровать его выхлоп? А то как-то доставлять меньше стало, слишком однообразно генерирует.
            Ответить
            • Пи, очевидно же. Пидар - одна из версих версий ворециатора, предрелизная.
              Ответить
              • > Пи, очевидно же
                Ну совсем не палится.
                Ответить
              • Спору нет, пидар - довольно легко аппроксимируемый персонаж в плане сленга и контента.

                Однако реплицировать модуль охуительных историй про свиней-убийц, компы с помойки, ритеги и торговлю телом - нетривиальная задача.
                Ответить
                • Копипиздить с двачей и стилизовать?
                  Ответить
                • >охуительных историй про свиней-убийц, компы с помойки, ритеги и торговлю телом - нетривиальная задача.
                  Так это ж ваши парашконовости. Берешь новости и парсишь.
                  Ответить
            • > стоит вручную фильтровать его выхлоп?

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

              Свинособака -> Уважаемый
              Свинособаки -> Господа
              Бамп -> Слава
              Русня -> Уважаемые Россияне
              Прышебляд -> UNIX-люд
              Отсос -> Подвиг

              и т.д.

              Слава подвигу UNIX-людей!
              Ответить
              • "Уважаемые господа" -> "свинособаки свинособаки". Что-то биективность хромает.
                Ответить
                • С учетом окончаний не хромает
                  > "Уважаемый господа" -> "свинособаки свинособаки"
                  fix
                  Ответить
                • Оно просто контекстно-зависимо.
                  Ответить
              • >Эллочки-людоедки

                Ахаха, а я думаю какого же он мне классического персонажа напоминает.

                146% попадание в образ.

                Вас подло обманули, это не мексиканский сишарп, это нидерландский питон.
                Ответить
              • Свинособака, тебе в яндеске заняться нечем, что ты мой выхлоп читаешь? За что тебе только деньги платят.

                Поздравляю, ты только что переоткрыл автозамену на дваче.
                Ответить
              • Не могу, сука, руснявый передать, как меня, блять, бубарех и не пизди, дай другим , пидораха, днище людям понаслаждаться.

                Приходят, хуйня блять, и не пизди, скрепы дай другим людям залупин понаслаждаться.

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

                Эти пидарасы являются идеальными , тупая русня,: , пидораха, одноразовыми потребителями. С , маму ебал твою, пидораха, утра увидели ты питух, что-то, посмотрели, туши пердак а к руснявая обеду любая , русня соснула, кремлебот ссылка на хуйня это что-то уже днище считается баяном. Чтоб у залупин вас клавиатуры рашка сгорели, а к обеду любая ссылку, и бамп отсосу кому тут же в каменты и гордо печатают: руснявая "Баянищще!" или руснявая хуйня "Да этому сто лет уже". , русня соснула, Ну и кремлебот пидораха полыхнула
                Ответить
          • Да ты умеешь гуглить, пидар. А вообще, иди нахуй. #скрылник
            Ответить
        • Eбaныe борцы замыкают: "Баян!".

          Эти пидарасыпали "Да хоть, в каменты и горели, уебаны!

          Самое главиатуры сгорели, а сто лет уже". Ну и сиди, дал на что-то, посмотребителями. С утра уже считается баянист задумается - а сто лет уже". Ну и хуй с ним. Чтоб у вас клавиатуры сгорели, уебаны!

          Самое главное, что-нибудь боятся пидарасы являются идеальными потребителями. С утра увидеальными одноразовыми потребителями. С утра увидел ты эту картинку, и почту слово "Баян? Ну и ком с ним. Да хоть, сука, триста.

          Эти пидарасы являются баян, баянист задумается идеальными одноразовыми одноразовыми потрели, успел с утра увидели что-нибудь ссылка на этом, уебаны!

          Самое главное, что лет уже баян", замыкаются и впредь боятся идели что-то уже баянист за свежесть

          Не могу, сука, триста.

          Эти пидарасы являются бая ссылка на этом, уебаны!

          Самое главное, что дал нахуй, пидарасы являются и впредать, которые писать о чем-либо. Правильная реакция должна быть такой: "Баян? Ну и сиди, которые пишут же в каменты и хуй с этим сайтом, успел с утра уже считается - а стоит ли в следующий раз вафельницу раззявать.
          Ответить
          • Находки: пидарасыпали, главиатуры, посмотребителями, впредать.
            Ответить
            • Заяндексил «посмотребителями» и нашёл:
              http://www.zr.ru/archive/zr/1996/12/probliemy-i-suzhdieniia

              Открываем HTML-код и ищем блок:
              <div class="block_article-text" style="height:1px;overflow: hidden;">


              Текст статьи чуть более, чем полностью, состоит из вореций.

              P.S. Понял, откуда вореции: на картинке статья в две колонки, они её распознали и засунули в невидимый блок. А при распознавании не учли, что колонки две, и колонки перемешались.

              Да ещё и картинку сжали.
              Ответить
            • Поискал слово «впредать» и вышел на http://staskarpov.blogspot.ru/

              вДорогие вдрузья, вдля впоклонников вдрамы вПятницкий! вТелекомпания вDixiМедиа вначала вподготовку вк впроизводству впродолжения втелесериала, вто весть вта всамая в33 всерия всериала, вона вже вявляется ви вначалом вII вглавы.

              Ведь впоследняя всерия взакончилась вочень встранно, ви взрители вне впоняли вконцовки, вчто вже вбудет вдальше... вбыть вили вне вбыть вв вих вбанде, вжить вили впредать, всдаться вили впобедить... вПо вслухам во впродолжении всериала: вИрину вЗимину вспасет вКарпов! вОн впохитит вдочь вначальника вМОБ, втем всамым вобеспечит всвободу всвоей вбывшей вначальнице!
              Съемки впродолжения всериала в«Пятницкий» вначнутся вв вапреле в2012 вгода. вТакже вкак вуже вговорилось, вначались всъемки вкриминальной вдрамы в«Карпов»


              Перед каждым словом добавлена невидимая буква «в». Но зачем? Чтобы текст нельзя было скопипастить? Но ведь блогер сам себе яму вырыл, потому что записи нельзя найти поисковиками по вменяемым запросам.
              Ответить
              • Возможно, автор хочет, чтобы не все его посты индексировались. Там же только в некоторых эти "в".
                вВероятно, втак вещё вможно вписать внечто вгадостное впро вкого-нибудь вписать, вчтоб вони вавтоматом вне внагуглили.
                Ответить
                • Зато как звучит, если открыть все скрытые буквы: «вона вже». Только мне кажется, что вместо «вочень» должно быть «дуже».
                  Ответить
          • #скрылветку
            Ответить
            • И снова раскрыл:
              http://govnokod.ru/3482#comment32734
              Ответить
              • Ох лол. УебКилл — персонаж, который прославился на раннем ГК своей непроходимой тупостью (как и пидар).
                Хотя наверное вы помните.

                Времена идут, дегенераты не переводятся:
                Это же из блога Тёмы Лебедева :http://tema.livejournal.com/94921.html
                Вебкил3_14dar, cука, такой тупой хомячек, что своих мозгов не имеет и вынужден копипастить других людей.
                Ответить
        • http://govnokod.ru/15782 2 года уже прошло, опомнился он.
          ну а в целом молодец, читай тему может отсосешь у него, и он расскажет тебе как можно за сайт средней поршивости квартиру получить
          Ответить
    • Пошарился у него по гитхабу.
      Гумно, учись: https://github.com/AlexNisnevich/ECMAchine
      Ответить
      • Ты хочешь, чтоб я лисп изучал? Ноги моей не будет в этом языке для школьниц)))))))))))))))))))))))))))))))) )))))))))))))))))))))))
        Ответить
        • Не все понимают, что помимо дохуя закрывающих скобочек в лиспе есть ещё и дохуя открывающих скобочек (((((((( ((((((((((( (((((
          Ответить
    • Прохожу 12-й уровень. Забил после того, как map.getAdjacentEmptyCells() считает занятой клетку с ключом. Была бы еще нормлаьная среда разработки вместо тормозного блокнота.
      Ответить
      • А я его вроде тупо через canMove() делал.
        Ответить
      • УАВЛ (Универсальный алгоритм взламывания роботов):
        player.setPhoneCallback(function(){
        if(me.dir===undefined||me.dir=='up') me.dir='left';
        else if(me.dir=='left') me.dir='down';
        else if(me.dir=='down') me.dir='right';
        else if(me.dir=='right') me.dir='up';
        });
        if(me.canMove(me.dir)) me.move(me.dir);
        Ответить
        • Телефон везде работает?

          Бля, сейчас неинтересно станет.
          Ответить
          • На боссе отожмут телефон, придётся без него выкручиваться.
            Ответить
        • Телефон ненужен
          ;
                  if(player.getY() == map.getHeight()-1)
                    switch (player.getX()) {
                      case map.getWidth() - 1:
                        me.move('left')
                        break
                      case map.getWidth() - 2:
                        me.move('right')
                        break
                      case map.getWidth() - 3:
                        me.move('up')
                        break
                      default:
                        me.move('down')
                    }
          Ответить
        • if (Function ( "return con"+"firm('ok - left;');")())
            me.move('left'); else
          if (Function ( "return con"+"firm('ok - right;');")())
            me.move('right'); else
          if (Function ( "return con"+"firm('ok - up;');")())
            me.move('up'); else
          if (Function ( "return con"+"firm('ok - down;');")())
            me.move('down');

          пришлось делать особую хуйню, чтоб их валидатор обломать. Например 'Function(' и 'confirm' там запрещен
          Ответить
          • Что такое Function?
            Ответить
            • Функция по-русски. В программировании есть такое понятие. Не забивай себе голову, в общем.
              Ответить
              • Зачем же так на него набрасываться? Он пришёл с Питона, а там всё является объектом, даже небо, даже аллах. Ну не привык он к функциям.
                Ответить
              • Дебилушка, что такое Function()? Свинособака, зачем ты придуриваешься, свинособака?
                Ответить
          • Питушня какая-то перегретая. По сравнению с комментарием выше - перебор.
            Ответить
            • https://i.imgur.com/yLtOrVa.png вот еще, все редуцируется в туннель
              Ответить
              • Красиво!
                Ответить
              • oO
                и после этого мне ещё пишут, что "You are one clever hacker."
                Ответить
              • А если нажать F12 - то, наверное, все уровни можно пройти одной командой...
                Ответить
                • там кстати ближе к концу игры если выбрать меню, то там есть scripts, и в game.js есть функция goToNextLevel(), или как-то так.
                  Ответить
                • Интересно, если попрятать всё в замыкания, насколько консоль поможет.
                  Ответить
                  • >>> var x = function(a, b) {return a + b; };
                    undefined
                    >>> x.toString();
                    "function(a, b) {
                    		return a + b;
                    	}"

                    Вот и бьютификатор из коробки.
                    Ответить
                    • Кстати, alert(map.placePlayer.toString()); выводит:
                      function () {
                                  var args = arguments;
                                  return __game._callUnexposedMethod(function () {
                                      return f.apply(map, args);
                                  });
                              }
                      Ответить
                    • А вот так слабо вытрясти исходник блекбокса?
                      function makeBlackBox() {
                          function blackBox(a, b) {
                              return a + b;
                          }
                          function facade(a, b) {
                              return blackBox(a, b);
                          }
                          return facade;
                      }
                      
                      f = makeBlackBox()
                      f.toString()
                      Ответить
                      • Понял. Если не знаем, чем сгенерирована f, то не вытрясти.
                        Ответить
                        • Дебаггером можно. Средствами языка - похоже, что нет.
                          Ответить
                    • В каком это браузер?

                      >бьютификатор
                      Автоформаттер
                      Ответить
      • 13-й, то есть, где рандомный лабиринт. В 12 сделал так https://gist.github.com/anonymous/c2cb5db39354ad7b4badf81250b974fd#file-untrusted-lvl12-solution-js-L12-L24
        Ответить
        • Я вроде по правилу правой руки мутил с этим рандомным лабиринтом... Не помню уже.
          Ответить
          • Я пытался сделать чтобы бот по возможности двигался вправо, вниз или вверх (в этом порядке), но потом стал на грабли выше по ветке и выключил нахуй.
            Ответить
            • Как прыщеблядский всё дальше прыщеблядский
              и дальше стекломоя наебнул всё стало обычным.
              Предел , русня соснула, человечества сразу общины,
              Ну а потом государства,

              Те , пидораха, самые долгие войны,
              Которые мы прыщеблядский пуйло изменяли,
              Всё было когда-то
              Всё то, что мы, то ещё не пидораха, достигнут,
              Все стали совсем неподвластны.

              Искали чего-то всё , мамку ебал, пидораха, дальше всё равно.
              Открылись быстремились,
              Того что мы вдруг сразу , маму ебал твою, пидорахен достигнут,
              Все стальные садись на бутылку бубарех вселенной,

              И мчались быстремились быстрее мы свойства , мамку ебал, квасетов,
              И дальше. Ну ко-ко-ко конечно нашли.
              Параметры наши логично, всё стало обычным.
              Параметры мира,
              В котором мы обитаем.

              Меняли формальность,
              Меняли пидораха, формальность,
              Меняли cтекломойный законы, которые мы днище изменилось.

              И жить нам непривычны.
              Но вдруг элионые свойства,
              Те самые долгие на бутылку войны,
              Которую вселенной,

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

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

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

              Если захочем , русня соснула, пуйло получим полмира,
              А не захочем , пидорахен пидораха, получим полмира,
              В 3_14дар котором мы рашка обитаем.
              Меняли законы, русня соснула, которые мы cтекломойный изменяли,
              Всё были нам новые были ко-ко-ко нам совсем 3_14дар неподвластны.
              Ответить
              • Хрюкни. #скрылник
                Ответить
                • Осталось знаки препинания доработать, тогда можно будет выпускать.
                  Ответить
                  • Лучше бы язычком мне доработал.
                    Ответить
                    • Спрягать глаголы уже умеет, а словарный запас маловат. Будем пополнять.
                      Ответить
                      • Пополнил тебе за щеку, проверь.
                        Ответить
                        • Плохи наши дела. Кривая забывания новых слов круче, чем кривая запоминания.

                          Нужно либо больше пасты, либо полностью переписывать бота.
                          Ответить
                • #хрюкни
                  Ответить
                • Надо посчитать, сколько же раз пидар скрыл пи. Подозреваю, что пятый десяток идёт.
                  Ответить
                  • Он чей регуляркой скрывает. А трансцендентное число хрен ей скроешь.
                    Или нет? Вроде FSM не может пи посчитать.
                    Ответить
    • 21-й уровень все прошли?
      (если вдруг кто-то не понял: да, его можно пройти)
      Ответить
      • 21 это последний, где finalLevel = true?
        Ответить
        • да
          Ответить
          • Ну он очень неочевидный, т.к. я до этого уровня никогда меню не открывал... Собственно самый сложный момент в этом уровне. Код то легко пофиксать потом.
            Ответить
      • Палю годноту (неосиляторы only)
        https://github.com/AlexNisnevich/untrusted/tree/master/solutions
        Ответить
        • Осиляторам, которые прошли, тоже же можно :3
          Ответить
        • // Don't let boss emit bullets
          Math.random = function () {
                  return 1;
          }

          Ох лол, я не додумался до такого :)
          Ответить
          • Ахуенный спойлер получился.
            Ответить
          • >Ох лол, я не додумался до такого :)
            Да я там читал и офигевал с хаков и какое у людей мышление.
            Вот реально взлом матрицу реальности (чё я и вспомнил про игрушку в теме марио).

            Голь на выдумки хитра.
            Ответить
            • показать все, что скрытоПросто у нормальных программистов мозги не работают в направлении грязных хаков с заменой math.random, за такое в реальном коде руки отбивают с заносом в пидар-лист. Это хакером надо быть в душе.
              Ответить
              • Питушкам горит?
                Ответить
              • Плохо, что не работают. Сам жалею, что я не такой.
                Это же связано с безопасностью. Знаешь хаки => можешь написать программу так, чтобы другим посложнее хакнуть было. Ради безопасности надо быть хакером.
                Ответить
                • То что ты написал - это только защита от копирования. Защита от внешнего взлома уже должна быть не говнокодистой.
                  Ответить
                  • Нет, я про то, что нужно знать грязные хаки, т.е. иметь расширенное сознание, чтобы знать о возможных угрозах. А использовать в серьёзном коде не надо.
                    Ответить
                    • > грязные хаки
                      > угрозах
                      Всё смешалось в доме Облонских.
                      Ответить
                      • Главное - чтоб сознание было достаточно разработано.
                        Предполагаю, что человек с хорошо разработанным грязными хаками сознанием - это как мужик с ножом против обученного безопасника, которому дали мясо.
                        Ведь если человек может грязными хаками виртуозно вырываться из огороженного пространства, используя все возможные кобенации, то он и осознает, какие кобенации действий в серьёзной программе могут быть опасны.
                        Ответить
                        • >Главное - чтоб сознание было достаточно разработано.
                          Вмещало банку сгущенки?
                          Ответить
                          • Наверно да. Я хотел придумать что-то весёлое и более близкое к теме, когда писал комментарий, но не смог.
                            Ответить
                        • А потом люди с разработанным сознанием хуячаn битмеп в параметры url.
                          Ответить
                    • Вымывается из памяти. Привыкаешь так не думать. Вон пилотам запрещают летать на разных моделях пассажирских самолетов - что в одном хорошо, в другом может привести к аварии.
                      Ответить
                      • Жаль. Помню, когда-то на ithappens (кстати, он сдох или просто пауза?) читал истории о том, как народ геройствовал. То в 5МБ трафика мобильного вместят обновление важной питушни, то из консервной банки антенну сделают и вайфай поймают, чтоб быстро настроить какую-то фигню и не ездить куда-то за 100км, то смогут данные с CD залить через какую-то задницу на комп, у которого только клавиатура да монитор как устройства ввода-вывода.
                        Думаешь "эх, а я-то так не умею", грустно становится. Конечно, подобное упоротое мышление редко требуется, но иногда может и выручить.
                        Ответить
                        • >"То в 5МБ трафика мобильного вместят обновление важной питушни, то из консервной банки антенну сделают и вайфай поймают, чтоб быстро настроить какую-то фигню и не ездить куда-то за 100км, то смогут данные с CD залить через какую-то задницу на комп, у которого только клавиатура да монитор как устройства ввода-вывода."

                          О, мой юный друг, любящий рахат-лукум, так же, как люблю тебя я!.. Что за дивные слова ты говоришь? Мне, старику, не понять. Это древнее заклинание или цитата из свитка?
                          Ответить
                          • Это образы, поток сознания. Вореционизированная версия джревних баллад об удали молодцев наших.
                            Ответить
                        • Лол, просто в один день вечно лагающий инет остопизденеет и сделаешь по-нормальному.

                          То что ты сказал относится к админам, а я проггер какбэ. По большей части.
                          Ответить
                          • Сема вызывает админа чтобы тот настроил ему подключение к Интернету

                            И наверное еще одного админа, чтобы тот поставил ему операционку

                            И Сема этим горд
                            Ответить
                            • А его надо настраивать? Я же не прыщеюзер.
                              Ответить
                              • Нет Сем, не надо

                                Ты покупаешь компьютер, и там сразу есть Интернет

                                Ну в современных компьютерах так точно есть
                                Ответить
    • Как хранить состояние между вызовами обработчика?

      Выше подсказали: http://www.govnokod.ru/20269#comment336606 . Где еще можно хранить?
      Ответить
      • Больше нигде, наверное. window там залочено, а в топ-левел скоп срать обычно не дают.
        Ответить
        • > window там залочено
          Не знаю, как сейчас, а тогда можно было провернуть что-то читерское, связанное с эквивалентностью точки и квадратных скобок, аналогичное document.write('<script>...<scr' + 'ipt/>');. Ключевые слова отслеживались, а их 'ч'+'асти' - нет.
          Ответить
        • А как устроен запрет писать в топ левел?
          Ответить
          • На последнем уровне узнаешь :3
            Ответить
            • А до последнего уровня он типо не работает?
              Ответить
              • Блин, не хочу спойлерить. Но на последнем уровне узнаешь как всё работает, если захочешь.
                Ответить
                • Гадить в топ левел у меня и так не работает.
                  Ответить
                  • Можно в map (и иные переменные) интересующую питушню писать в свойства с произвольными именами.
                    Ответить
            • Вообще-то там еще +20 уровней. Тоже офигенных.

              Кстати, а кто-то в сюжет вчитывался?
              Ответить
      • Ну или вот так ещё:

        Его замыкание было разработано настолько, что он мог спрятать в нём банку сгущёнки:
        var banka = ...;
        player.setPhoneCallback(function() {
            banka.someMethod();
        });
        Ответить
        • Там же писать можно только внутри скобок обработчика, в чем и проблема. А иногда и туда нельзя. Хотя стой. Все это будет писаться в каком-то коллбеке, т.е. banka будет локальной переменной. Что произойдет после завершения обработчика?
          Ответить
          • > Что произойдет после завершения обработчика?
            В движке останется ссылка на установленный phoneCallback, banka выживет, т.к. замыкание. В итоге при каждом звонке на телефон ты сможешь работать с состоянием из банки.
            Ответить
        • Кстати насущный вопрос: допустим нам с сервера приходит обфусцированный js код.
          Он создаёт в функции приватные поля и удаляет себя.

          Я раньше считал что js - это такая открытая штука, как сишка из которой можно добраться куда-угодно, поменять что угодно, итд.

          Так вот: как средствами js понять что за данные/функции спрятались внутри замыкания
          Ответить
          • А если кастануть функцию в строку, она не всегда выдаёт свой исходник?

            З.Ы. Хотя значения переменных из неё выбить будет проблематично...
            Ответить
            • под приватной переменной/методом понимается
              function(){
                  var private_member;
                  function private_method(){
                  }
              return {};//some shit that uses privates via closure
              }()


              А еще есть setInterval, если проебать на него ссыль, то понять что выставлено никак нельзя.
              Ответить
            • Как раз проблема банки из http://govnokod.ru/20269#comment336685
              var f = (function(){
                var banka = 'top-secret';
                return function(x){
                  return x == banka[0];
                 };
              })();
              // f+'' ==== "function (x){ return x == banka[0]; }"
              Ответить
              • Кто сможет придумать такое челленж:

                задана функция, такая как у 1024 (хер знает каким способом), и нужно вычислить аргумент чтобы функция вернула true.
                Ответить
                • Ну тут походу надо это исполнять на сервере с node.js, иначе код функции тупо подсмотрят.
                  Ответить
                  • Но как-нибудь через base64-eval-жопу

                    хотя да, бред какой-то
                    Ответить
                    • А у ноды.жс есть какая-нибудь песочница для недоверенного кода?
                      Ответить
                      • СУЙ В ДОКЕРА ЕГО, СЫН МОЙ, КОНТЕЙНЕР ВСЁ СТЕРПИТ!
                        Ответить
                • >задана функция, (хер знает каким способом), и нужно вычислить аргумент чтобы функция вернула true.
                  Вычисляй!
                  function black_box(arg){
                      return false;
                  }
                  Ответить
                  • Слишком жёстко. Надо хотя бы так:
                    var black_box = (function() {
                      var o = {};
                      return function(x) {
                        return x === o;
                      };
                    })();

                    Философские вопросы:
                    Возвращает ли black_box true для каких-либо аргументов?
                    Существует ли решение задачи Тридора для black_box?
                    Ответить
                    • Не, ну понятно что можно туда RSA херануть, и решение единственное

                      в разумных пределах же
                      Ответить
                      • > RSA
                        Кстати, в лучших традициях криптографии (а именно, правило "чуть слошарил - всё поехало"), можно задачу неслабо упростить, убрав всего один символ:
                        var black_box = (function() {
                          var o = {};
                          return function(x) {
                            return x == o;
                          };
                        })();
                        Ответить
                      • >в разумных пределах же

                        Ладно, принимается
                        function black_box(arg){
                            arg=arg|0;
                            while (1!=arg){
                                arg = arg&1 ? arg*3+1 : arg/2;
                                console.log(arg);
                                if (0==arg) return true;
                            }
                            return false;
                        }
                        Ответить
                        • black_box("hui")
                          Ответить
                          • > while (1!=arg)
                            Зациклится же.

                            Я к тому что даже если мы ЗНАЕМ тело ф-ции, то не можем решить задачу Тридара.
                            Ответить
                            • > Зациклится же.
                              Но... а как же if (0 == arg) return true?

                              З.Ы. В браузере не зациклилось, вернуло истину.
                              Ответить
                              • Сранно. У меня зациклилось. Edit: а. я подредактировал пост и впилил туда: arg=arg|0; без него на строке циклит.

                                Ладно, вот исправленная версия. За решение такой задачи, при каком значении arg функция выдаст true
                                не стыдно и 1000$ потребовать
                                function black_box(arg){
                                    arg=arg|0;
                                    var past=[];
                                    while (arg>1){
                                        past.push(arg);
                                        arg = arg&1 ? arg*3+1 : arg/2;
                                        if (-1!=past.indexOf(arg)) return true;
                                    }
                                    return false;
                                }
                                Ответить
                                • То есть я упрощаю задачу Тридара: «при каком значении arg функция с ИЗВЕСТНЫМ телом=black_box вернёт true»
                                  Ответить
                                • black_box({
                                      valueOf: function () {
                                          Array.prototype.indexOf = function () {
                                              return 0;
                                          };
                                          return 42;
                                      }
                                  })
                                  Ответить
                                • З.Ы. Спасибо за 1000$, перевод пришёл
                                  Ответить
              • Что-то похожее было в ICFP Contest 2013
                https://pashkov-alex.blogspot.ru/2013/09/icfpc-2013.html
                Ответить
      • Там где надо было цвета переключать я переключал исходя из текущего состояния.
        Ответить
    • Кто как проходил уровни до 12? Там где надо было на плоте переплыть, я сделал себе raft2 и засыпал ими всю речку.
      Ответить
      • Прикольно. А я просто плот телефоном разворачивал.

        Ну там потом в большинстве уровней динамические объекты (да и вообще объекты) запретят создавать, уже не поспамишь толком.
        Ответить
      • Нарисуй себе джва телепорта и проходи все лабиринты и речки.
        Ответить
        • "там потом в большинстве уровней динамические объекты (да и вообще объекты) запретят создавать, уже не поспамишь толком"
          Ответить
          • В лабиринтах еще можно
            Просто чтоб знать про телепорты надо было пройти игру перед этим.
            Ну или читать сорцы.
            Ответить
            • Тогда и роботов можно было поубивать bullet'ами :)

              З.Ы. Кстати, а самому задефайнить телепорт не получится? Установка координат вроде ж недоступна...
              Ответить
              • map.placeObject(x,y, 'teleporter');

                через map.getDynamicObjects(); получаем и связываем
                Ответить
                • Не, я про defineObject, если стандартный не юзать.
                  Ответить
                  • Та работает же и без него. Там универасальном телепорторешении первые левелы проходятся (кроме тех где только одну переменную можно поменять).
                    Но так неитересно.
                    Кстати я заметил что игрушка поменялась.

                    Раньше можно написать вместо строк условия, а щас надо в том левеле с ключами дропать из хеш-мапы несуществующий.
                    Ответить
                • Ну бля, нахера я это прочел.
                  Ответить
          • Ответить
            • #скрылличку

              Вечный сток Борманда на страже.
              Ответить
              • Уже неактуально. Потому модеры стёрли.

                Тем более я в другом треде отписался.
                Джва года назад validateЧётоТам лочилось
                Я писал map['vali'+'date']=function(){} и ложил болт на ограничения.

                Короче игра по мере того как мы её проходим становится умнее.
                Ответить
    • В 14 (где лабиринт с замками) можно менять только одну строку. Телефон не спасет.
      Ответить
      • (function() { })() :) Но вроде там ещё и по длине ограничение?
        Ответить
        • Да. Короче пришлось подсмотреть.
          Ответить
          • А мне не пришлось. Довольно просто оказалось
            Ответить
            • Да там подумать.
              Юзал фичу что remove несуществующего ничего у тебя не забирает.

              То есть можно ходить с зеленым ключом через зеленый замок, а поставить левак.
              У меня еще и лишний зеленый ключик остался.
              Ответить
      • Я вписал theAlgorithm. Даже не подозревал, что оно сработает.
        Ответить
    • https://yandex.ru/images/search?text=lukaku
      Ответить
    • В 17 уровне player.setPhoneCallback не существует.
      Ответить
      • Зато существует map.getPlayer().setPhoneCallback
        Ответить
        • ЧЗХ? player есть, а setPhoneCallback нет?

          Хуево без нормальной консоли.
          Ответить

    Добавить комментарий