ICFP Programming Contest on kansainvälinen ohjelmointikilpailu, joka järjestetään vuosittain kesä-heinäkuussa vuodesta 1998 lähtien. Kilpailun tulokset julkistetaan kansainvälisessä toiminnallisen ohjelmoinnin konferenssissa .
Komennot voivat olla minkä kokoisia tahansa ja käyttää mitä tahansa ohjelmointikieltä (tai useita kieliä). Osallistumismaksuja ei ole. Osallistujat saavat 72 tuntia aikaa tehtävien suorittamiseen ja ratkaisujen lähettämiseen Internetin kautta . Joskus järjestetään 24 tunnin blitz-turnaus.
Voittajilla on erityinen oikeus väittää, että heidän suosikkikielinsä on "nirso hakkerin valinta". Yksi kilpailun tavoitteista on siis pystyä esittelemään kilpailun osallistujan käyttämien ohjelmointikielen ja työkalujen mahdollisuuksia. Pääpalkinnon voittajat ovat aiemmin käyttäneet ongelmien ratkaisemiseen kieliä, kuten Haskell , OCaml , C++ , Cilk ja Java .
vuosi | Järjestäjä | Tehtävä |
---|---|---|
1998 | Massachusettsin Teknologian Instituutti | Kirjoita ohjelma, joka simuloi versoa , eräänlainen tic-tac-toe- peli . Esitetyt ohjelmat jaettiin ensimmäiselle ja toiselle sijalle. |
1999 | Harvardin yliopisto | Tapailmaisujen optimointi ( tehtävän kuvauksessa sanottiin tekstitehtävästä , mutta itse asiassa tehtävä rajoittui tällaisen pelin kuvauksen optimointiin). |
2000 | Cornellin yliopisto | Toteuta säteen polku Postscriptin kaltaisella syntaksilla. |
2001 | INRIA Rocquencourt | HTML - tyyppisen merkintäkielen optimointi poistamalla tarpeettomat välilyönnit, tagit jne. |
2002 | OGI Tiede- ja tekniikan korkeakoulu | Toteuta robotteja, jotka voivat pelata toisiaan vastaan Sokobanin kaltaisessa pelissä . |
2003 | Chalmersin teknillinen yliopisto | Toteuta robotteja, jotka pystyvät ajamaan autoa suurimmalla mahdollisella nopeudella vaihtelevan monimutkaisuuden omaavilla radoilla. |
2004 | Pennsylvanian yliopisto | Muurahaissiirtokunta. Luo yhdyskunta, joka voi toimittaa ruokaa muurahaispesään nopeammin ja välttää muita muurahaislajeja. Ratkaisu oli tilakone. Tehtävä sovitettiin myöhemmin Ant Wars -strategiaohjelmointipeliksi Antomata, [1] äärellisen tilan konekuvauskielellä . |
2005 | PLT ryhmä | Toteuta botit "Cops & Robbers" -peliin. Ratkaisu oli kaksi hallintaohjelmaa, yksi rosvobotille, jonka tehtävänä oli ryöstää kaikki lähialueen pankit ilman, että poliisi jäisi kiinni, toinen poliisibotille, joka nappaa rosvoja. |
2006 | Carnegie Mellonin yliopisto | Ota käyttöön virtuaalikone järjestäjien tarjoaman UMIX- käyttöjärjestelmän käyttämiseksi . Pura se sitten uusilla ohjelmointikielillä, joilla on epätavallinen syntaksia, kuten 2D ja BASICin roomalainen versio. Monet minimysteerit yksinkertaistetuilla versioilla tai parodioilla aiemmista peleistä. |
2007 | Utrechtin yliopisto | Toteuta kaksivaiheinen virtuaalikone, joka suorittaa DNA:n kaltaisen merkkijonon kuvan saamiseksi. Etsi tietylle merkkijonolle etuliite, joka merkkijonoon lisättynä tuottaa kuvan, joka muistuttaa eniten kohdetta. |
2008 | Portland State University ja Chicagon yliopisto | Roverin ohjausjärjestelmä, joka toteuttaa paluun tukikohtaan. On vältettävä esteitä ja vihollisia. |
2009 | Kansasin yliopisto | Satelliittiohjaus Maan kiertoradalla: siirtyy kiertoradan välillä ja telakointi muihin satelliitteihin. |
2010 | Leipzigin ammattikorkeakoulu , Saksa | Kansainvälinen ajoneuvojen ja polttoaineiden tuotanto. |
2011 | Tohokun yliopisto , Japani | Tietokoneen ohjelmointi, jossa on 256 "paikkaa" voittamaan vastustajan ottelun lopussa jäljellä olevien paikkojen lukumäärällä. Osallistujien päätösten välillä järjestetään kaksitasoinen turnaus. |
2012 | St. Andrews , Skotlanti | Käytä tekoälyä esimerkiksi Boulder Dash -pelissä . |
2013 | Microsoft Research , USA | Valitse aritmeettis-looginen funktio käyttämällä esimerkkejä parametreista ja lähtöarvoista. |
2014 | Oxfordin yliopisto | Luo ohjelma viimeistelläksesi Pac-Man- pelin kaltaisen sokkelon . |
2015 | Galois [2] , Yhdysvallat | Kirjoita ohjelma viimeistelemään Tetriksen kaltainen peli . |
2016 | Sähköviestinnän yliopisto, Tokio | Luo ohjelma palauttaaksesi origami -pyyhkäisyn kootun litteän hahmon ulkonäöstä. |
2017 | Edinburghin yliopisto | Luo ohjelma analogisen Ticket to Ride -pelin toistamiseksi. |
2018 | Rochester Institute of Technology , Yhdysvallat | Luo ohjelma, joka luo komentoja nanoboteille, joiden on koottava, purettava tai koottava uudelleen tietyt 3D-objektit, mikä minimoi energiankulutuksen. |
2019 | Yale-NUS College ja National University of Singapore , Singapore | Luo ohjelma, joka ohjaa maalausrobottia, jonka on peitettävä kaikki tasokartan solut. Tavoitteena on kattaa koko tason pinta mahdollisimman pienessä ajassa keräämällä ja levittämällä erilaisia boostereita hajallaan kartalla. |
2020 | SKB Kontur | Toteuta avaruusolioilta saatujen määritelmien mukainen virtuaalikone , käytä sillä avaruusolioilta saatua pelipalvelinta, ymmärrä pelin säännöt (kaksiulotteinen avaruustaistelu planeetan kiertoradalla diskreetillä fysiikalla Tšebyshevin etäisyyksillä, komennoilla: kiihdytys, laukaus , jako ja itseräjäytys), kirjoita botti osallistuaksesi tämän pelin mestaruuteen. |
Palkinto on pieni rahasumma, jonka avulla voittaja voi kompensoida ICFP-konferenssiin osallistumisesta aiheutuvat kustannukset. Tuomaristo jakaa useita palkintoja:
Ensimmäinen palkinto [Kieli 1] ohjelmointityökaluna älykkäille hakkereille. Toinen palkinto [Kieli 2] kätevänä työkaluna monien sovellusten kehittämiseen. Kolmas palkinto [Kieli 3] ei myöskään ole liian käynnissä. Lightning-divisioonan voittaja [Kieli L] soveltuu hyvin nopeaan prototyyppien luomiseen. Tuomariston palkinto [Team X] on erittäin siisti joukko hakkereita.Jos voittajat käyttivät useampaa kuin yhtä kieltä, he nimeävät yhden tai kaksi käytetyistä kielistä.
vuosi | Ensimmäinen palkinto | Toinen palkinto | Kolmas palkinto | "Salama" |
---|---|---|---|---|
1998 | Cilk | OCaml | ||
1999 | OCaml | Haskell | - | |
2000 | OCaml | OCaml | ||
2001 | Haskell | Dylan | ||
2002 | OCaml | C | - | |
2003 | C++ | C++ | OCaml | |
2004 | Haskell | Haskell ja C++ | Java ja C++ | |
2005 | Haskell | Dylan | Haskell | |
2006 | 2D [3] | D | kokoonpanokieli | |
2007 | C++ | Perl | ei voittajaa | |
2008 | Java | ML [4] | ||
2009 | C++ | Java | ML [5] | |
2010 | C++ , Haskell , Python | Salvia | ||
2011 [6] | F# | Shell ja C++ | ||
2012 | C++ | |||
2013 [7] | Java, C#, C++, PHP, Ruby ja Haskell | C# , C++ | ||
2014 | Haskell | |||
2015 | C++, Java, C#, PHP, Ruby ja Haskell | |||
2016 [8] | Java , C++ , C# , PHP , Haskell | C++ , Ruby , Python , Haskell , Java , JavaScript | OCaml | |
2017 [9] | C++ | C++ | OCaml | |
2018 [10] | Ruoste | C++ , Python , Ruby , JavaScript , Bash ja SQL | OCaml | |
2019 [11] | Ruoste | C++ | C++ ja Haskell | |
2020 [12] | Python | C++ (ensimmäinen voittaja), Rust (toinen voittaja) | Haskell |
Ant War peli
Ohjelmointikilpailut | |
---|---|
Kilpailu | |
Organisaatiot |