WeekChallenge
У нас в компании раз в полгода проводится внутренняя конференция, чтобы все были в курсе новостей, поделиться опытом и просто пообщаться. Последние время перед конференцией организуют дополнительную активность – WeekChallange. Это такое соревнование, как видно из названия длительностью неделю. Проходило три раза и каждый раз новый формат.
Первый раз было что-то вроде Викторины. Через api получали простую задачу, например, перевести фразу, указать, правильно ли написано ться/тся, определить часовой пояс города, распознать цитату в аудиозаписи, вычислить математическое выражение, найти недостающее слов в стихотворении и т.д. И отправить ответ. За правильные начисляли очки, за неправильные – снимали.
Второй раз управляли ботами на большой карте, строили фермы и дрались с зомби. Отличительной чертой этого челленджа была абсолютно не предсказуемая смена правил. В первый день надо было быстро захватывать клетки, на следующий – учится строить фермы, а через три дня срочно учиться драться с зомби. А чтобы было больше веселья – смена правил происходила в 4 утра!
Третий раз участвовали в космическом сражении. В кубе 30*30*30 клеток надо было построить флот и разгромить противника.
Во всех трех мы участвовали. Писали обработки и целые конфигурации, показывали хорошие результаты в общем зачете. Но третий челлендж сильно отличался от первых двух. О нем и расскажу.
Heroes of Bresenham’s might and Chebychev’s magic
Тут не было api с которым можно было б общаться по rest. Нужно было консольное приложение, которое на вход получается данные об окружении и отдает решение о следующем ходе. Плюс ограничение по памяти и всего один процессор. Для того чтобы передать очередное решение – требуется отправить исходники. Как видно – 1с здесь не очень подходит. Платформа с трудом запустится на таких ограничениях, да и доступ на запись к диску был отключен! Мы уже подумали, что этот челлендж пройдет мимо нас. НО! Потом вспомнили об OneScript. Он отлично подошел для такой задачи.
Разработчики челленджа все проверили и дали добро. Мы будет участвовать высылая файлы в формате .os.
Большое спасибо Андрею Овсянкину (//infostart.ru/profile/267027/). В честь него (ну и мема) мы назвались «Саня, это бобер!!!», но коротко все звали просто «Бобры».
Еще играли ребята на Python, JavaScript, но большая часть на C#.
На этапе подготовки и обсуждения участия столкнулись с таким:
Если у большей части участников был готовый стартовый шаблон, то нам пришлось учиться ходить. Первый несколько дней был объявлен Lighting – игрокам научиться летать/стрелять/не вылетать за пределы куба, а организаторы тестировали как работает система. Мы покодили и даже заняли 6 место в общем зачете (всего 18 команд участвовало в Lighting).
Потом дали два дня на передышку и почистить код. После этого играем уже на боевом сервере.
Основное соревнование
Ура! Старт соревнований! Мы закрепились на 6 месте и пытались оптимизировать свои стратегии. Хотя бы заставить корабли на скорости не вылетать из арены. А тут внезапный сюрприз. Текстовый квест! По три-четыре задания в день. За решение задания – новый агрегат для корабля: щит, двигатель, бластер. Или помощь в виде кусков кода. На C#. Спасибо, очень помогло.
Наша команда разделилась. Кто-то решал задачи, кто-то пил код. Представляете каково это. Только придумал стратегию, а кто-то решает очередной квест и получаем новую плюшку. Которую надо протестировать и добавлять или нет к стратегии. А времени, напоминаю, всего неделя.
Один раз получился рембо
Мы много чего перепробовали. Стоили корабли звездочкой, летали колбасой, просто стояли на месте. Главная проблема была – столкновения. Постоянно. Или в противника врежемся или друг в друга. В общем выше 6 места мы не поднимались. Только вниз.
В одном из квестов получили – Острый нос. Оружие повышало урон от столкновения. Ну и как говориться: «Твой позорный недуг мы в подвиг определим». Решили попробовать таранить! И внезапно – пошло. Мы были на 2-3 третьих местах. И заметили, что ни у кого нет обработки такой ситуации, все ориентировались на дальний бой. А в еще одном квесте выиграли улучшений двигатель. Собрали флот из кораблей с двумя штыками и супер-двигателем. Но на боевую стратегию не выкладывали. Наша стратегия до финала выглядела вот так
К финалу добрались без потерь. Решили почти все квесты, один нам так и не дался. На компьютерное обучение и распознавание образов.
Как оказалось, не одни мы прятали стратегию. Тем интереснее было ждать финала. Финал – это прогон последнего загруженного решения без возможности вносить изменения.
Финальная битва
Корабли на старт! Орудия к бою! Понеслась. Сработал ли наш расчет на эффект неожиданности? На все 100%!
Мы уверено шли на вершину таблицы, хотя иногда и проседали. Никто видимо даже не разбирал ситуацию, когда противник будет не убегать, а наоборот – идти в штыковую атаку. Да еще и на огромной скорости. Хотя первое время все думали, что мы — мастера маневров
30 минут волнительного ожидания. Есть команды которым мы проигрываем, но большую часть побеждаем легко. Пересчет очков… И у нас ПЕРВОЕ место!!!
Было очень приятно, что за нас болели и организаторы.
Вот так выглядела финальная таблица
И пример боя. Мы желтые
О чем эта статья?
Итак. О чем же статья? Да просто так. Поделиться опытом, показать, что и на 1с можно удачно выступать на соревнованиях. Главное умение быстро придумать и адаптировать алгоритмы.
У ребят есть желание провести это соревнования на внешнем контуре. Будем надеяться, что у них все получиться. Тогда у всех нас будет возможность побороться и доказать еще раз, что нельзя недооценивать 1с-ников.
А кто-то только окунулся в новый для себя язык.
отличная статья! Было бы любопытно посмотреть на итоговые/промежуточные алгоритмы 🙂
(2) Вроде гитом пользовались. Поищу решения.
(2)Ловиhttps://github.com/KrapivinAndrey/wc2018.2
Эту статью бы да на Хабр, что бы 1С-хэйтеров попустить немного.
Ну и очередное доказательство что язык не важен, а важно понимание принципов и ясность мышления. А так вообще на Pythone, конечно, такие штуки делать гораздо легче и приятнее.
(5)
Ну как видно на Pythone писали только двое. И кстати, 6 место — python — это так же команда 1с. Просто решили на питоне писать
(1)Чую, сейчас начнут больше народу юзать OScript )))
(6) python =)
(6) очевидно слабенькие питонисты попались
Что это за контора ? 🙂 хочу туда
(10)
Кстати, мы ищем разработчиков 1С в Екатеринбурге. Если есть желание — пишите в личку.
Очень — очень здорово!
С удовольствием поздравляю.
(5) Поддерживаю! Андрей — запости на Хабр, там теперь можно размещать собственные материалы из других мест
(14)За это дают футболки и ачивки =)
(14)
Ну этой «фигней» занимаемся раз в полгода. Это полезно — решать совсем другие задачи в сжатые сроки. Разминка для мозгов.
(17)https://www.codingame.com/start пожалуй интереснее
Спасибо за великолепный обзор. Подняли настроение на выходных! Как реклама oscript — одна из лучших ))) Ждем продолжения битвы )
(11)
Почему-то чуйка подсказывает, что это — СКБ Контур
(20) Мей дей, мей дей! Нас раскрыли!!
Нереально круто!!!
Тоже очень хочется поучаствовать!!!
И да, большое спасибо, что не поленился написать статью! Ждём продолжения и первых мест, разумеется. 😀
(22)
Будем надеяться, что у ребят получится провести соревнования на внешке!
(22)
Следующее соревнование летом — июнь-июль.
(21) на IT-Planet вы конкурсы придумываете примерно такие) и как раз в категории c#)
(14) Такое ощущение, что «точить пилу» никогда не нужно, т.к. за это никогда не заплатят.
Нужно всегда только «пилить», не важно что…
Бизнес, просто бизнес. Уже не один программист сгорел из-за этого дерьма.
Автору статьи — гигантский респектище!!!
И за победу, и продвижение 1S…
И всем кто видит в профессии не только работу — респектище!
(25)
Уважаемый,
не нужно путать процесс заточки пилы и процесс интеллектуального развлечения. Подготовиться и сдать экзамен на 1с-проф или 1с-спец — вот это заточка пилы. Понимаете разницу ?
«Конец попробовать»
— это вы на Эль-76 (?вроде так назывался) не писали. Там закрывающая операторная скобка было «Всё». и «Конец» вроде был. и «Если» тоже вроде (не помню за давногстью лет). Запускаешь прогу на трансляцию а у тебя полный листинг типа
Если не подходит…
Конец не подходит.
и как апофеоз
«Всё не подходит»
примеры на Эль-76 — есть в сети и в ивкипедии. Понятно, у кого 1С содрало… 😉
(26) Не вижу тождества между сертификацией и знаниями. Увы.
Да, сертификация, как метод развития, необходима. Да, «спецы», «эксперты» приносят некоторые знания. Но это ничтожно мало, мизер.
Их наличие задает лишь направление развития. А направление — это совсем не пройденный путь, не тренированный мозг, не опыт.
Так что позвольте с вами не согласиться, уважаемый!
(21) Вот видно большую контору. В одном отделении вундеркод пишут и челенджи выигрывают, а в другом клепают такое, что комикс про Винни-пуха с лужей получается.
(30)
Даже интересно стало — про что так?
(17) прикольно! что-нибудь для 1с-задач было бы интересно почитать в таком же роде. На ИС алгоритмам мало уделяется места.
(25)
Нужно всегда только «пилить»
согласен
(33)
Извините, но не согласен.
Никто не заплатит за то что ты пошел, например, изучать как же писать тесты на 1с.
Но когда ты благодаря тестам выполняешь работу качественнее и быстрее — разве за это не платят?
Чем это не «точить пилу»?
Ну слава богу, не очередное чтиво о приключения программиста Сергея на корпоративе. Интересно посмотреть было.
(31) Модуль интеграции с ФГИС Меркурий
(34) согласен с вами.
мы же не спорим. я не противоречу вам.
в сообщении (25) как раз и написано интонационно, что надо периодически «точить пилу» и пусть за это не платят, все равно окупится сторицей.
нить разговора была такой: сначала пост (14) — затем (25) — потом (я) — затем (вы)
итог — я за интеллектуальные игры и развлечения.
(32)
Видимо это сборник задач к специалисту 🙂
Даже если бы сейчас добавили возможность решать задачи на 1с, при текущей производительности платформы большинство задач не будет принято из за ограничений времени…(даже если задача будет решена верно)
Поздравляю ребят! Очень эмоционально, азарт передан классно! Но кто-нибудь проверял текст данной статьи на грамотность правописания?
(11) какая ставка у 1с-разработчиков в Екб? Может в Казани меньше…для работы по удаленке
Отличная статья.
Поздравляю с победой!
Хочется тоже в чем-то подобном поучаствовать, но без фанатизма 😉