Twórz własne gry komputerowe w Pythonie

Ebook Twórz własne gry komputerowe w Pythonie Al Sweigart

Al Sweigart
65,49 zł
Dodaj do ulubionych

Opis treści

Z książki Twórz własne gry komputerowe w Pythonie dowiesz się, jak tworzyć gry komputerowe w tym popularnym języku programowania. Nawet jeżeli jest to twoje pierwsze spotkanie z programowaniem.
Zaczniesz od klasycznych gier, takich jak Szubienica, Zgadywanka Liczbowa oraz Kółko i Krzyżyk, aby następnie zająć się pisaniem bardziej zaawansowanych programów: poszukiwania skarbów w trybie tekstowym i animowanej gry zręcznościowej z efektami dźwiękowymi. Jednocześnie poznasz najważniejsze pojęcia programistyczne i matematyczne, które pomogą ci wykonać kolejny krok w karierze programisty.
Analizując wnikliwie kod wszystkich prezentowanych gier zdobędziesz solidne podstawy nie tylko w Pythonie, ale również w dziedzinie informatyki.
A może, wykorzystując ogromne możliwości Pythona, napiszesz swoją własną, oryginalną grę?

Spis treści ebooka Twórz własne gry komputerowe w Pythonie

Wstęp do wydania polskiego XVII

WPROWADZENIE XIX
Dla kogo przeznaczona jest ta książka? XX
Zawartość książki XXI
Jak korzystać z tej książki XXII
Numery wierszy i wcięcia XXIII
Długie wiersze kodu XXIII
Pobieranie i instalowanie Pythona XXIV
Uruchamianie IDLE XXV
Pomoc online XXVI

1 POWŁOKA INTERAKTYWNA 1
Kilka prostych działań matematycznych 2
Liczby całkowite i rzeczywiste 2
Wyrażenia 3
Wyznaczanie wartości wyrażeń 3
Błędy składniowe 5
Zapisywanie wartości w zmiennych 5
Podsumowanie 9

2 PISANIE PROGRAMÓW 11
Wartości łańcuchowe 12
Konkatenacja łańcuchów 13
Pisanie programów w edytorze plików IDLE 13
Tworzenie programu „Hello World” 14
Zapisywanie programu 15
Wykonywanie programu 16
Jak działa program „Hello World” 17
Komentarze dla programistów 17
Funkcje: miniprogramy w programach 17
Koniec programu 19
Nadawanie nazw zmiennym 19
Podsumowanie 20

3 „ZGADNIJ, JAKA TO LICZBA” 21
Przykładowy przebieg gry „Zgadnij, jaka to liczba” 22
Kod źródłowy gry „Zgadnij, jaka to liczba” 22
Importowanie modułu random 24
Generowanie liczb losowych za pomocą funkcji random.randint() 25
Powitanie gracza 26
Instrukcje związane z przepływem sterowania 27
Używanie pętli do powtarzania kodu 27
Grupowanie w bloki 27
Pętle z instrukcjami for 28
Wczytywanie próby gracza 30
Konwersja wartości za pomocą funkcji int(), float() i str() 30
Logiczny typ danych 32
Operatory porównania 33
Sprawdzanie warunku za pomocą instrukcji warunkowych 33
Eksperymentowanie z wartościami logicznymi, operatorami porównania i warunkami 34
Różnica między = i == 35
Instrukcje if 36
Wcześniejsze wychodzenie z pętli za pomocą instrukcji break 36
Sprawdzanie, czy gracz wygrał 36
Sprawdzanie, czy gracz przegrał 37
Podsumowanie 38

4 PROGRAM OPOWIADAJĄCY DOWCIPY 41
Kilka przykładowych dowcipów 42
Kod źródłowy programu „Dowcipy” 42
Jak działa ten kod 43
Znaki ucieczki 43
Apostrofy i cudzysłowy 44
Parametr end funkcji print() 45
Podsumowanie 46

5 „SMOCZA KRAINA” 47
Zasady gry w „Smoczą krainę” 47
Przykładowy przebieg gry „Smocza kraina” 48
Schemat blokowy „Smoczej krainy” 48
Kod źródłowy „Smoczej krainy” 49
Importowanie modułów random i time 51
Funkcje w grze „Smocza kraina” 51
Instrukcje def 51
Wywoływanie funkcji 52
Gdzie umieszczać definicje funkcji 52
Łańcuchy wielowierszowe 53
Jak wykonywać pętle za pomocą instrukcji while 54
Operatory logiczne 54
Operator and 55
Operator or 56
Operator not 56
Wyznaczanie wartości wyrażeń z operatorami logicznymi 57
Zwracane wartości 58
Zasięg globalny i zasięg lokalny 58
Parametry funkcji 60
Wyświetlanie wyników gry 61
Decydowanie, w której jaskini mieszka przyjazny smok 62
Główna pętla gry 63
Wywoływanie funkcji w programie 63
Pytanie gracza, czy chce zagrać po raz kolejny 64
Podsumowanie 65

6 KORZYSTANIE Z DEBUGERA 67
Rodzaje błędów 68
Debuger 69
Uruchamianie debugera 69
Krok po kroku w trybie debugera 71
Znajdowanie błędów 74
Ustawianie pułapek 77
Korzystanie z pułapek 78
Podsumowanie 80

7 PROJEKTOWANIE GRY „SZUBIENICA” Z UŻYCIEM SCHEMATÓW BLOKOWYCH 81
Zasady gry w „Szubienicę” 82
Przykładowy przebieg gry „Szubienica” 82
Grafika ASCII 83
Projektowanie programu z użyciem schematu blokowego 84
Tworzenie schematu blokowego 85
Rozgałęzienia w schemacie blokowym 86
Kończenie lub restartowanie gry 87
Powtórne zgadywanie 88
Informacja zwrotna dla gracza 90
Podsumowanie 91

8 PISANIE KODU GRY „SZUBIENICA” 93
Kod źródłowy gry „Szubienica” 94
Importowanie modułu random 97
Stałe 98
Listy jako typ danych 98
Dostęp do elementów przez indeksy 99
Konkatenacja list 100
Operator in 101
Wywoływanie metod 101
Metody listowe reverse() i append() 102
Metoda łańcuchowa split() 102
Wczytywanie tajnego słowa z listy 103
Wyświetlanie planszy 104
Funkcje list() i range() 105
Przycinanie list i łańcuchów 106
Wyświetlanie tajnego słowa z podkreśleniami 107
Wczytywanie strzału gracza 109
Metody łańcuchowe lower() i upper() 109
Opuszczanie pętli while 111
Instrukcje elif 111
Sprawdzanie, czy gracz podał prawidłową literę 112
Pytanie gracza, czy chce zagrać ponownie 113
Przegląd funkcji w grze „Szubienica” 114
Główna pętla gry 114
Wywoływanie funkcji wyświetlPlanszę() 115
Umożliwienie graczowi podania litery 115
Sprawdzanie, czy litera znajduje się w tajnym słowie 115
Sprawdzanie, czy gracz wygrał 115
Obsługa nieudanej próby odgadnięcia 116
Sprawdzanie, czy gracz przegrał 117
Kończenie lub resetowanie gry 118
Podsumowanie 118

9 ROZBUDOWA GRY „SZUBIENICA” 119
Zwiększanie liczby dozwolonych prób 120
Słowniki jako typ danych 120
Poznawanie rozmiarów słowników za pomocą funkcji len() 121
Różnica między słownikami i listami 122
Metody słownikowe keys() i values() 123
Korzystanie ze słowników w grze „Szubienica” 123
Losowe wybieranie z listy 124
Usuwanie elementów z listy 125
Przypisanie wielokrotne 127
Wyświetlanie informacji o kategorii słowa 128
Podsumowanie 129

10 „KÓŁKO I KRZYŻYK” 131
Przykładowy przebieg gry w „Kółko i krzyżyk” 132
Kod źródłowy gry w „Kółko i krzyżyk” 133
Projektowanie programu 138
Przedstawienie planszy w postaci danych 138
Tworzenie strategii dla sztucznej inteligencji 139
Importowanie modułu random 140
Wyświetlanie planszy na ekranie 140
Umożliwienie graczowi wyboru znaku X lub O 141
Ustalanie, kto wykonuje pierwszy ruch 142
Umieszczanie znaku na planszy 143
Odwołania do list 143
Odwołania do list w funkcji wykonajRuch() 146
Sprawdzanie, czy gracz wygrał 147
Duplikacja danych planszy 149
Sprawdzanie, czy pole na planszy jest wolne 150
Umożliwianie graczowi wykonania ruchu 150
Wyznaczanie wartości „na skróty” 151
Wybieranie ruchu z listy 153
Wartość None 154
Tworzenie sztucznej inteligencji (SI) 155
Sprawdzanie, czy komputer może wygrać w jednym ruchu 156
Sprawdzanie, czy gracz może wygrać w jednym ruchu 156
Sprawdzanie pól narożnych, środkowego i bocznych (w tej właśnie kolejności) 157
Sprawdzanie, czy na planszy są jeszcze wolne pola 158
Główna pętla gry 158
Wybór znaku gracza i ustalenie rozpoczynającego 159
Ruch gracza 159
Ruch komputera 160
Pytanie gracza, czy chce zagrać ponownie 161
Podsumowanie 161

11 DEDUKCYJNA GRA „BAGELS” 163
Przykładowy przebieg gry „Bagels” 164
Kod źródłowy gry „Bagels” 165
Schemat blokowy gry „Bagels” 167
Importowanie modułu random i definiowanie funkcji uzyskajTajnąLiczbę() 168
Przestawianie kolejności cyfr 168
Zmiana kolejności elementów na liście za pomocą funkcji random.shuffle() 168
Uzyskiwanie tajnej liczby z przestawionych cyfr 169
Skrótowe operatory przypisania 170
Ustalanie, jaką podpowiedź wyświetlić 171
Metoda listowa sort() 172
Metoda łańcuchowa join() 173
Sprawdzanie, czy łańcuch zawiera jedynie cyfry 173
Rozpoczynanie gry 174
Interpolacja łańcuchów 175
Główna pętla gry 176
Wczytywanie próby odgadnięcia 177
Ustalanie podpowiedzi do strzału gracza 177
Sprawdzanie, czy gracz wygrał albo przegrał 177
Pytanie gracza, czy chce zagrać ponownie 178
Podsumowanie 178

12 UKŁAD WSPÓŁRZĘDNYCH KARTEZJAŃSKICH 181
Siatki i współrzędne kartezjańskie 182
Liczby ujemne 184
Układ współrzędnych na ekranie komputera 185
Sztuczki matematyczne 186
Sztuczka 1: Minus pożera znak plusa znajdujący się po jego lewe j stronie 186
Sztuczka 2: Dwa minusy łączą się w plus 187
Sztuczka 3: Dwie dodawane liczby mogą zamienić się miejscami 187
Wartości bezwzględne i funkcja abs() 188
Podsumowanie 188

13 GRA „POSZUKIWANIE SKARBU SONAREM” 191
Przykładowy przebieg gry „Poszukiwanie skarbu sonarem” 193
Kod źródłowy gry „Poszukiwanie skarbu sonarem” 195
Projektowanie programu 201
Importowanie modułów random, sys i math 201
Tworzenie nowej planszy do gry 202
Rysowanie planszy do gry 203
Rysowanie współrzędnych x wzdłuż górnej krawędzi planszy 204
Rysowanie oceanu 205
Wyświetlanie rzędu oceanu 205
Rysowanie współrzędnych x na dole planszy 206
Tworzenie losowych skrzyń ze skarbami 206
Ustalanie, czy ruch jest prawidłowy 207
Wykonywanie ruchu na planszy 208
Znajdowanie najbliższej skrzyni ze skarbami 208
Usuwanie wartości za pomocą listowej metody remove() 211
Wczytywanie ruchu gracza 212
Wyświetlanie instrukcji gry dla gracza 214
Główna pętla gry 214
Wyświetlanie informacji o stanie gry 216
Obsługa ruchu gracza 216
Znajdowanie zatopionej skrzyni ze skarbami 217
Sprawdzanie, czy gracz wygrał 217
Sprawdzanie, czy gracz przegrał 218
Kończenie programu za pomocą funkcji sys.exit() 218
Podsumowanie 219

14 „SZYFR CEZARA” 221
Kryptografia i szyfrowanie 222
Jak działa szyfr Cezara 223
Przykładowe działanie programu „Szyfr Cezara” 224
Kod źródłowy programu „Szyfr Cezara” 225
Ustawianie maksymalnej długości klucza 226
Podejmowanie decyzji o zaszyfrowaniu lub odszyfrowaniu wiadomości 227
Wczytywanie tekstu podanego przez gracza 227
Wczytywanie klucza podanego przez gracza 228
Szyfrowanie lub odszyfrowywanie komunikatu 228
Znajdowanie przekazanych łańcuchów za pomocą metody find() 229
Szyfrowanie lub odszyfrowywanie każdej litery 230
Uruchamianie programu 231
Technika siłowa 232
Dodawanie trybu siłowego łamania kodu 232
Podsumowanie 234

15 GRA „REVERSEGAM” 235
Jak grać w „Reversegam” 236
Przykładowy przebieg gry „Reversegam” 239
Kod źródłowy gry „Reversegam” 241
Importowanie modułów i konfiguracja stałych 248
Struktura danych z planszą gry 248
Rysowanie struktury danych z planszą na ekranie 249
Tworzenie nowej struktury danych z planszą 250
Sprawdzanie, czy ruch jest prawidłowy 250
Sprawdzanie każdego z ośmiu kierunków 251
Sprawdzanie, czy są jakieś pionki do odwrócenia 253
Sprawdzanie poprawności podanych współrzędnych 254
Uzyskiwanie listy wszystkich możliwych ruchów 255
Wywoływanie funkcji bool() 256
Uzyskiwanie wyniku z planszy 257
Wczytywanie wyboru pionka przez gracza 257
Ustalanie, kto ma wykonać pierwszy ruch 258
Umieszczanie pionka na planszy 258
Kopiowanie struktury danych z planszą 259
Ustalanie, czy pole narożne jest wolne 259
Wczytywanie ruchu gracza 260
Ustalanie ruchu komputera 262
Strategiczne znaczenie pól narożnych 262
Uzyskiwanie listy najlepszych ruchów 263
Wyświetlanie wyników na ekranie 264
Rozpoczynanie gry 264
Sprawdzanie możliwości wykonania ruchu 265
Tura gracza 265
Tura komputera 267
Główna pętla gry 268
Pytanie gracza, czy chce zagrać ponownie 269
Podsumowanie 270

16 SYMULACJA SI W GRZE „REVERSEGAM” 271
Komputer ma grać sam ze sobą 272
Przykładowy przebieg symulacji 1 273
Kod źródłowy symulacji 1 273
Usuwanie tekstów wyświetlanych graczowi i dodawanie komputerowego gracza 275
Komputer ma zagrać sam ze sobą wiele razy 276
Przykładowy przebieg symulacji 2 276
Kod źródłowy symulacji 2 277
Śledzenie wielu gier 278
Zasłanianie wywołań funkcji print() komentarzem 279
Procentowa ocena wyników SI 279
Porównywanie różnych algorytmów SI 281
Kod źródłowy symulacji 3 282
Jak działa SI w symulacji 3 283
Porównanie SI 287
Podsumowanie 289

17 TWORZENIE GRAFIKI 291
Instalowanie modułu pygame 292
„Hello World” w module pygame 292
Przykładowy przebieg programu „Hello World” napisanego z użyciem pygame 293
Kod źródłowy programu „Hello World” w wersji pygame 294
Importowanie modułu pygame 295
Inicjalizacja pygame 296
Konfiguracja okna pygame 296
Krotki 297
Obiekty Surface 297
Konfiguracja zmiennych z kolorami 298
Wypisywanie tekstu w oknie pygame 299
Używanie czcionek do stylizacji tekstu 299
Renderowanie obiektu Font 300
Ustawianie położenia tekstu za pomocą atrybutów Rect 301
Wypełnianie obiektu Surface kolorem 303
Funkcje związane z rysowaniem w module pygame 303
Rysowanie wielokąta 303
Rysowanie linii 304
Rysowanie okręgu 305
Rysowanie elipsy 305
Rysowanie prostokąta 306
Kolorowanie pikseli 307
Metoda blit() dla obiektów Surface 307
Rysowanie obiektu Surface na ekranie 308
Zdarzenia i główna pętla gry 308
Uzyskiwanie obiektów Event 309
Opuszczanie programu 309
Podsumowanie 310

18 GRAFIKA ANIMOWANA 311
Przykładowy przebieg programu „Animacja” 312
Kod źródłowy programu „Animacja” 312
Przemieszczanie i odbijanie się ramek od krawędzi okna 314
Konfiguracja stałych 315
Stałe reprezentujące kierunki 316
Stałe oznaczające kolory 317
Konfiguracja struktur danych z ramkami 317
Główna pętla gry 318
Kod pozwalający wyjść z gry 318
Przemieszczanie każdej ramki 319
Odbijanie się ramek od krawędzi okna 320
Rysowanie ramek w oknie w nowym położeniu 321
Rysowanie okna na ekranie 322
Podsumowanie 322

19 WYKRYWANIE KOLIZJI 323
Przykładowy przebieg programu „Wykrywania kolizji” 324
Kod źródłowy programu „Wykrywanie kolizji” 325
Importowanie modułów 327
Sterowanie szybkością programu za pomocą obiektu Clock 328
Konfiguracja okna i struktur danych 328
Konfiguracja zmiennych do śledzenia ruchu 330
Obsługa zdarzeń 330
Obsługa zdarzenia KEYDOWN 331
Obsługa zdarzenia KEYUP 334
Teleportowanie gracza 334
Dodawanie nowych kwadracików z pożywieniem 335
Poruszanie postacią gracza w obrębie okna 336
Rysowanie postaci gracza w oknie 336
Sprawdzanie, czy wystąpiła kolizja 337
Rysowanie w oknie kwadracików pożywienia 338
Podsumowanie 338

20 WYKORZYSTYWANIE DŹWIĘKÓW I OBRAZKÓW 339
Dodawanie obrazów za pomocą duszków 340
Pliki dźwiękowe i obrazkowe 340
Przykładowy przebieg programu „Duszki i dźwięki” 341
Kod źródłowy programu „Duszki i dźwięki” 342
Konfiguracja okna i struktury danych 345
Dodawanie duszka 345
Zmiana rozmiaru duszka 346
Konfigurowanie muzyki i dźwięków 346
Dodawanie plików dźwiękowych 346
Włączanie i wyłączanie dźwięku 347
Rysowanie w oknie postaci gracza 347
Sprawdzanie kolizji 348
Rysowanie czereśni w oknie 349
Podsumowanie 349

21 „DODGER” – GRA Z OBRAZEM I DŹWIĘKIEM 351
Powtórka z podstawowych typów danych pygame 352
Przykładowy przebieg gry „Dodger” 353
Kod źródłowy gry „Dodger” 353
Importowanie modułów 358
Konfiguracja stałych 359
Definiowanie funkcji 360
Zatrzymywanie i pauzowanie gry 360
Sprawdzanie kolizji z paskudami 361
Rysowanie tekstu w oknie 362
Inicjalizacja pygame i konfiguracja okna 362
Konfiguracja obiektów Font, Sound i Image 363
Wyświetlanie ekranu startowego 364
Rozpoczynanie gry 365
Główna pętla gry 367
Obsługa zdarzeń klawiatury 367
Obsługa ruchów myszy 369
Dodawanie nowych paskud 369
Poruszanie postacią gracza i paskudami 371
Implementacja kodów oszukiwania 372
Usuwanie paskud 373
Rysowanie okna 373
Wyświetlanie wyniku gracza 374
Rysowanie postaci gracza oraz paskud 374
Sprawdzanie kolizji 375
Ekran z napisem Game Over 375
Modyfikowanie gry „Dodger” 376
Podsumowanie 377

SKOROWIDZ 379

Szczegóły ebooka Twórz własne gry komputerowe w Pythonie

Wydawca:
Wydawnictwo Naukowe PWN
Rok wydania:
2017
Typ publikacji:
Ebook
Język:
polski
Format:
mobi,epub
ISBN:
978-83-01-19400-0
ISBN wersji papierowej:
978-83-01-19322-5
Wydanie:
1
Autorzy:
Al Sweigart
Miejsce wydania:
Warszawa
Liczba Stron:
416
Czas realizacji zamówienia:
Do 10 min

Na jakich urządzeniach mogę czytać ebooki?

Ikona ebooka Na czytnikach Kindle, PocketBook, Kobo i innych
Ikona komutera Na komputerach stacjonarnych i laptopach
Ikona telefonu Na telefonach z systemem ANDROID lub iOS
Ikona urządzenia elektroniczne Na wszystkich urządzeniach obsługujących format plików PDF, Mobi, EPub