Advent of Code

Z Wikipedii, wolnej encyklopedii
Advent of Code
Ilustracja
Zrzut ekranu Advent of Code z roku 2022
Aktywność

od 2015

Czas trwania

1 grudnia-25 grudnia

Organizator

Eric Wastl

brak współrzędnych
Strona internetowa

Advent of Code (pol. Adwent Kodu) to coroczny zestaw wyzwań programistycznych o tematyce bożonarodzeniowej, które pokrywają się czasowo z kalendarzem adwentowym[1][2]. Pierwsza edycja wydarzenia odbyła się w 2015 roku[3].

Zagadki programistyczne wymagają szerokiego spektrum umiejętności, a ich poziom trudności wzrasta wraz z każdym kolejnym dniem. Można je rozwiązać przy użyciu dowolnego języka programowania. Uczestnicy rywalizują również między sobą w globalnych i prywatnych rankingach[1].

Twórcą wydarzenia jest programista Eric Wastl.

Historia[edytuj | edytuj kod]

Advent of Code zostało stworzone przez Erica Wastla, który pozostaje jedynym opiekunem projektu[1][4].

Wydarzenie rozpoczęło się 1 grudnia 2015 r. Do północy EST ( UTC-05:00, w Polsce 6:00 rano czasu zimowego) na wydarzenie zapisało się 81 osób, nieco przekraczając planowaną przez autora liczbę 70 uczestników. W ciągu 12 godzin dołączyło około 4000 osób, niemal powodując awarię systemu. Po 48 godzinach było to już około 15000 osób, a pod koniec wydarzenia w 2015 roku liczba ta wzrosła do 52000.[5]

W 2020 roku, prawdopodobnie w związku z wybuchem pandemii COVID-19, wydarzenie odnotowało 50% wzrost ruchu, z wynikiem ponad 180000 uczestników na całym świecie[5].

4 grudnia 2022 roku Wastl poinformował, że projekt osiągnął kamień milowy jednego miliona zarejestrowanych użytkowników[6].

Zagadki[edytuj | edytuj kod]

Łamigłówki składają się z dwóch części. Poprawne rozwiązanie pierwszej części zagadki odsłania jej drugą część[7][8][9]. Uczestnicy zdobywają jedną złotą gwiazdkę za każdą ukończoną część, co daje łącznie dwie gwiazdki dziennie i pięćdziesiąt gwiazdek rocznie[9].

Każda łamigłówka zawiera fragment fikcyjnej opowieści, która jest taka sama dla wszystkich uczestników, ale każda osoba otrzymuje inne dane wejściowe, przez co rozwiązanie powinno wygenerować inny poprawny wynik[9].

Łamigłówki są odkrywane codziennie od 1 do 25 grudnia o północy EST. Nie ma limitu czasu na ukończenie zagadek, a zagadki z wydarzeń z poprzednich lat pozostają widoczne do rozwiązania również po zakończeniu wydarzenia.

Niektórzy uczestnicy korzystają z narzędzi, takich jak GitHub Copilot i ChatGPT, aby pomóc innym w rozwiązywaniu zagadek.

Przygotowania[edytuj | edytuj kod]

Zgodnie z komentarzem w kodzie HTML projektu na każdej stronie wydarzenia, Advent of Code wykorzystuje do działania silnik napisany w języku Perl. Autor twierdzi, że sam stworzył niemal całą witrynę, w tym projekt, animacje, opowieści i łamigłówki. (usługi zewnętrzne są wykorzystywane w zakresie uwierzytelniania, analiz i integracji z mediami społecznościowymi.)[1]

Każdego roku Eric Wastl z wyprzedzeniem tworzy i testuje 25 zagadek. Zajmuje mu to 4-5 miesięcy pracy każdego roku[1].

Bibliografia[edytuj | edytuj kod]

  1. a b c d e Eric Wastl: About. 2022. [dostęp 2022-12-10].
  2. Kara E. Joyce: Brain teasers and other fun tips for learning Python. 2020-11-11. [dostęp 2021-05-12].
  3. Richard Speed: On the first day of Christmas, my true love gave to me... a coding puzzle and it's a doozy. 2021-12-01. [dostęp 2021-12-05].
  4. Christina Warren, The Download: Clippy Sweaters, ChatGPT Mania, Advent of Code and more, [w:] YouTube [online], 9 grudnia 2022 [dostęp 2022-12-12].
  5. a b Siobhan Roberts: This puzzle challenge brings joy to the world of code. 2021-12-17. [dostęp 2022-02-20].
  6. Eric Wastl, "#AdventOfCode just hit 🌟1,000,000🌟 registered users!!!" [Tweet], [w:] Twitter, 4 grudnia 2022 [dostęp 2022-12-10].
  7. Sue Gee: Advent Of Code For Programmers. 2020-12-06. [dostęp 2021-05-12].
  8. Kenneth Fisher: SQL Homework – December 2020 – Participate in the Advent of Code. from Blog Posts – SQLServerCentral. 2020-12-03. [dostęp 2021-05-12].
  9. a b c Geir Arne Hjelle: Advent of Code: Solving Your Puzzles With Python. 2021-12-01. [dostęp 2022-02-20].

Linki zewnętrzne[edytuj | edytuj kod]