Преамбула Меня зовут Руслан и я программист-алкоголик.
Я давно не сталкивался со «спортивным программированием».
В прошлый раз это помогло мне поступить в университет, который я так и не окончил.
Я занимаюсь разработкой игр почти 9 лет подряд. Поначалу было интересно работать.
Сервер часто падал и преподносил сюрпризы, а теперь мы научились не делать деплой по пятницам, мы научились деплоить по пятницам, чтобы ничего не ломалось, не крашилось и почти не преподносило сюрпризов.
Вообще, одно время, чтобы не скучать, я работал над своими небольшими проектами, потом немного подрабатывал, а в начале этого года случайно вспомнил об олимпиадах по программированию и спортивному программированию.
Также название не совсем соответствует тексту статьи, но оно мне очень понравилось.
Если кто-то решит прочитать статью, чтобы увидеть меня без футболки, не делайте этого! О CodinGame Codinggame — онлайн-платформа для проведения соревнований по программированию.
Есть онлайн-редактор, автоматизированное тестирование программ и даже несколько призов.
Перед началом конкурса (проводится раз в месяц) мне предлагается отметить интересных работодателей (в основном это французы), на случай, если кто-то из них захочет меня нанять.
Работу я не ищу, но в результате несколько компаний попросили меня прислать резюме.
Хотя результаты более чем скромные.
Сегодня я обнаружил пункт «участвую ради удовольствия».
В следующий раз я воспользуюсь им.
Кроме того, победителям вручаются подарки.
Например, на следующий конкурс (через месяц) В число подарков войдут: iPhone, робот и автомат с напитками.
10 футболок за 10 лучших решений и по футболке лидера по каждому языку программирования (их поддерживается около 20).
Коротко о ваших успехах и неудачах Первый блин у меня получился совсем комом: наверное, что бы я ни начал писать, онлайн-игра все равно получается.
В общем, писать было слишком сложно.
Второй раз было веселее.
Во-первых, я выбрал в качестве языка Groovy вместо Java. Программирование стало удобнее и быстрее.
Кроме того, оказалось, что лучший программист по каждому языку программирования получает футболку.
И через пару недель футболка прилетела ко мне на крыльях Почты России.
Конкуренция среди тех, кто выбирает Groovy, не такая жесткая, как среди пользователей Java или C++.
Третий раз был сегодня.
Я сдал задание на 4 секунды позже оппонента с тем же результатом.
Сегодня у меня остались только впечатления, которые я решил выбросить на Хабр.
О сегодняшнем конкурсе Коротко опишу сегодняшний конкурс.
Входные данные: поле с мишенями и «стенками» на нем, несколько бомб и несколько ходов по их установке.
Мы должны уничтожить все цели.
В общем, решение задач по программированию для меня сводится к решению задачи в голове.
Я подумал и решил, что для уничтожения всех целей мне нужно найти ячейку, бомба которой уничтожит максимальное количество целей.
Повторяйте, пока у вас не закончатся мишени или бомбы.
На третьем туре – ошибка.
Отлаживаю код, оказалась небольшая техническая ошибка, перепутал Math.min и Math.max. Бегу дальше, задача «предвидеть будущее» сорвана.
Вам нужно заложить бомбу на месте взорвавшейся цели.
Я подумал и добавил, что если еще есть время, то нужно просто подождать, а не закладывать бомбу.
В результате только одно задание не было выполнено.
В нем вам нужно заложить бомбу не в ту ячейку, из которой взорвется наибольшее количество мишеней:
Я хотел написать отдельный тест, чтобы посмотреть, можно ли в данный момент разместить все имеющиеся под рукой бомбы таким образом, чтобы взорвать все цели, но времени оставалось мало, и я этого не сделал.
Хотя оно того стоило.
Причина самая неспортивная, я хотел первым сдать код Groovy. Доступно на CodinGame проблемы с обучением , скорее всего скоро (вероятно через пару недель) там появится сегодняшнее задание.
Какой совет я бы дал другим участникам?
Я думаю, что Codingame — хороший способ попробовать другой язык.Например, кто-то решил эти проблемы в Bash! Я хочу попробовать это в Го в следующий раз; Если кто-то еще не пробовал себя в «спортивном программировании», возможно, стоит попробовать; Отладку удобно писать в stderr; Мой первый блин получился бы лучше, если бы я сначала потренировался на тестовых задачах; Для любителей «взламывать систему» и «неспортивного поведения».
Поскольку тестирование автоматизировано, возможно, самым быстрым решением было бы жестко запрограммировать ответы.
Я не пробовал и не буду, но должно сработать; Лучше спросить совета у человека, который имел в этом большой опыт, а не у меня.
И жалкий лепет оправданий.
Пока я думал, как лучше написать, что сегодня спешу, на ум пришли эти слова Лермонтова.
Так получилось, что на задание у меня было чуть больше часа (вообще было отведено 3 часа, но я опоздал на старт).
Субботний вечер и, наверное, последний теплый выходной в этом году.
Это то что мне нужно! 87 место.
P.S. А футболка, которую я получил на второй конкурс, выглядит вот так:
П.
П.
С.
А для тех, кому не понравился CodinGame, есть еще Топкодер .
Теги: #кодирование #спортивное программирование
-
Компьютерные Онлайн-Игры
19 Oct, 24 -
Ipv6 В Новом Стеке Tcp/Ip Windows
19 Oct, 24