а я тут опять занимаюсь неким рукоделием, которое было забросил, а теперь вот опять начал называется C#
предыстория, неожиданно опять многабукав, что за наказание!
Несколько лет назад мне в башку стукнуло, что неплохо бы мне начать программировать. Именно для успокоения нервной системы и отвлечения от гуманитарщины (коия утомительна и нервотрепна). Ни с каким программированием до того я дела не имел, но язык есть язык, чоужтам, не боги горшки и т.д. Случайно под лапу подвернулось руководство по Visual Basic, я попробовал почитать его с середины (это такой медвежий метод самообразования), ни фига не понял и спросил своих лондонских друзей-программеров, в чем фишка. Они часа за два объяснили мне все основные принципы, без которых лезть в эту деятельность было и правда бесполезно, и пустили медведя в свободное плавание.
Visual Basic они, правда, презирали, поэтому объяснения были на языке С++. Пришлось поглубиться в С++. Медведь сам доковырялся до некоего уровня, на котором можно было пописывать вполне связные штучки, но застрял намертво, потому что - кто знает - язык С++ не особо приятный, для профанов предназначен плохо. На какое-то время я это забросил (тут как раз и комп в очередной раз приказал долго жить, а вместе с ним и среда разработки), потом опять вспомнил, пошел за советом к тем же друзьям, и они дружно заорали: бросай этот паршивый С++, установи себе C# (си шарп), он, говорят, в тыщу раз приятнее!
"Говорят" - это потому, что сами-то друзья на нем не пишут. Они уже давно пишут на языках, о которых у меня никакого даже представления нету.
Установил си шарп, стал разбираться. И, товарищи - поперло! Тут главное - что? Правильно: интеллектуальное нахальство. Это основной медвежий самообразовательный принцип. То есть вместо чтобы читать всякие tutorials, что скучно, медленно и не усваивается (да и морока, и времени много уходит на какие-то глупости), надо ставить перед собой задачу, чем безумнее, тем лучше, и пытаться ее решить. Сначала подручными средствами, а потом, когда выяснится, что их фатально не хватает - надо думать вперед, то есть сначала придумать, какие могли бы быть средства, а уже потом отправляться на их поиск по программерским форумам и другим местам, где у людей возникали подобные же вопросы, и на них давались ответы с примерами кода.
Может, это и не лучший способ. Но он самый надежный в смысле усваивания материала (потому что сначала сам придумал, а уже потом нашел, и даже если придумал глупость - все равно запомнил, в чем глупость и как должно быть по-умному), а главное, безумно увлекательный!
Ну вот, стал пописывать маленькие игрушки, просто для отдыха, как люди рисуют или, допустим, вышивают. Естественно, пока без всякой такой графики, вообще без наворотов, но вполне работающие. Minesweeper, например, очень похожий на настоящий, и всякое такое, маленькое, непритязательное, с логикой. Мой апофеоз был - воспроизводство своими средствами старой доброй игры Lines, я там всё сделал, как надо, даже прыгали у меня эти шарики, и дорогу находили, и даже звук был, в общем, я этой фигулькой страшно горжусь, страшно!
И, наконец, мы с друзьями сделали совместный проект. Даже два, но я про второй - красивущий!! Ниже расскажу, может, кому пригодится.
А потом - тут в тексте лакуна - в общем, на два с половиной года всё остановилось - и я был абсолютно уверен, что ничем таким заниматься больше не смогу.
А давеча выяснилось, что могу!! И что это настолько спокойнее, веселее, умиротвореннее, во всех отношениях безопаснее, чем писанина на гуманитарные темы! После такого перерыва... засел за клаву с дрожью в лапах... и за два дня сбацал, аж клава задымилась, вполне осмысленную программку, на тему лево- и право-полушарного мышления (про названия цветов, в смысле не flowers, а colors, которые пишутся другим цветом, чем обозначают, и надо быстро, во всё ускоряющемся темпе, найти на панельке цветовое соответствие именно слову, а не тому, какого оно цвета, а цвета на панельке еще все время перемешиваются). Закончил ее, стал новую писать, посложнее, пока на этом застрял.
Это правда магия какая-то, в самом буквальном смысле слова: ты пишешь всякие там словечки, символы-формулы-функции, а оно - показывает!! и делает то, что ты сказал!! Точно как заклинания: ты произнес разную абракадабру, а из воздуха сгустились кролики и белые голуби, и - "accio, мётлы!" Естественно, всяких казусов - до фига.
Забавные казусы, опять многабукав
Когда писали с другом (весь код писали с одним, другой потом делал версию под андроид) игрушку (обучалку англоговорящих французскому языку) - мы это делали бесконечно долго, то в Лондоне, то в Питере, то вообще через teamviewer, - долго потому, что, во-первых, хотели сделать очень красиво, с графикой! и для этого выбрали язык, который ни один из нас до того не знал (Processing), а во-вторых, хотели сделать чтобы ух! Так и вышло, и красиво, и ух, но заняло года два (в свободное же время только делали), с перерывами на то и се. После каждого такого перерыва смотрели на свой код как в первый раз, и из наших глоток вырывалось в унисон: - Боже, какие мы тогда были умные!!! (кто в теме - читать код куда как менее приятно, чем писать)
В самом начале эпопеи, когда только прилаживались к языку и осваивали какую-никакую графику - сделали бэкграунд, на котором должны летать воздушные шарики (на шариках написаны французские слова, из них надо составлять предложение). Для тренировки первым делом пустили по этому бэкграунду (тогда это была лесная лужайка, потом сделали всякий Париж и много чего еще) ходить, естественно, медведя - нашли хорошую картинку, сделали, чтобы он выдвигался слева, потом, переступая лапами, двигался направо и постепенно уходил за экран, через некоторое время опять появлялся слева, и так по кругу. Получилось. Ну и хорошо, медведь ходит по экрану, мы про него как-то уже позабыли, пишем воздушные шарики. Написали, стали думать, как сделать, чтобы они начали двигаться так, как нам надо, то есть изящно порхать с нужной скоростью и в разумных пределах... вроде придумали... пишем... получается, понятно, какая-то фигня, еще думаем, пишем... так несколько часов... наконец вроде хорошо придумали... написали... запускаем! ...шарики стремительно, в едином порыве, несутся вверх и исчезают с экрана! ...пауза. Тишина. Мы, потрясенные, смотрим на экран с пустой лесной лужайкой, пытаясь осознать произошедшее. ...и на экран выдвигается, и не спеша, пофигистской походкой, тащится слева направо медведь, о котором мы и думать забыли! (вот это был шок, товарищи!)
Так как мы собирались всё делать По-Умному, все время напоминаем друг другу, что надо не забывать комментировать, то есть сбоку от кода писать словами, что это у нас тут понаписано и зачем, а то потом будет очень большой геморрой с этим разбираться. Разумеется, забываем, ленимся, или просто в азарте не успеваем. Но иногда спохватываемся и пишем. К сожалению, не всегда пространно. Однажды смотрим на кусок кода, написанный за несколько месяцев до того. Он довольно темный, и что он у нас делает - неочевидно, надо вникать. - О, смотри, мы тут закомментили! Умные. Рано обрадовались. Коммент гласил: "//Scottish play". Ну... и что? Scottish play - так в английском театре традиционно называют Макбета, потому что поверье гласит, что произнесение названия этой пьесы кем-нибудь из труппы вслух приносит несчастье всему театру. И что мы имели в виду? Какие-то ассоциации с Шекспировским Макбетом? Или с чем-то, чего Нельзя Называть? или с комедийным сериалом Black Adder, из которого мы, собственно, и почерпнули сведения про данное поверье? Или с моей любимой экранизацией Макбета? Тайна сия так и осталась тайной, по сей день. Называется - Всё По-Умному.
А сейчас я пытаюсь написать Искусственный Разум , в смысле, игрушка-то вроде элементарная (поле с цветными квадратиками, играющий закрашивает из своего угла, копьютер из своего - старый добрый допотопный Filler), и собственно код я написал быстро, но теперь я хочу, чтобы компьютер играл хорошо! чтобы он думал, куда ходит! и вот с этим я бьюсь уже вторую неделю, придумываю ему всякие алгоритмы поведения, чтобы его было сложнее обыграть человеку, который видит поле глазами и думает головой. ...Прихожу в отчаяние!.. Испытываю взлеты и падения!.. Но всё это на самом деле так приятно и прекрасно, и настолько... мирно и спокойно, и мозги, трудясь над простыми логическими мыслями, по-настоящему отдыхают... Так что если кто соблазнится - я с удовольствием помогу начать или продолжить, это на самом деле безумно увлекательное занятие!!
_________________ Все мои тексты, настоящие, будущие и прошлые, посвящаются Кепочке, моей музе, а отныне также и ангелу-хранителю
|