Przyjemne programowanie — CodinGame
15.07.2015 13:53
Wiele osób lubi poświęcać czas wolny na różne logiczne łamigłówki. Jedni rozwiązują sudoku, kolejni krzyżówki, zagadki oraz obrazki logiczne. Wybór jest naprawdę spory. Jeżeli jednak interesujesz się programowaniem i dzięki świetnej zabawie oraz rywalizacji chcesz wprowadzić swój skill na kolejny poziom nie możesz przejść obojętnie obok CodinGame !
Dlaczego CodinGame jest wart mojego wolnego czasu?
Wielki wybór zadań do wykonania
Zagadek do wykonania jest naprawdę wiele. Wszystkie są podzielone na odpowiednie kategorie dostosowane do umiejętności. Znajdziemy zatem gry na poziomie łatwym, średnim, trudnym i bardzo trudnym (dodatkową kategorią są jeszcze zadania optymalizacyjne). Pozwala to na rozpoczęcie zabawy w każdym momencie – niezależnie czy jesteśmy amatorami piszącymi wieczorami swoją pierwszą grę, czy klepiemy kod w najlepszych firmach. Same zagadki budowane są na zasadzie “easy to learn, hard to master”. Dzięki temu szybko zobaczymy postępy, jednak żeby uzyskać naprawdę dobry wynik trzeba będzie się postarać. Wielkim plusem są nawiązania do popularnych motywów z filmów, seriali i książek. Tak więc jeśli zdecydujesz się na CodinGame, będziesz musiał pomóc Batmanowi, powstrzymać Skynet i czasami zaszyfrować wiadomość dla Chucka Norrisa. Dodatkowo przyjemna oprawa graficzna oraz dość wygodny edytor tylko zachęca do pisania linijek kodu.
Achievementy i rywalizacja!
Nic nie działa na człowieka tak dobrze jak rywalizacja i jasny cel do osiągnięcia. Twórcy zastosowali tu popularny system osiągnięć. Muszę przyznać, że to faktycznie działa. Parę razy przyłapałem się na siedzeniu przed monitorem i próbie ulepszenia swojego rozwiązania tylko żeby dostać upragniony wpis w profilu. Chyba nie muszę pisać jak wpływa to na kreatywność w programowaniu.
Duży wybór języków programowania
Słowo “duży” nie oznacza tutaj zbioru “C++, C#, Java”. Platforma CodinGame udostępnia… 23 języki! Tak więc każdy znajdzie coś dla siebie. Śmiałkowie mogą rozwiązywać swoje zagadki nawet w bashu. Za rozwiązywanie zagadek w wielu językach, szczególnie tych mało popularnych często dostaje się specjalne osiągnięcia, więc jeśli już je kolekcjonujemy to warto nauczyć się kilku nowych składni.
Tryb multiplayer
Raz na parę miesięcy odbywają się gry w trybie multiplayer. Można je podzielić w sumie na dwa typy:
- optymalizacyjne – gdzie liczy się jak najlepszy wynik w testach rankingowych (o tym trochę niżej)
- pisania AI – gdzie programy walczą ze sobą
Niestety nigdy nie pasowały mi terminowo rozgrywki z drugiej kategorii, więc opiszę tylko pierwszą grupę czyli zagadki optymalizacyjne. Standardowo dostajemy krótkie wprowadzenie w formie historyjki, nasz cel, dane i przykłady. Żeby sprawdzać, czy nasze rozwiązanie jest dobre przygotowane zostały specjalne testy przez które nasz program przechodzi. Testy (jak ja to nazywam) rankingowe różnią się danymi od testów, które możesz sam przeprowadzać. Wszystko to żeby zapobiec zapisaniu wyników “na sztywno” w kodzie. Gdy osiągniemy 100% (co w np. ostatniej grze Code of the Rings udało mi się chyba w ok. 40 minut) możemy przejść do rywalizacji rankingowej. Tutaj zaczynają się schody, bo inni gracze ustalają nam poprzeczkę. Większość czasu przeznaczamy na poprawę swojego kodu, tak aby wyjście było jak najlepsze. Za pierwsze miejsca są nagrody (+ za 1 miejsce w danym języku) oraz oferty pracy (ostatnio pojawiła się nawet w Polsce!).
Code of the Rings, czyli niedawno odbyta gra polegała na wypisaniu jak najkrótszego ciągu poleceń dla Bilba, który miał wpisać odpowiedni tekst. Myślę, że najlepiej zobrazuje to jeden z testów, który musiał zostać wykonany.
Tutaj warto jeszcze dodać, że pod uwagę brany był tylko wynik programu i to właśnie ten wynik powinien być jak najkrótszy – ruchy Bilba i czas wykonania programu nie były liczone. Udało mi się zdobyć 671 miejsce na 2618 graczy. Nie jestem jednak do końca z tego zadowolony, gdybym posiedział dłużej (gra trwała 24h), myślę że udałoby mi się zaimplementować dodatkową funkcję i skoczyłbym może na ok. 400 miejsce.
Podsumowanie
Jeśli ten tekst zachęcił Cię do tej wspaniałej zabawy to bardzo się cieszę. Warto już od teraz wczuć się w CodinGame, ponieważ 26 września rusza kolejna gra multiplayer – “Back to the Code”. Zostało mi tylko życzyć wam wielu nagród i wysokich miejsc!