Не только автоматизация учета

Сказ о том, как одинэсники с сишарперами и питонистами играли.

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с-ников.

А кто-то только окунулся в новый для себя язык.

 

40 Comments

  1. nixel

    отличная статья! Было бы любопытно посмотреть на итоговые/промежуточные алгоритмы 🙂

    Reply
  2. Scorpion4eg

    (2) Вроде гитом пользовались. Поищу решения.

    Reply
  3. Scorpion4eg
  4. AnderWonder

    Эту статью бы да на Хабр, что бы 1С-хэйтеров попустить немного.

    Ну и очередное доказательство что язык не важен, а важно понимание принципов и ясность мышления. А так вообще на Pythone, конечно, такие штуки делать гораздо легче и приятнее.

    Reply
  5. Scorpion4eg

    (5)

    Pythone

    Ну как видно на Pythone писали только двое. И кстати, 6 место — python — это так же команда 1с. Просто решили на питоне писать

    Reply
  6. mcgoblin

    (1)Чую, сейчас начнут больше народу юзать OScript )))

    Reply
  7. Merc

    (6) python =)

    Reply
  8. AnderWonder

    (6) очевидно слабенькие питонисты попались

    Reply
  9. herres

    Что это за контора ? 🙂 хочу туда

    Reply
  10. Scorpion4eg

    (10)

    Что это за контора ?

    Кстати, мы ищем разработчиков 1С в Екатеринбурге. Если есть желание — пишите в личку.

    Reply
  11. infosoft-v

    Очень — очень здорово!

    С удовольствием поздравляю.

    Reply
  12. Evil Beaver

    (5) Поддерживаю! Андрей — запости на Хабр, там теперь можно размещать собственные материалы из других мест

    Reply
  13. Merc

    (14)За это дают футболки и ачивки =)

    Reply
  14. Scorpion4eg

    (14)

    и теперь занимаются фигней

    Ну этой «фигней» занимаемся раз в полгода. Это полезно — решать совсем другие задачи в сжатые сроки. Разминка для мозгов.

    Reply
  15. van_za

    http://codeforces.com/ — отличный сайт вынести себе мозг, правда на 1с не получится

    Reply
  16. Merc

    (17) https://www.codingame.com/start пожалуй интереснее

    Reply
  17. Созинов

    Спасибо за великолепный обзор. Подняли настроение на выходных! Как реклама oscript — одна из лучших ))) Ждем продолжения битвы )

    Reply
  18. MaZaHacKa_13

    (11)

    е. Если есть желание — пишите

    Почему-то чуйка подсказывает, что это — СКБ Контур

    Reply
  19. Scorpion4eg

    (20) Мей дей, мей дей! Нас раскрыли!!

    Reply
  20. Tavalik

    Нереально круто!!!

    Тоже очень хочется поучаствовать!!!

    И да, большое спасибо, что не поленился написать статью! Ждём продолжения и первых мест, разумеется. 😀

    Reply
  21. Scorpion4eg

    (22)

    Тоже очень хочется поучаствовать!!!

    Будем надеяться, что у ребят получится провести соревнования на внешке!

    (22)

    Ждём продолжения и первых мест

    Следующее соревнование летом — июнь-июль.

    Reply
  22. MaZaHacKa_13

    (21) на IT-Planet вы конкурсы придумываете примерно такие) и как раз в категории c#)

    Reply
  23. nvv1970

    (14) Такое ощущение, что «точить пилу» никогда не нужно, т.к. за это никогда не заплатят.

    Нужно всегда только «пилить», не важно что…

    Бизнес, просто бизнес. Уже не один программист сгорел из-за этого дерьма.

    Автору статьи — гигантский респектище!!!

    И за победу, и продвижение 1S…

    И всем кто видит в профессии не только работу — респектище!

    Reply
  24. bulpi

    (25)

    Уважаемый,

    не нужно путать процесс заточки пилы и процесс интеллектуального развлечения. Подготовиться и сдать экзамен на 1с-проф или 1с-спец — вот это заточка пилы. Понимаете разницу ?

    Reply
  25. CheBurator

    «Конец попробовать»

    — это вы на Эль-76 (?вроде так назывался) не писали. Там закрывающая операторная скобка было «Всё». и «Конец» вроде был. и «Если» тоже вроде (не помню за давногстью лет). Запускаешь прогу на трансляцию а у тебя полный листинг типа

    Если не подходит…

    Конец не подходит.

    и как апофеоз

    «Всё не подходит»

    Reply
  26. CheBurator

    примеры на Эль-76 — есть в сети и в ивкипедии. Понятно, у кого 1С содрало… 😉

    Reply
  27. nvv1970

    (26) Не вижу тождества между сертификацией и знаниями. Увы.

    Да, сертификация, как метод развития, необходима. Да, «спецы», «эксперты» приносят некоторые знания. Но это ничтожно мало, мизер.

    Их наличие задает лишь направление развития. А направление — это совсем не пройденный путь, не тренированный мозг, не опыт.

    Так что позвольте с вами не согласиться, уважаемый!

    Reply
  28. vvh74

    (21) Вот видно большую контору. В одном отделении вундеркод пишут и челенджи выигрывают, а в другом клепают такое, что комикс про Винни-пуха с лужей получается.

    Reply
  29. Scorpion4eg

    (30)

    а в другом клепают такое

    Даже интересно стало — про что так?

    Reply
  30. Rustig

    (17) прикольно! что-нибудь для 1с-задач было бы интересно почитать в таком же роде. На ИС алгоритмам мало уделяется места.

    Reply
  31. Rustig

    (25)

    Такое ощущение, что «точить пилу» никогда не нужно, т.к. за это никогда не заплатят.

    Нужно всегда только «пилить»

    согласен

    Reply
  32. Scorpion4eg

    (33)

    согласен

    Извините, но не согласен.

    Никто не заплатит за то что ты пошел, например, изучать как же писать тесты на 1с.

    Но когда ты благодаря тестам выполняешь работу качественнее и быстрее — разве за это не платят?

    Чем это не «точить пилу»?

    Reply
  33. OerlandHue

    Ну слава богу, не очередное чтиво о приключения программиста Сергея на корпоративе. Интересно посмотреть было.

    Reply
  34. vvh74

    (31) Модуль интеграции с ФГИС Меркурий

    Reply
  35. Rustig

    (34) согласен с вами.

    мы же не спорим. я не противоречу вам.

    в сообщении (25) как раз и написано интонационно, что надо периодически «точить пилу» и пусть за это не платят, все равно окупится сторицей.

    нить разговора была такой: сначала пост (14) — затем (25) — потом (я) — затем (вы)

    итог — я за интеллектуальные игры и развлечения.

    Reply
  36. van_za

    (32)

    Видимо это сборник задач к специалисту 🙂

    Даже если бы сейчас добавили возможность решать задачи на 1с, при текущей производительности платформы большинство задач не будет принято из за ограничений времени…(даже если задача будет решена верно)

    Reply
  37. user683286_hma

    Поздравляю ребят! Очень эмоционально, азарт передан классно! Но кто-нибудь проверял текст данной статьи на грамотность правописания?

    Reply
  38. Rustig

    (11) какая ставка у 1с-разработчиков в Екб? Может в Казани меньше…для работы по удаленке

    Reply
  39. starik-2005

    Отличная статья.

    Reply
  40. timeforlive

    Поздравляю с победой!

    Хочется тоже в чем-то подобном поучаствовать, но без фанатизма 😉

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *