Advent of Code

флоппик

promotor fidei
Команда форума
Партнер клуба
Наткнулся тут на https://adventofcode.com/2019/ и что-то залип. Я обычно не люблю все эти мета-олимпиадные задачки, но тут прям зашло по нескольким причинам:
1. Переиспользование кода между заданиями, заставляет писать тесты.
2. По этой же причине, прошлые задания автоматически тоже работают как тесты.
3. Поскольку все задачи состоят из двух частей (ко второй получаешь доступ после решения первой, вторая часть содержит дополнительные условия, но не меняет исходные) - говнокодить оказывается слишком дорого.
4. Приходится делать нормальный, здравый рефакторинг по мере движения по задачкам.
5. Не работает оверинжиниринг.

Сам решаю, и теперь и людям даю. Вдруг кому тоже понравится)
Сам себе поставил пару дополнительных ограничений: без сторонних пакетов и без стэк оверфлоу. Оказалось, что моя думалка уже подржавела: https://github.com/gorbunov/advent-of-code
 

fixxxer

К.О.
Партнер клуба
Фига себе ты заморачиваешься.
Я такие одноразовые штуки куда более примитивно пишу, даже с учетом реюза кода и небольшого рефакторинга в этих задачах. :)
 

fixxxer

К.О.
Партнер клуба
я пытался примитивно, а получилось опять вот так)
Это потому что ты язык неправильно выбрал.
Вот, смотри какое говнище! (я, правда, догадался коммитить только дойдя до day 5, хотя в принципе легко догадаться что там примерно было до)
 

fixxxer

К.О.
Партнер клуба
Впервые в жизни пригодился spaceship operator!
Ха! Я вот в этот же момент жалел, что в JS его нет.

Мне он один раз в PHP пригодился, где-то полгода назад, для usort.

@WMix, вон тот скриншот Флоппика - это весь AI. :D

UPD: А, не, вспомнил еще про spaceship, как-то написал примерно такое:
PHP:
return [self::FOO, self::BAR, self::BAZ][1 + ($a <=> $b)];
Но комитить я это не стал. :D
 
Последнее редактирование:

fixxxer

К.О.
Партнер клуба
16p2 - феерическое задротство, конечно. Типичная олимпиадная хрень. Решил, но мне сразу перестало нравиться это все.
 
Сверху