Если кто помнит синтезатор, то пока еще есть возможность его расковырять: google.com/logos/2012/moog12-hp.html. Себе уже скачал, состоит из четырех файлов: moog12-hp.html, moog-hp-base2.png,
Но для машины Тьюринга выложен только рисунок (ссылка в статье). Возможно, они не успели там инсталлировать скрипт и позже он появится, раз скрипт синтезатора на своей странице имеется. Заранее, как я понимаю, никто ничего не знает и не обещает.
Поднимите эту тему в популярные. Тогда может кто-то из сотрудников google, читающий Хабр, сможет посодействовать в получении чистых исходников этого дудла. Для некоммерческого использования, так сказать. Им то он, как я понимаю, уже не нужен. Во второй раз его уже не повесят.
Отлично, спасибо. Я пошёл по более длинному пути, пытаясь выцепить сразу скрипт игры, а этот путь получился короче, хотя требует подгрузки всех скриптов на странице.
И ещё мешает почему-то моё дополнение с 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. Иначе не запускалось.
Нет, запускает, Rb(), как видим, а window.google.x({id: «DOODLE»}, Rb); запускает тоже, но некоторым хитрым образом — наверное, она отвечает за включение — выключение функции по появлению определеённой даты или через неё передаются контекстные данные юзера — зашёл он первый раз или не первый (предположения).
А главное, нашёл, почему не запускалась стандалоновая игра в gTuring01.htm. Она почему-то (потому что стилей соответствующих нет) имела высоту стартового покрывающего дива с id=hplogo, равную нулю. Сделал патч — this.V.style.height = (a.offsetHeight || 229) + «px»; //строка 3126 — и старт заработал. Выкладываю полученное на гитхаб. Наверное, это %75 готовности. Останется разобраться, как попадать на 7-й уровень. И где (в куках?) запоминается уровень так, что он не сбрасывается.
Для того, чтобы всегда игра запускалась с первого уровня, достаточно в строке 3999 заменить
b = U[S.i].A, V.create(0 == b? 6: b)
на это:
V.create(1)
Либо вообще убрать сохранение в localStorage, то есть комментируем строку 3633.
Отлично, полная победа! (Напишите победный отчёт :) )
Тут ещё в индекс-файле грузить через скрипт необязательно.
Свой вариант выкладываю на хостинг, и приведу стартовый файл тоже в порядок.
Судя по коду, мы сможем получить доступ только к 1-7 уровням. Дальше нумирация уровней начинает повоторяться. Если не ошибаюсь, то нужно разбирать функцию Eb из строки 3902. Но я смогу этим заняться только вечером, а то с работы уволят :)
Машина Тьюринга восстановлена из уплотнённого кода