Eurovision Song Contest’s Greatest Hits
- 1 year ago
- 0
- 0
ICFP Programming Contest — международное соревнование по программированию, проводимое ежегодно в июне-июле с 1998 года. Результаты соревнования объявляются на .
Команды могут быть любого размера и использовать любой язык программирования (либо несколько языков). Денежные взносы за участие отсутствуют. Участники получают 72 часа на выполнение заданий и отправку своих решений через Интернет . Иногда проводится 24-часовой блиц-турнир.
Победители имеют особое право заявлять о том, что предпочитаемый ими язык является «выбором для разборчивых хакеров». Таким образом, одной из целей соревнования является возможность показать возможности языка программирования и инструментов, используемых участником соревнования. Ранее обладатели главного приза использовали для решения задач такие языки как Haskell , OCaml , C++ , Cilk и Java .
Год | Организатор | Задача |
---|---|---|
1998 | Массачусетский технологический институт | Написать программу, моделирующую росток , своеобразный вариант игры « Крестики-нолики ». Представленные программы были распределены на первые и вторые места. |
1999 | Гарвардский университет | Оптимизация выражений case (в описании задачи говорилось о текстовом квесте , но фактически задача сводилась к оптимизации описания подобной игры). |
2000 | Корнеллский университет | Реализовать путь луча при помощи Postscript -подобного синтаксиса. |
2001 | INRIA Rocquencourt | Оптимизация HTML -подобного языка разметки за счет отказа от излишних пробелов, тегов и т. д. |
2002 | Реализовать роботов, способных играть друг против друга в игру наподобие Sokoban . | |
2003 | Технический университет Чалмерса | Реализовать роботов, способных управлять машиной на максимально возможной скорости на трассах различной сложности. |
2004 | Пенсильванский университет | Колония муравьев. Создать колонию, которая сможет быстрее доставлять еду к муравейнику и будет избегать муравьев других видов. Решением являлась машина состояний. Позже задача была адаптирована в стратегической программистской игре Ant Wars с языком описания конечных автоматов Antomata . |
2005 | group | Реализовать ботов для игры «Cops & Robbers». Решением являлись две управляющие программы, одна для бота-грабителя, задачей которого было грабить все банки в окрестностях, не попадаясь полиции, другая — для бота-полицейского, который ловит грабителей. |
2006 | Carnegie Mellon University | Реализовать виртуальную машину для запуска операционной системы , предоставленной организаторами. Затем взломать её, используя новые языки программирования с необычным синтаксисом, например, 2D и версию BASIC с римскими числами. Множество мини-загадок с упрощенными версиями или пародиями на предыдущие игры. |
2007 | Реализовать двухстадийную виртуальную машину, исполняющую строку, похожую на ДНК для получения изображения. Для заданной строки найти префикс, который при добавлении к строке создаст изображение, наиболее похожее на целевое. | |
2008 | Portland State University и University of Chicago | Система управления марсоходом, реализующая возврат к базе. Требуется избегать препятствия и врагов. |
2009 | University of Kansas | Управление спутником на орбите Земли: переходы между орбитами и стыковка с другими спутниками. |
2010 | , Германия | Международное производство автомобилей и топлива. |
2011 | , Япония | Программирование компьютера с 256 «ячейками» для победы над оппонентом по количеству слотов, оставшихся в конце матча. Между решениями участников устроен двухуровневый турнир. |
2012 | , Шотландия | Реализовать Искусственный интеллект для игры типа Boulder Dash . |
2013 | Microsoft Research , США | Подобрать арифметическо-логическую функцию по примерам параметров и выходных значений. |
2014 | Оксфордский университет | Создать программу для прохождения лабиринта похожего на игру Pac-Man . |
2015 | Galois , США | Создать программу для прохождения игры, похожей на тетрис . |
2016 | Университет электро-коммуникаций, Токио | Создать программу для восстановления развертки origami по внешнему виду собранной плоской фигуры. |
2017 | Университет Эдинбурга | Создать программу для игры в аналог Ticket to Ride. |
2018 | , США | Создать программу, генерирующую команды для наноботов, которые должны собирать, разбирать или пересобирать заданные 3D объекты, минимизируя затраченную энергию. |
2019 | и Национальный университет Сингапура , Сингапур | Создать программу, управляющую роботом-маляром, который должен нанести покрытие на все клетки карты уровня. Цель — покрыть всю поверхность уровня за минимальное время, собирая и применяя различные бустеры, разбросанные по карте. |
2020 | СКБ Контур | Реализовать виртуальную машину , полученной от инопланетян, запустить на ней полученный от инопланетян игровой сервер, понять правила игры (двумерная космическая битва на орбите планеты с дискретной физикой на Чебышевских расстояниях, с командами: ускорение, выстрел, деление и самодетонация), написать бота для участия в чемпионате по этой игре. |
Наградой является небольшая денежная сумма, которая позволяет победителю компенсировать затраты на посещение конференции ICFP. Жюри присуждает несколько наград:
Если победители использовали несколько языков, то они номинируют один или два языка из использованных.
Год | Первый приз | Второй приз | Третий приз | "Lightning" |
---|---|---|---|---|
1998 | Cilk | OCaml | ||
1999 | OCaml | Haskell | - | |
2000 | OCaml | OCaml | ||
2001 | Haskell | Dylan | ||
2002 | OCaml | C | - | |
2003 | C++ | C++ | OCaml | |
2004 | Haskell | Haskell и C++ | Java и C++ | |
2005 | Haskell | Dylan | Haskell | |
2006 | 2D | D | Язык ассемблера | |
2007 | C++ | Perl | без победителя | |
2008 | Java | ML | ||
2009 | C++ | Java | ML | |
2010 | C++ , Haskell , Python | Sage | ||
2011 | F# | Shell и C++ | ||
2012 | C++ | |||
2013 | Java, C#, C++, PHP, Ruby and Haskell | C# , C++ | ||
2014 | Haskell | |||
2015 | C++, Java, C#, PHP, Ruby and Haskell | |||
2016 | Java , C++ , C# , PHP , Haskell | C++ , Ruby , Python , Haskell , Java , JavaScript | OCaml | |
2017 | C++ | C++ | OCaml | |
2018 | Rust | C++ , Python , Ruby , JavaScript , Bash и SQL | OCaml | |
2019 | Rust | C++ | C++ и Haskell | |
2020 | Python | C++ (первый победитель), Rust (второй победитель) | Haskell |
Ant War game