k1dnap

На Пикабу
рейтинг 2 подписчика 14 подписок 1 пост 0 в горячем
Награды:
5 лет на Пикабу

Будь сильным в своем незнании! ч.1

Сап, пикабу!

Итак, данная рубрика будет посвящена теме *войтивАЙТИ*. Серия будет включать что-то из Си( база), что-то из Си++( основа), обратная разработка, машинное обучение и, возможно, питон( алгоритмы машинного обучения), так-же и немного жизненных моментов. Будут ссылки, названия книг(ищем в гугле), программ(так-же гугл), и живые примеры, но не будет ничего готового(аля результат с гитхаба, ибо всё надо делать самому. А тот кто ищет, тот найдет(с)стетхем.)


Немного предыстории:

В один день я понял что жить моим образом жизни совршенно невозможно. Мне уже 22, а достижений абсолютно никаких, я просто ничего не добился, никаких стремлений, хоть я и знаю французский\английский\испанский\китайский, но в жизни их не использую( раз в год беру переводы на заказ, да видосики смотрю на ютубе в оригинале, боже, вот это достижение), решил поставить себе цель, да и улучшить свою жизнь в целом - бросить курить, начать делать зарядку, да и вообще добиться чего-нибудь.

Моя задача написать бота с использованием машинного обучения для компьютерной игры(дота2\ск2\л2\мб даже вов). В приоритете дота2(результат уже гуляет по сети, без обучения правда, но идёт!).


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


Итак, приступим.

Заходим в интернет( браузер), в поле для ввода пишем: google.ru. Зашли? Круто!

Введите в поисковой строке: Пикабу. Увидели ссылку на наш любимый портал? Отлично!

Теперь введите: слово: пурпурный. Увидели все оттенки пурпурного цвета? Супер!

Теперь вы знакомы с гуглом, он хранит ответы на ваш любой вопрос. Можно спросить у него *Как разобрать телефон*, и он покажет\расскажет. А можно спросить *разбор iphone6*, и вы даже найдёте детальное видео с разбором.

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

\\\\\\\\\\\\

Запомните, умение пользоваться гуглом спасёт вас ещё миллиарды раз.

\\\\\\\\\\\\

Нам нужно вспомнить английский, увы, без него никак, хотя-бы выучите алфавит и скачайте гугл переводчик на телефон. Я вас уверяю, лексика может быть и сложная, термины-хуермины, но на английском существует намного больше знаний, тут тебе и европейцы пишут гайды, и индусы, и американцы, да все умеют в английский, это проще чем кажется. Для изучения могу посоветовать: смотреть сериалы на инглише, учить по 10 слов в день( 365х10=3650 в год, а это уже дохуя). Да и вообще пригодится( мы же за знаниями пришли, да?).

Начнём с азов, увы, без них никак.

Что такое компьютер и причём тут программирование?

Компьютер - сложное вычислительное устройство ( тупая машина)внутри которой упорядочено передаются сигналы.

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

Сигналы передаются по заложенным алгоритмам.

А программирование - есть построение и упорядочивание этих алгоритмов. Машина - тупой кусок железа передающий сигналы по заложенным программам, чем дольше вы будете этим заниматься, тем больше вы будете в этом убеждаться. На каком языке бы вы не писали( си\ява\питон...), ваш код будет переведен компилятором в машинный код, а машина уже будет выполнять машинный код.


У каждого действия должен быть план. Умение грамотно разобрать задачу помогает эффективно расходовать ваше время и принимать эффективные решения! Человек действует так-же.

Движение указательным пальцем левой руки производится благодаря натяжению связки кисти, связка натягивается изза напряжения мышцы, мышца напрягается изза импульса переданного нашим мозгом. Т.е. Импульс -> напряжение мышцы -> натяжение связки -> движение пальца( возможно этот процесс проходит совершенно по другому, кто вкурсе поправьте). Это действие заложено у нас самой матушкой природой. Так делал ещё тот, кто говорил "я твой дед", и дед моего деда делал так, и дед деда моего деда...


Но человек является разумным существом!

Произвести движение пальца можно и иными методами. К примеру, можно ПРАВОЙ рукой передвинуть указательный палец левой руки, можно подставить палец под кипяток - палец невольно согнётся, а можно кольнуть иголкой в кисть и палец дрогнет.

Все 3 метода являются верными, в теории они должны приводить левый палец указательной руки в движение, но...

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

Второй метод: повреждает палец( кипяток же), а вдруг чувствительность отсутствует?

Третий метод: двигает всеми пальцами сразу( а нужен только указательный), а вдруг чувствительность отсутствует(результата не будет)?

Все эти 3 метода являются *костылями*. К ним нужно прибегать только в случаях безысходности( в мануалах пусто, гугл молчит, китайский гугл молчит). Использование костылей влечёт за собой разнообразные последствия.

Костыли бывают разные: гениальные, ленивые, из жопы...

Использование костылей зачастую необходимо( рука не двигается), а зачастую является абсурдным( нахуй лысому расческа?)


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

Моя задача написать бота с использованием машинного обучения для компьютерной игры. ->

Бот - программа, выполняющая определенные действие при определенных условиях. ->

Условия нужно получать из игры. ->

Из игры - из памяти приложения(вообще можно сканировать изображение, можно перехватывать пакеты...) ->

Чтение памяти - обратная разработка( reverse engineering) ->

Что же это за чудо то такое? Загуглим!


Вообще можно пытаться найти уже готовый метод, а если его нет? Или разработчики внесли изменения в игре и теперь всё по другому?


Нужно учиться, в интернете есть отличная книга "reverse engineering для начинающих" Дениса Юричева. Наишикарнейший пример практики и теории в одном. Но автор советуют иметь познания о Си\Си++, чем мы и займёмся.

Ищем книгу "Язык программирования Си( второе издание)" Брайана Кернигана и Денниса Ритчи. Покупаем( ага) её и начинаем читать. Примеры выполняем на https://ideone.com/ и https://godbolt.org/ ( во втором просто глазеем, рассматриваем, пытаемся уловить принцип, меняем код, смотрим что поменялось, меняем порядок действий, смотрим результат, меняем значения, смотрим результат)

Показать полностью
Отличная работа, все прочитано!