# Plan 5-dniowy (intensywny): OOP w Pythonie + Arcade Dla ucznia znającego proceduralnego Pythona na poziomie Olimpiady Informatycznej Juniorów • ok. 6–8 h dziennie Zasada: teoria OOP w małych dawkach rano, resztę dnia kodowanie w Arcade. Arcade jest obiektowe od podstaw, więc każdy dzień praktyki utrwala klasy, dziedziczenie i metody w naturalnym kontekście. Przed startem: `pip install arcade` (Python 3.9+). ## Dzień 1 — Podstawy OOP + pierwsze okno **Rano (2–3 h): teoria** * Corey Schafer — Python OOP Tutorials, odcinki 1–3 (klasy i instancje, zmienne klasowe, classmethod/staticmethod). Oglądać z pauzami i przepisywać kod samodzielnie. [https://www.youtube.com/playlist?list=PL-osiE80TeTsqhIuOqKhwlXsIBIdSeYtc](https://www.youtube.com/playlist?list=PL-osiE80TeTsqhIuOqKhwlXsIBIdSeYtc) **Po południu (4–5 h): praktyka** * Real Python — „Arcade: A Primer on the Python Game Framework”: okno, rysowanie, sprite'y, pętla gry, klawiatura. Przejść cały tutorial, potem zmodyfikować grę po swojemu (inne prędkości, nowy typ obiektu). [https://realpython.com/arcade-python-game-framework/](https://realpython.com/arcade-python-game-framework/) **Wieczorem, do poduszki:** * PyCon 2018, Paul Craven — „Easy 2D Game Creation With Arcade” (~30 min) — przegląd możliwości biblioteki od jej autora. [https://www.youtube.com/watch?v=DAWHMHMPVHU](https://www.youtube.com/watch?v=DAWHMHMPVHU) --- ## Dzień 2 — Dziedziczenie + sprite'y, kolizje, zdarzenia **Rano (1,5–2 h): teoria** * Corey Schafer, odcinki 4–5 (dziedziczenie i klasy pochodne, dunder methods). **Po południu (5–6 h): praktyka** * Wybrane rozdziały kursu autora biblioteki Arcade Academy — Learn Python: sprite'y, kolizje, poruszanie się, dźwięki. Rozdziały czysto wstępne (zmienne, pętle) pominąć — to poziom dawno opanowany. [https://learn.arcade.academy/](https://learn.arcade.academy/) * Ćwiczenie na koniec dnia: własna mini-gra typu „zbieraj monety, unikaj wrogów” z klasą bazową Enemy i dwoma typami przeciwników dziedziczącymi po niej. --- ## Dzień 3 — Platformówka, część 1 * Oficjalny tutorial platformówki (dokumentacja Arcade, zgodny z aktualnym API): gracz, fizyka, grawitacja, skoki, kamera, mapa poziomu. Przejść mniej więcej pierwszą połowę kroków. [https://api.arcade.academy/en/latest/tutorials/platform_tutorial/index.html](https://api.arcade.academy/en/latest/tutorials/platform_tutorial/index.html) * Równolegle jako wideo-wsparcie: PyCon 2019, Paul Craven — „Build Your Own 2D Platformer Game”. [https://www.youtube.com/watch?v=Djtm1DzWSvo](https://www.youtube.com/watch?v=Djtm1DzWSvo) * Darmowe assety (grafiki, dźwięki): [kenney.nl/assets](https://kenney.nl/assets) --- ## Dzień 4 — Platformówka, część 2 + szlify OOP * Dokończyć tutorial platformówki: wrogowie, punkty, wiele poziomów, ekran końca gry. * Corey Schafer, odcinek 6 (property, gettery/settery) — 20 min teorii i zastosować w kodzie platformówki (np. property „health” z ograniczeniem 0–100). * Alternatywne ujęcie platformówki (tekst): Real Python — „Build a Platform Game in Python With Arcade” — uwaga: pisany pod starsze API, przy rozbieżnościach wygrywa oficjalna dokumentacja. [https://realpython.com/platformer-python-arcade/](https://realpython.com/platformer-python-arcade/) --- ## Dzień 5 — Własny projekt * Cały dzień na grę własnego pomysłu od zera: remake Tetrisa / Snake'a / Flappy Birda albo coś autorskiego. Wymóg projektowy: minimum 3 własne klasy, w tym jedna hierarchia dziedziczenia — tu OOP naprawdę „klika”. * Kopalnia gotowych przykładów do podglądania (kod źródłowy dziesiątek mini-gier): [https://api.arcade.academy/en/latest/example_code/index.html](https://api.arcade.academy/en/latest/example_code/index.html) * Na koniec: wrzucić projekt na GitHuba — dobre domkniecie tygodnia. --- ## Uwagi * Arcade 3.x zmieniło część API względem starszych tutoriali (np. `arcade.start_render()` → `self.clear()`). Przy rozbieżnościach zawsze wygrywa aktualna dokumentacja: [api.arcade.academy](https://api.arcade.academy). * Materiały są po angielsku — przy poziomie olimpijskim to dobra okazja do angielskiego technicznego. * Jeśli tempo okaże się za szybkie, dzień 5 można poświęcić na dokończenie platformówki, a własny projekt przenieść na później. * Skill Tree w dokumentacji ([api.arcade.academy](https://api.arcade.academy)) pokazuje, co zgłębiać po tych 5 dniach: shadery, GUI, sieć itd. --- --- # Wersja PL: Plan 5-dniowy (intensywny) Teoria OOP po polsku • praktyka w Arcade po angielsku (z tłumaczeniem przeglądarki) • ok. 6–8 h dziennie Zasada: teoria OOP w małych dawkach rano — po polsku. Resztę dnia kodowanie w Arcade — tutoriale są po angielsku, ale tekstowe strony świetnie działają z tłumaczeniem przeglądarki. Przed startem: `pip install arcade` (Python 3.9+). ## Dzień 1 — Podstawy OOP (PL) + pierwsze okno **Rano (2–3 h): teoria po polsku** * Kacper Sieradziński — „Kurs programowania obiektowego: Podstawy, Metody specjalne, Dziedziczenie w Pythonie” (YouTube, PL): obejrzeć część o podstawach — klasy, obiekty, atrybuty, metody, konstruktor, self. Oglądać z pauzami i przepisywać kod. [https://www.youtube.com/watch?v=XYmt6foUCFI](https://www.youtube.com/watch?v=XYmt6foUCFI) * Kodologia — „Python. Programowanie obiektowe” (PL, interaktywny, kodowanie w przeglądarce, 22 automatycznie sprawdzane zadania): zrobić pierwsze rozdziały jako ćwiczenia. [https://kodologia.pl/kursy/python-programowanie-obiektowe](https://kodologia.pl/kursy/python-programowanie-obiektowe) **Po południu (4–5 h): praktyka w Arcade** * Real Python — „Arcade: A Primer on the Python Game Framework” (ang., czytać z tłumaczeniem przeglądarki): okno, rysowanie, sprite'y, pętla gry, klawiatura. Przejść całość, potem zmodyfikować grę po swojemu. [https://realpython.com/arcade-python-game-framework/](https://realpython.com/arcade-python-game-framework/) * Alternatywnie/pomocniczo: polska (maszynowo tłumaczona) wersja tego primera: [https://pl.python-3.com/?p=333](https://pl.python-3.com/?p=333) ## Dzień 2 — Dziedziczenie (PL) + sprite'y, kolizje, zdarzenia **Rano (1,5–2 h): teoria po polsku** * Sieradziński — część o dziedziczeniu i metodach specjalnych (dunder methods) z tego samego filmu; do tego odpowiednie rozdziały Kodologii (dziedziczenie) jako zadania. **Po południu (5–6 h): praktyka w Arcade** * Wybrane rozdziały kursu autora biblioteki Arcade Academy — Learn Python (ang., dobrze działa z tłumaczeniem przeglądarki): sprite'y, kolizje, poruszanie, dźwięki. [https://learn.arcade.academy/](https://learn.arcade.academy/) * Ćwiczenie na koniec dnia: mini-gra „zbieraj monety, unikaj wrogów” z klasą bazową Enemy i dwoma typami przeciwników dziedziczącymi po niej. ## Dzień 3 — Platformówka, część 1 * Oficjalny tutorial platformówki (dokumentacja Arcade, ang. + tłumaczenie przeglądarki; zgodny z aktualnym API): gracz, fizyka, grawitacja, skoki, kamera, mapa poziomu. Pierwsza połowa kroków. [https://api.arcade.academy/en/latest/tutorials/platform_tutorial/index.html](https://api.arcade.academy/en/latest/tutorials/platform_tutorial/index.html) * Wideo-wsparcie: PyCon 2019, Paul Craven — „Build Your Own 2D Platformer Game” (YouTube; włączyć automatyczne polskie napisy). [https://www.youtube.com/watch?v=Djtm1DzWSvo](https://www.youtube.com/watch?v=Djtm1DzWSvo) * Darmowe assety: [kenney.nl/assets](https://kenney.nl/assets) ## Dzień 4 — Platformówka, część 2 + szlify OOP (PL) * Dokończyć tutorial platformówki: wrogowie, punkty, wiele poziomów, ekran końca gry. * Teoria PL (30–45 min): rozdziały Kodologii o hermetyzacji i property (dekorator @property, gettery/settery) — i od razu zastosować w platformówce. * Alternatywne ujęcie platformówki (ang., tekst): Real Python — „Build a Platform Game in Python With Arcade” — pisany pod starsze API. [https://realpython.com/platformer-python-arcade/](https://realpython.com/platformer-python-arcade/) ## Dzień 5 — Własny projekt * Cały dzień na grę własnego pomysłu od zera. Wymóg projektowy: minimum 3 własne klasy, w tym jedna hierarchia dziedziczenia. * Kopalnia przykładów: [https://api.arcade.academy/en/latest/example_code/index.html](https://api.arcade.academy/en/latest/example_code/index.html) * Na koniec: wrzucić projekt na GitHuba. ## Uwagi (PL) * Płatna alternatywa PL dla teorii: „Programowanie obiektowe w Python” (strefakursow.pl) albo kurs Karola Kurka „50 zadań praktycznych z programowania obiektowego” (Videopoint/Helion). * Arcade 3.x API różni się od wersji 2.x. Zawsze sprawdzaj [api.arcade.academy](https://api.arcade.academy). --- --- # Inne dokumenty ## Wypowiedzenie umowy ubezpieczenia OC (z wyop.pdf) *Uwaga: Ten dokument zawiera dane osobowe i dotyczy wypowiedzenia polisy OC dla pojazdu Mazda 6 (GA431JA) w InterRisk TU S.A. z dnia 07.06.2026.*