Python zorientowany obiektowo. Programowanie gier i graficznych interfejsów użytkownika - ebook
Python zorientowany obiektowo. Programowanie gier i graficznych interfejsów użytkownika - ebook
Python jest jednym z najczęściej używanych języków programowania. Może służyć do wielu celów, a jego możliwości są nieustannie poszerzane przez wciąż powstające biblioteki i narzędzia. Równocześnie niejeden programista poprzestaje na tworzeniu kodu w sposób proceduralny. Tymczasem w Pythonie jak najbardziej możliwe jest programowanie zorientowane obiektowo, pozwalające organizować kod w poręczne jednostki, których później można wielokrotnie używać. Taki kod jest czytelny, łatwy w rozbudowie i dużo efektywniejszy w działaniu.
Oto intuicyjny przewodnik dla średnio zaawansowanych programistów Pythona, pomyślany tak, by przyswajać zasady programowania zorientowanego obiektowo podczas praktycznych ćwiczeń. Dowiesz się, jakie problemy wiążą się z zastosowaniem podejścia proceduralnego i jak dzięki podejściu obiektowemu pisać kod łatwy w utrzymaniu i rozbudowie. Nauczysz się tworzyć klasy i obiekty w Pythonie i skorzystasz z tych umiejętności, by budować atrakcyjne elementy GUI. Niejako przy okazji poznasz framework pygame i płynnie przejdziesz do pisania interaktywnych gier i aplikacji zawierających widżety GUI, animacje i wiele różnych scen. Opanujesz ponadto takie koncepcje jak maszyna stanów, modalne okna dialogowe czy wzorce projektowe — a w praktyce zastosujesz wzorzec model-widok-kontroler.
W książce między innymi:
- gruntowne podstawy programowania zorientowanego obiektowo
- tworzenie obiektów i zarządzanie nimi
- praktyczne stosowanie hermetyzacji w kodzie
- zastosowanie polimorfizmu podczas tworzenia interfejsów
- mechanizm dziedziczenia w praktyce
Python: zorientuj swój kod na obiekty!
Spis treści
Wprowadzenie
- Dla kogo jest przeznaczona ta książka?
- Wersje Pythona i jego instalacja
- Jak zamierzam wyjaśnić podejście programowania zorientowanego obiektowo?
- Co znajduje się w książce?
- Środowisko programistyczne
- Widżety i przykładowe gry
Część I. Wprowadzenie do programowania zorientowanego obiektowo
1. Proceduralny styl programowania w Pythonie
- Gra karciana
- Przedstawienie danych
- Implementacja
- Kod wielokrotnego użycia
- Symulacja konta bankowego
- Zawsze wymagane operacje i dane
- Implementacja 1. - pojedyncze konto bez funkcji
- Implementacja 2. - pojedyncze konto z funkcjami
- Implementacja 3. - dwa konta
- Implementacja 4. - wiele kont z użyciem listy
- Implementacja 5. - lista słowników kont
- Najczęstsze problemy z implementacją proceduralną
- Rozwiązanie w stylu programowania zorientowanego obiektowo - pierwszy rzut oka na klasę
- Podsumowanie
2. Modelowanie obiektów fizycznych za pomocą programowania zorientowanego obiektowo
- Tworzenie programowych modeli obiektów fizycznych
- Stan i zachowanie - przykład wyłącznika światła
- Wprowadzenie do klas i obiektów
- Klasy, obiekty i tworzenie obiektów
- Tworzenie klasy w Pythonie
- Zmienne zakresu i egzemplarza
- Różnice między funkcją i metodą
- Tworzenie obiektu na podstawie klasy
- Wywoływanie metod obiektu
- Tworzenie wielu egzemplarzy na podstawie tej samej klasy
- Typy danych Pythona są implementowane jako klasy
- Definicja obiektu
- Tworzenie nieco bardziej złożonej klasy
- Przedstawianie w postaci klas bardziej skomplikowanych obiektów fizycznych
- Przekazywanie argumentów metodzie
- Wiele egzemplarzy
- Inicjalizacja parametrów
- Klasy w użyciu
- Programowanie zorientowane obiektowo jako rozwiązanie
- Podsumowanie
3. Modele obiektów i znaczenie "self"
- Nowe spojrzenie na klasę DimmerSwitch
- Pierwszy model wysokiego poziomu
- Drugi model - znacznie dokładniejszy
- Co oznacza "self"?
- Podsumowanie
4. Zarządzanie wieloma obiektami
- Klasa przedstawiająca konto bankowe
- Importowanie kodu klasy
- Tworzenie kodu testowego
- Tworzenie wielu kont bankowych
- Lista zawierająca wiele obiektów kont bankowych
- Wiele obiektów z unikatowymi identyfikatorami
- Tworzenie interaktywnego menu
- Tworzenie obiektu zarządzającego obiektami
- Tworzenie obiektu zarządzającego obiektami
- Kod główny, który tworzy obiekt zarządzający obiektami
- Lepsza obsługa błędów za pomocą wyjątków
- try i except
- Polecenie raise i wyjątki niestandardowe
- Używanie wyjątków w programie modelującym bank
- Klasa Account z obsługą wyjątków
- Optymalizacja klasy Bank
- Kod główny zapewniający obsługę wyjątków
- Wywołanie tej samej metody w liście obiektów
- Interfejs kontra implementacja
- Podsumowanie
Część II. Tworzenie graficznego interfejsu użytkownika za pomocą pygame
5. Wprowadzenie do pygame
- Instalowanie pygame
- Praca z oknem
- System współrzędnych okna
- Kolor piksela
- Programy sterowane zdarzeniami
- Używanie pygame
- Wyświetlenie pustego okna
- Wyświetlenie obrazu
- Wykrycie kliknięcia myszą
- Obsługa klawiatury
- Tworzenie animacji na podstawie położenia
- Używanie prostokątów pygame
- Odtwarzanie dźwięku
- Odtwarzanie efektów dźwiękowych
- Odtwarzanie muzyki w tle
- Rysowanie figur
- Odwoływanie do figur prostych
- Podsumowanie
6. Zorientowany obiektowo framework pygame
- Tworzenie wygaszacza ekranu w postaci piłki za pomocą zorientowanego obiektowo pygame
- Tworzenie klasy Ball
- Używanie klasy Ball
- Tworzenie wielu obiektów typu Ball
- Tworzenie wielu, wielu obiektów Ball
- Tworzenie zorientowanego obiektowo przycisku wielokrotnego użycia
- Tworzenie klasy przycisku
- Kod główny używający klasy SimpleButton
- Tworzenie programu z wieloma przyciskami
- Tworzenie zorientowanego obiektowo komponentu tekstowego wielokrotnego użycia
- Procedura wyświetlenia tekstu
- Tworzenie klasy SimpleText
- Przykładowy program wykorzystujący klasy SimpleText i SimpleButton
- Interfejs kontra implementacja
- Wywołanie zwrotne
- Tworzenie wywołania zwrotnego
- Używanie wywołania zwrotnego razem z klasą SimpleButton
- Podsumowanie
7. Widżety GUI frameworka pygame
- Przekazywanie argumentów funkcji lub metodzie
- Parametry pozycyjne i w postaci słów kluczowych
- Informacje dodatkowe o parametrach w postaci słów kluczowych
- Używanie None jako wartości domyślnej
- Wybór słowa kluczowego i wartości domyślnej
- Wartość domyślna w widżecie GUI
- Pakiet pygwidgets
- Przygotowania
- Ogólne podejście projektowe
- Dodawanie obrazu
- Dodawanie przycisków, pól wyboru i pól opcji
- Tekstowe dane wejściowe i wyjściowe
- Inne klasy pygwidgets
- Przykładowy program pygwidgets
- Waga spójnego API
- Podsumowanie
Część III. Hermetyzacja, polimorfizm i dziedziczenie
8. Hermetyzacja
- Hermetyzacja i funkcje
- Hermetyzacja za pomocą obiektów
- Obiekt jest właścicielem danych
- Interpretacje hermetyzacji
- Dostęp bezpośredni i dlaczego należy go unikać
- Ścisła interpretacja z użyciem metod typu getter i setter
- Bezpieczny dostęp bezpośredni
- Bardziej prywatne zmienne egzemplarza
- Niejawnie prywatna zmienna egzemplarza
- Nieco bardziej jawnie prywatna zmienna egzemplarza
- Dekoratory i @property
- Hermetyzacja w klasach pygwidgets
- Prawdziwa historia
- Abstrakcja
- Podsumowanie
9. Polimorfizm
- Wysyłanie wiadomości do rzeczywistych obiektów
- Klasyczny przykład polimorfizmu w programowaniu
- Przykład z wykorzystaniem kształtów we frameworku pygame
- Klasa prostokąta
- Klasy Circle i Triangle
- Program główny do rysowania figur
- Rozszerzenie wzorca
- Pakiet pygwidgets ujawnia polimorfizm
- Polimorfizm operatorów
- Metody magiczne
- Metody magiczne operatora porównywania
- Klasa Rectangle z metodami magicznymi
- Program główny używający metod magicznych
- Metody magiczne operatora matematycznego
- Przykład wektora
- Tworzenie ciągu tekstowego przedstawiającego wartości obiektu
- Klasa Fraction i metody magiczne
- Podsumowanie
10. Dziedziczenie
- Dziedziczenie w programowaniu zorientowanym obiektowo
- Implementacja dziedziczenia
- Przykład menedżera i pracownika
- Klasa bazowa - Employee
- Podklasa - Manager
- Kod testujący obie klasy
- Podklasa z perspektywy klienta
- Rzeczywiste przykłady dziedziczenia
- Klasa InputNumber
- Klasa DisplayMoney
- Przykład użycia
- Wiele klas dziedziczących po tej samej klasie bazowej
- Klasy abstrakcyjne i metody
- Jak moduł pygwidgets używa dziedziczenia?
- Hierarchia klas
- Trudności z użyciem dziedziczenia
- Podsumowanie
11. Zarządzanie pamięcią używaną przez obiekty
- Cykl życiowy obiektu
- Licznik odwołań
- Mechanizm usuwania nieużytków
- Zmienne klasy
- Stała zmiennej klasy
- Zmienne klasy do zliczania
- Połączenie wszystkiego w całość - prosta gra z balonami
- Moduł stałych
- Kod programu głównego
- Menedżer balonów
- Klasy Balloon i ich obiekty
- Zarządzanie pamięcią - sloty
- Podsumowanie
Część IV. Programowanie zorientowane obiektowo podczas tworzenia gier
12. Gry karciane
- Klasa Card
- Klasa Deck
- Gra Większa czy mniejsza
- Program główny
- Obiekt Game
- Testowanie z użyciem zmiennej __name__
- Inne gry karciane
- Talia do gry w blackjacka
- Gry z wykorzystaniem nietypowych talii kart
- Podsumowanie
13. Zegary
- Program przedstawiający działanie zegara
- Trzy podejścia w zakresie implementacji zegara
- Zliczanie klatek
- Zdarzenie zegara
- Zdefiniowanie zegara przez sprawdzanie upływającego czasu
- Instalowanie modułu pyghelpers
- Klasa Timer
- Wyświetlanie czasu
- Klasa CountUpTimer
- CountDownTimer
- Podsumowanie
14. Animacja
- Opracowywanie klas animacji
- Klasa SimpleAnimation
- Klasa SimpleSpriteSheetAnimation
- Połączenie dwóch klas
- Klasy animacji w pygwidgets
- Klasa Animation
- Klasa SpriteSheetAnimation
- Wspólna klasa bazowa - PygAnimation
- Przykładowy program pokazujący animację
- Podsumowanie
15. Sceny
- Podejście z użyciem maszyny stanów
- Przykładowy program używający maszyny stanów
- Menedżer scen zarządzający wieloma scenami
- Przykładowy program używający menedżera scen
- Program główny
- Tworzenie scen
- Typowa scena
- Gra Kamień, papier, nożyce zbudowana z użyciem scen
- Komunikacja między scenami
- Żądanie informacji ze sceny docelowej
- Przekazywanie informacji do sceny docelowej
- Przekazywanie informacji na wszystkie sceny
- Testowanie komunikacji między scenami
- Implementacja menedżera scen
- Metoda run()
- Metody główne
- Komunikacja między scenami
- Podsumowanie
16. Pełna gra - Dodger
- Modalne okna dialogowe
- Okno dialogowe typu Tak/Nie
- Okno dialogowe typu Odpowiedź
- Tworzenie pełnej gry - Dodger
- Ogólny opis gry
- Implementacja
- Rozbudowa gry
- Podsumowanie
17. Wzorce projektowe i podsumowanie
- Model-widok-kontroler
- Przykład - sposób wyświetlania pliku
- Przykład - wyświetlanie danych statystycznych
- Zalety wzorca projektowego MVC
- Podsumowanie
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-9407-0 |
Rozmiar pliku: | 14 MB |