python-arcade-oo/plan.md
Oskar Kapala b76ef75556 docs: rewrite pdf plans into plan.md with all links
Co-authored-by: Junie <junie@jetbrains.com>
2026-08-03 12:40:51 +02:00

136 lines
9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Plan 5-dniowy (intensywny): OOP w Pythonie + Arcade
Dla ucznia znającego proceduralnego Pythona na poziomie Olimpiady Informatycznej Juniorów • ok. 68 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 (23 h): teoria**
* Corey Schafer — Python OOP Tutorials, odcinki 13 (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 (45 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,52 h): teoria**
* Corey Schafer, odcinki 45 (dziedziczenie i klasy pochodne, dunder methods).
**Po południu (56 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 0100).
* 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. 68 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 (23 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 (45 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,52 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 (56 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 (3045 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.*