?

Log in

No account? Create an account

Previous Entry | Next Entry

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

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

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

Comments

fearless_cat
Dec. 28th, 2012 07:10 pm (UTC)
Как конкретно я его реализовала - я могу код с комментариями выложить :) Но у меня не настолько много программеров во френдах, чтобы им это было интересно. Попросят - выложу.
А разных вариантов лайфа (как, кстати, и глайдеров) в инете масса, гуглите - и будет вам счастье.

Profile

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

Latest Month

August 2019
S M T W T F S
    123
45678910
11121314151617
18192021222324
25262728293031

Page Summary

Powered by LiveJournal.com
Designed by Tiffany Chow