Портрет 4X_Pro
Был в Сети 8 окт. 2025 г., 21:51
Мультиблог
4X_Pro
Кратко о себе: Web-разработчик. Пишу на PHP, Python, JavaScript. Знаю Ruby и Go, со студенческих времён более-менее помню C и asm. Специализируюсь на ускорении загрузки сайтов и разработке ботов для Telegram. Linuxоид (использую Debian+LXDE). Сторонник IndieWeb, slow lifer.

Социальные сети


Новости сайта в Telegram

t.me/4x_pro

Лог жизни

Лог моей жизни, где я фиксирую наиболее эмоционально значимые для меня события и текущее настроение. Является продолжением блога, который я вел в ЖЖ с ноября 2004 по апрель 2018 года.


Смешная ошибка

4X_Pro
Продолжаю участвовать в конкурсе на CodinGame. Вчера открылась серебряная лига, куда я сразу же прошёл. А вот дальше откатился на 1200-1300 места и ничего не мог с этим поделать. Два дня ломал голову, что же улучшить в алгоритме, почему такие плохие результаты. Потом стал сравнивать свои действия и действия противника на первых ходах (у меня до 6-ого хода последовательность действий закодирована жёстко) и обнаружил, что даже когда я пытаюсь дублировать действия противника один в один, это не получается. Стал разбираться и обнаружил глупейшую ошибку. У меня проверка возможности совершить то или иное действие была сделана криво: количество sun points (очков действий) проверялось на строго больше, а не больше или равно. Как только это исправил, сразу же подпрыгнул до 860 места.
Читать далее…

Новый конкурс на CodinGame

4X_Pro
В четверг днём успел сделать ещё один небольшой шаг в плане поддержки IndieWeb — написал код для endpoint discovery. А потом начался конкурс на CodinGame! Задача про засев леса меня очень порадовала! Как и ожидалось, в бронзовую лигу я поднялся в тот же вечер, буквально с двух commitов (точнее, на CodinGame правильнее называть их submitами), написав совершенно простенький алгоритм. А вот дальше немного замедлился. Попытался было написать алгоритм, играющий перебором, но при большой глубине поиска нарывался на таймаут, а при маленькой — оказался на 1700-ых местах из 4000.
Читать далее…

Очередной конкурс от Яндекса

4X_Pro
Еще месяц назад узнал об очередных соревнованиях от Яндекса, и долгое время не мог определиться, участвовать или нет. У меня эти соревнования связаны со стрессом из-за очень жесткого ограничения по времени и того, что очень мало тестов, из-за чего сложно понять, что же я сделал не так. К тому же эта неделя получилась какой-то непонятной: вроде и дел особо важных не было, но время улетало неизвестно куда. И только сегодня, в последний день, все же выделил 4 часа на то, чтобы принять участие. И на этот решил, что нужно пытаться полностью дожать «одну» задачу, а не пытаться написать код для всех, а потом на всех же застрять на дальних тестах.
Читать далее…

CodinGame: я в золотой лиге

4X_Pro
Вот и все, конкурс Code a la Mode на CodinGame закончился. Мне удалось совершить качественный скачок! Впервые поднялся в золотую лигу и существенно улучшил результат как в абсолютных, так и в относительных показателях. Итог — 326 место из 1548. Кроме этого, впервые применил алгоритм поиска вширь, а не вглубь, для построения пути. Почему-то раньше мне он казался намного более сложным, хотя потом оказалось, что реализуется он элементарно на основе банального списка, работающего в режиме очереди, без всяких рекурсий (видимо, сказались стереотипы, оставшиеся со времен изучения Pascal и C, где нужно было заниматься реализацией списков самостоятельно). Кроме этого, реализовал один относительно новый для себя подход, который прежде в этих конкурсах не использовал: построение своего рода «виртуальной программы».
Читать далее…

Снова CodinGame: конкурс Code a la Mode

4X_Pro
Опять участвую в конкурсе на CodinGame под названием Code a la Mode. На этот раз задача достаточно необычная: нужно не пытаться обыграть второго игрока, а вместе с ним показать более хороший результат, чем этот же игрок в паре с третьим. При этом вторым игроком управляет алгоритм, о котором ничего не известно, кроме возможности наблюдать уже выполненные его действия.
Читать далее…

КСИ: есть восьмое задание!

4X_Pro
Уфф, только что закончил восьмое задание КСИ. Оно было реально сложным, на использование старинных методов шифрования! Причем, в отличие от предыдущих заданий, самым сложным вопросом был первый. Что я только с ним не делал, даже программу для перебора пытался быстро набросать. Но так и не справился (отчасти из-за того, что пошел ложным путем в самом начале, предположив неправильный метод и потратив на это 20 минут). Так и ткнул наугад в один из ответов, который казался подходящим по косвенным признакам. Но из двух часов, отведенных на задание, на него потерял где-то больше часа. Поэтому остальные пункты пришлось доделывать в спешке и в состоянии жуткой нервозности, расшифровывая лишь самое начало сообщения. Поэтому во втором пункте тоже до конца не уверен, правильно ли я его решил, так как одна из шести расшифрованных букв не совпадала. И только на третий вопрос ответил уверенно, зная, что другие варианты не подходят от слова совсем.
Читать далее…

CodinGame: конкурс A*Craft завершился

4X_Pro
Сегодня закончился конкурс A*Craft на CodinGame. В отличие от предыдущих, он длился всего два с половиной дня и был не на игры, а на оптимизацию: нужно было расставить стрелки на карте так, чтобы сделать суммарный путь роботов по ней максимальным. Я занял 150-ое место из 2456! (Правда, примерно последние 500 участников — те, кто зарегистрировался, но даже не попытался прислать хоть какой-то код, и поэтому получившие 0 очков.) Это гораздо лучший показатель, чем во всех предыдущих конкурсах. Если считать в относительных показателях, то до этого мне максимум удавалось подняться до 84%, а в этот раз — до 93%, что близко к моему верхнему порогу амбициозности!
Читать далее…

Legends of Code and Magic: итоги

4X_Pro
Прошлое воскресенье и понедельник я провел в очень подавленном состоянии. На конкурсе CodinGame дела шли очень плохо: несмотря на все мои попытки усовершенствовать алгоритм, я скатывался все ниже и ниже в рейтинге, и никак не мог понять, почему это происходит. Вроде ошибок нет, алгоритм играет нормально, а я все равно раз за разом проигрываю. Еще и чата узнал, что есть люди, которые вообще написали полноценный симулятор этой игры у себя на компьютере и провели на нем моделирование множества игр, на основании чего для каждой карты определили коэффициент ее полезности. Стало ясно, что с моим простеньким алгоритмом выбора карт с такими тягаться не по силам.
Читать далее…

Мини-конкурс на CodinGame

4X_Pro
Сегодня принял участие в очередном конкурсе от CodinGame. На этот раз нужно было спрограммировать бота для карточной игры по мотивам Warcraft. Уже за одно это разработчикам огромнейший респект — порадовали! Но, в отличие от предыдущих конкурсов, поменялся формат. Теперь конкурс проводится не за десять дней, как раньше состоит из двух частей, считаемых независимыми конкурсами. Первая — спринт: нужно представить решение задачи всего за 4 часа. Вторая — марафон — на ту же самую задачу (но с открытием лиг выше бронзовой) отводится 4 недели. Сегодня был спринт. Началось все достаточно хорошо: я за час с небольшим разобрался в условиях и написал код, позволивший мне влегкую проскочить третью дубовую лигу. Причем еще решил писать на PHP, а не на Python, в расчете на то, что на этом языке никто другой писать не будет, и у меня будут шансы получить бонус за финиш первым по языку.
Читать далее…

Конкурс по программированию от Яндекса

4X_Pro
В последние дни в жизни творился бардак. В пятницу по непонятным причинам проспал 12 часов и установил антирекорд сна: подъем в 16 часов (предыдущий был в 15:20 или 15:30). Скорее всего, повлияло солнечное затмение. Вообще, не раз замечал, что во время затмений, даже не видимых у нас, в жизни творится разная ерунда. Интересно, почему? Следующей ночью спать не хотелось совсем где-то часов до четырех, и, в итоге, засиделся до 6 утра. Суббота выпала из-за сходки, которую описывал в предыдущем сообщении. После сходки попытался лечь рано, но результат оказался совершенно не тем: проснулся около трех часов ночи, и сидел в Сети до 9 утра, потом снова вырубился. А осттаок дня провел в совершенно неработоспособном состоянии.
Читать далее…

Страницы:
  • 1
  • 2
Задать вопрос