?

Log in

No account? Create an account

Previous Entry | Next Entry

Точнее, все-таки он летает! Глайдер! Я написала глайдер!

По порядку. Есть такая игра, называется "Жизнь". Кто не знает - википедьте, вам понравится. Я на Хабре статью про нее нашла, когда искала что-то совсем другое. Почитала, поиграла, мне понравилось, но мысли писать что-то подобное к моей голове и не приближались даже.
Поэтому, когда Дима месяц назад предложил мне написать свой вариант "Life", я сначала только отмахнулась. "Жизнь" писать - это для взрослых, куда мне! Дима снизил обороты и сказал: "Ну хорошо, напиши сначала просто глайдер. Ты его за два часа напишешь". Я, по (не)доброй традиции начала ковырять ему мозг на тему "я не могу, я даже не знаю, как это сделать, это дико сложно, мне страшно, я не умею...". Мы даже поспорили, напишу я за 2 часа или не напишу. Конечно, за 2 часа я не написала. Написала за месяц. Но, ептваюмать, как это было! От лихорадочного возбуждения "я знаю, как это написать!" к "черт, какого хрена оно не работает?" От "Йес, получилось! Я гений и офигенно крута!" к "Я бездарь, я два часа пробую и так и эдак, а оно никак и вообще я понятия не имею, как это закодить". Та статья на Хабре стала моей Библией, я ее наизусть, наверно, выучила. Но там все было куда как более усложненно, поэтому до конца в коде я так и не разобралась.
Разумеется, без помощи не обошлось. Во-первых, с парой функций пришлось разбираться с помощью Димы (кстати, разбивку на подзадачи тоже он мне сделал, иначе я бы до сих пор ныла, что не могу). Самое забавное было на последней функции. У меня уже есть функция, которая получает старый массив и возвращает новый. У меня есть функция, которая этот массив печатает. Мне нужно было всего лишь объединить их в одну в цикле. Но меня, что называется "заклинило". Я час смотрела на собственный код, как баран на новые ворота и не могла понять, что у меня там происходит (Предпоследнюю функцию с возвратом массива Дима практически написал за меня, поэтому назвать ее "своим" кодом, я по-честному не могу. Вот именно на нее я и глазела). В итоге пришел Дима, за 5 минут написал последнюю функцию - и глайдер полетел!
Там еще нет графической составляющей, там еще не тороидальный мир, там еще нет возможности ввода для пользователя - там есть только глайдер. Но это все равно офигенно.
Подводя итоги - 4 функции написаны мной полностью самостоятельно, без подсказок. Еще одну - с помощью друга (archaicos, огромное спасибо! Мне эта функция по подсчету соседей во сне снилась несколько раз, зато я теперь ее понимаю просто шкурой, как дважды два :)), который потратил суммарно часов 5, наверное, пытаясь заставить меня правильно думать и при этом не подсказать больше, чем требовалось. Адский труд, я думаю :)
Две последние фактически написаны Димой в моем присутствии, а еще одна написана мной, но с его пинками в в правильном направлении.
Чувство двойственное. С одной стороны вроде как achievement, с другой - ну не полностью же сама! Но приключение, конечно, было то еще!

Зато вот от чего точно испытываю удовлетворение - так это от того, что Дима понял одну вещь, которую я ему пыталась донести несколько месяцев. "Я от тебя требую креативности, чтобы ты пробовала разное, а у тебя еще нет паттернов, багажа, ты просто еще не знаешь, что пробовать" Аллилуйя! Делаем шаг назад, замедляемся и теперь меня ждут простые задачки с постепенным усложнением, ура! А то "пиши код, пиши код блять"... Я бы и рада, но как? Можно подумать, мне не хочется писать код и испытывать тот кайф, когда программа запускается и все правильно выполняет. Дают, понимаешь, пятикласснику интегралы и удивляются - чего это он задачу не решает? А как, если он еще про степени понятия не имеет. Вот и я так же.
А "Жизнь" я все равно когда-нибудь допишу. Когда подучусь немножко.

Comments

( 19 comments — Leave a comment )
morfizm
Dec. 27th, 2012 08:27 pm (UTC)
А как насчёт глайдер на ютуб? (Ты можешь через видео через телефон) Или хотя бы исходники на github? :)

А то, ну, смотри, в Википедии написано, что такое life, а как конкретно ты его реализовала, что из себя представляет именно твой life, можно лишь догадываться.
morfizm
Dec. 27th, 2012 08:28 pm (UTC)
Как самый минимум, пару скриншотов сделай.
archaicos
Dec. 27th, 2012 10:08 pm (UTC)
Я вот life знаю, но не знаю что за параглайдер-паратрупер тут и какое отношение они имеют друг к другу. Симулятор полётов?
morfizm
Dec. 27th, 2012 11:18 pm (UTC)
Симулятор полётов, да. 2D.
fearless_cat
Dec. 28th, 2012 07:10 pm (UTC)
Как конкретно я его реализовала - я могу код с комментариями выложить :) Но у меня не настолько много программеров во френдах, чтобы им это было интересно. Попросят - выложу.
А разных вариантов лайфа (как, кстати, и глайдеров) в инете масса, гуглите - и будет вам счастье.
irisha8787
Dec. 27th, 2012 08:52 pm (UTC)
Здорово. У тебя великая цель стать программистом или ты так, без цели?
fearless_cat
Dec. 28th, 2012 07:11 pm (UTC)
именно, что великая цель
umnickmd
Dec. 27th, 2012 08:58 pm (UTC)
Это жизнь :)
fearless_cat
Dec. 28th, 2012 07:11 pm (UTC)
Во всех ее проявлениях :)
dennyrolling
Dec. 28th, 2012 06:26 am (UTC)
два прикольных видео про жизнь: http://www.youtube.com/watch?v=xP5-iIeKXE8 (ужас звук, рекомендую выключить) и http://www.youtube.com/watch?v=KJe9H6qS82I (недискретная жизнь, на интегралах основаная)
fearless_cat
Dec. 28th, 2012 07:12 pm (UTC)
Офигенно, спасибо! Даже сложно сказать, какой из роликов больше like :)
eternele
Dec. 28th, 2012 10:20 am (UTC)
я никак не пойму - ты раньше программированием занималась?
fearless_cat
Dec. 28th, 2012 07:15 pm (UTC)
Хм... Я занималась одну четверть программированием на Бейсике, когда мне было лет 13. После этого было только что-то отрывочное, сама понимаешь, имея мужа-программиста, поневоле приобщаешься. То про объектно-ориентированное программирование расскажет, то на Delphi писать поучит. Но сама практически ничего не писала.
Вот, в конце июля начала учиться программировать уже всерьез на Питоне.
Так что можно сказать, что не занималась
eternele
Dec. 28th, 2012 07:27 pm (UTC)
и ты с нуля вдруг решила стать программистом?! тебе это нравится?
fearless_cat
Dec. 28th, 2012 07:38 pm (UTC)
Ну скажем так, не вдруг :) товарищ morfizm колупал мне мозг где-то чуть меньше года, постепенно приучая к мысли, что программировать легко и интересно. Потом передо мной встал вопрос, на кого же я все-таки хочу учиться и чем зарабатывать на жизнь. Посмотрела, взвесила, прикинула и решила, что программирование - самый наилучший вариант.
А с нуля все становятся программистами, врачами, юристами, физиками :) Ни в ком вселенское знание от рождения не заложено, все с нуля начинают, только в разное время :)

Мне нравится программировать, когда у меня получается. Это такой драйв!
Мне нравится креативить, когда задачка по моему уровню (ну, может, чуть выше), когда сидишь, мозги ломаешь, процесс идет, все становится яснее и яснее. Потом - оп! - поняла, осталось закодить.
Так что да, нравится
eternele
Dec. 28th, 2012 07:50 pm (UTC)
"программировать легко и интересно" далеко не всем. у меня было два курса программированию по семестру плюс численные методы, тоже на компе. и пока задачи короткие и быстрые - мне интересно, а как надо запрограммировать несколько вложенных циклов с несколькими вложенными массивами - вот это тоска зеленая. причем, сначала я научилась в С++, а в другой школе нас на С стали учить, а в нем куча привычных мне кунштюков не работает.

в общем, сильно на любителя удовольствие. а раньше ты чем занималась?

я сама "вдруг" физиком стала, так что понимаю тебя. но ты ещё дальше меня пошла. хотя страну я тоже поменяла, но мужа у меня не было. хотя, может, с мужчиной как раз проще...
fearless_cat
Dec. 28th, 2012 07:57 pm (UTC)
О, вложенные циклы с массивами! Это то, с чем я сейчас тоже дерусь. Но я не скажу, что это прям тоска зеленая. Тоска зеленая - это если слишком сложно. А если у тебя есть возможность затормозиться, отступить назад - то войти во вкус легко.
Просто школа, как правило, не то место, где приятно учиться чему-то новому.
Вот я в школе математику ненавидела лютой ненавистью. А сейчас по кайфу
eternele
Dec. 28th, 2012 08:07 pm (UTC)
про школу очень точно сказано. я иногда всерьез начинаю сомневаться, люблю ли физику, так ее иногда ужасно преподают, плюс надо учить то, что мне неинтересно. а потом найду хорошую статью или книгу, и снова восторг и интерес.
fearless_cat
Dec. 29th, 2012 08:42 pm (UTC)
Это проблема большинства учебных заведений, кстати. Обязательно либо что-то ненужное впихнут, либо "воды" нальют, а что-то нужное, наоборот или не дадут, или дадут совсем уж сжато. Или фигню какую-нибудь.
нам вот, кстати, в лицее так классно давали бухучет и финансы, что мне нравилось. А потом в универе все это таким сухарем, что я это на долгие годы возненавидела. Только сейчас помаленьку начинается отходняк, уже думаю, что надо бы восстанавливать навыки по сведению дебета с кредитом :)
( 19 comments — Leave a comment )

Profile

fearless_cat
Бывшие канадские ангелы мы

Latest Month

November 2017
S M T W T F S
   1234
567891011
12131415161718
19202122232425
2627282930  
Powered by LiveJournal.com
Designed by Tiffany Chow