Як я отримав ключ до diablo iii beta

В YouTube роликах ThisIsHorosho з недавніх пір стали з'являтися ключі до Diablo III Beta. В 7-ми хвилинному ролику на секунду показується ключ, хто його перший активує, то і виграє. Ось так на стоп кадрі виглядає ключ:

Ви подумали про те ж, про що і я?

ключ 1
Про перший ключі я не знав і, напевно, ніхто не знав. Комусь пощастило.

Я порадів, що врахував можливість його появи в два рядки. Тремтячими руками я його абияк написав і активував! На все пішло секунд 20. Дуже пощастило зі скануванням, алгоритм практично відразу показав серійний номер при тому, що повне сканування тривало 30 секунд. У цьому ролику, як виявилося, було два ключа, які здалися послідовно, я ввів другий. Вітаю того, хто активував перший!

Залишилося ще 5 ключів
Можна доопрацювати алгоритм: запускати сканування разом з початком старту скачування, алгоритм ускладниться, але виграш буде секунд 10. Можна ще зробити розпізнавання серійного номера і його автоматичне введення в battle.net. Тоді ключик можна буде ввести навіть за 5 секунд.

P.S. Diablo III кльова

UPDATE
Цікаво було писати самого бота, тому витрачені 20 годин я розцінюю як час витрачений на розвагу, а не як 20 годин, за які можна було б заробити набагато більше грошей, ніж коштує сам ключ. У вільний час я відпочиваю або вивчаю щось нове, а не працюю, а тут приємне з корисним. Гру ще не пройшов.

Ну раз багато питань по алгоритму ... Головне, алгоритм повинен бути дуже швидкий. За скриншоту з серійним номером відразу видно основна ідея.

У підсумку, з'являються тільки картинки з текстом схожим на серійний номер:

На практиці їх не багато їздить, тож знайти з них потрібний не складає труднощів.

Робота з VLCj
Робота з VLCj дуже проста. Спочатку я прочитав документацію www.capricasoftware.co.uk/vlcj/tutorial1.php. потім трохи погрався з класом MediaPlayer, але він якось глючил, в загальному я зупинився на виклик прямих функцій з бібліотеки LibVlc - воно і швидше і безглючная.

Спочатку створюємо бібліотеку
LibVlc libvlc = LibVlcFactory.factory (). Create ();

Функція analyzeImage якраз визначає, чи знаходиться на скріншоті ключик чи ні, якщо знаходиться, то зберігає його в спеціальну папку.

Схожі статті