Pull to refresh

Comments 30

Жалко что всякие интересные штуки с главной гула не выкладывают в опенсорс — им там самое место, ИМХО.
Если кто помнит синтезатор, то пока еще есть возможность его расковырять: google.com/logos/2012/moog12-hp.html. Себе уже скачал, состоит из четырех файлов: moog12-hp.html, moog-hp-base2.png,
… moog-hp-k-sprite.png, и moog-hp-sprite2.png.
UFO just landed and posted this here
Но для машины Тьюринга выложен только рисунок (ссылка в статье). Возможно, они не успели там инсталлировать скрипт и позже он появится, раз скрипт синтезатора на своей странице имеется. Заранее, как я понимаю, никто ничего не знает и не обещает.
Упс, там же только описания…
Поднимите эту тему в популярные. Тогда может кто-то из сотрудников google, читающий Хабр, сможет посодействовать в получении чистых исходников этого дудла. Для некоммерческого использования, так сказать. Им то он, как я понимаю, уже не нужен. Во второй раз его уже не повесят.
Вроде заработало: в файле googleTuring.htm нужно исправить строку 4431, прописав путь к локальному скрипту. То есть: a.src = «turing12.3.js»
Отлично, спасибо. Я пошёл по более длинному пути, пытаясь выцепить сразу скрипт игры, а этот путь получился короче, хотя требует подгрузки всех скриптов на странице.

И ещё мешает почему-то моё дополнение с console.log на строках 3038,3039 turing12.3.js. Если заменить на оригинал this.ja = j(this.qb, this); — уровни начинают проходиться.

Сейчас у меня игра виснет при переходе на 4-й уровень (Fx12) из-за ошибки «a is undefined» a is undefined — строка 2730, turing12.3.js.

(Чуть позже сегодня закину обновления на гитхаб.)
С уровнями разобрался — проблема в том, что Ваш деобфускатор в коде уровней вместо пробелов понатыкал табуляции и в итоге код смущается, когда ему вместо «R» прилетает «R ».
Супер. Записал пробелы вместо табуляций для коммита.
Обратите внимание, что у меня был патч ещё в этом месте: window.google && window.google.x00 — в самом конце файла turing12.3.js, а было — window.google && window.google.x. Иначе не запускалось.
Да вот в том то и прикол, что если есть функция window.google.x, то как раз таки она запускает игру.
Нет, запускает, Rb(), как видим, а window.google.x({id: «DOODLE»}, Rb); запускает тоже, но некоторым хитрым образом — наверное, она отвечает за включение — выключение функции по появлению определеённой даты или через неё передаются контекстные данные юзера — зашёл он первый раз или не первый (предположения).

А главное, нашёл, почему не запускалась стандалоновая игра в gTuring01.htm. Она почему-то (потому что стилей соответствующих нет) имела высоту стартового покрывающего дива с id=hplogo, равную нулю. Сделал патч — this.V.style.height = (a.offsetHeight || 229) + «px»; //строка 3126 — и старт заработал. Выкладываю полученное на гитхаб. Наверное, это %75 готовности. Останется разобраться, как попадать на 7-й уровень. И где (в куках?) запоминается уровень так, что он не сбрасывается.
У меня полностью работает :)

(function () {
window.google || (window.google = {});
google.doodle || (google.doodle = {});
google.doodle.url = «www.google.com/search?q=%D0%90%D0%BB%D0%B0%D0%BD+%D0%A2%D1%8C%D1%8E%D1%80%D0%B8%D0%BD%D0%B3&oi=ddle&ct=turing-doodle-static»;
google.doodle.alt = «100 лет со дня рождения Алана Тьюринга»;
var a = document.createElement(«script»);
a.src = «turing12.3.js»;
a.async = !0;
document.body.appendChild(a);
})();

Код отвечающий за сохранение уровня в строках 3632-3637.

А на 7-ой уровень мы попадаем тут (строка 3999):
Да уж… Парсер такой парсер…

(function () {
window.google || (window.google = {});
google.doodle || (google.doodle = {});
google.doodle.url = «www.google.com/search?q=%D0%90%D0%BB%D0%B0%D0%BD+%D0%A2%D1%8C%D1%8E%D1%80%D0%B8%D0%BD%D0%B3&oi=ddle&ct=turing-doodle-static»;
google.doodle.alt = «100 лет со дня рождения Алана Тьюринга»;
var a = document.createElement(«script»);
a.src = «turing12.3.js»;
a.async = !0;
document.body.appendChild(a);
})();

Для того, чтобы всегда игра запускалась с первого уровня, достаточно в строке 3999 заменить
b = U[S.i].A, V.create(0 == b? 6: b)
на это:
V.create(1)
Либо вообще убрать сохранение в localStorage, то есть комментируем строку 3633.
Отлично, полная победа! (Напишите победный отчёт :) )
Тут ещё в индекс-файле грузить через скрипт необязательно.
Свой вариант выкладываю на хостинг, и приведу стартовый файл тоже в порядок.
Ну не полная. Я, перед тем как заснуть, вспомнил, что нужно еще убрать переход на поиск после 6-го уровня.
Победил переход после 6-го уровня:
строка 3908
!N && 12 == b? C(Ib, 500): a? C(Z(function () {
Теперь он будет осуществляться после 12-го, последнего.
Точнее осуществлялся бы, если бы не выпилили все скрипты гугла :)
После 12-го уровня ошибка в строке 3841
sb? google.nav.go(…
За компанию убрал реплеи :)
И ещё можно тогда запускать уровни по цифрам, а затем сочинять свои схемы и делать свои уровни. Ну это уже для фанатов.
Да, запуск нужного уровня можно делать через
window.localStorage.setItem(«doodle-turing-p», [номер уровня])
до запуска скрипта игры.
Судя по коду, мы сможем получить доступ только к 1-7 уровням. Дальше нумирация уровней начинает повоторяться. Если не ошибаюсь, то нужно разбирать функцию Eb из строки 3902. Но я смогу этим заняться только вечером, а то с работы уволят :)
Ан нет. Всё работает исправно до 12-го уровня.
Sign up to leave a comment.

Articles