Ucz się Pythona, tworząc grę
Większość początkujących rezygnuje z Pythona, bo ćwiczenia wydają się bezcelowe: wypisz zdanie, dodaj dwie liczby, zapomnij o nich. Projekt to zmienia, bo każdy nowy pomysł robi coś, co widać. W Python DailyDrills zaczynasz z Pipem, robotem z wyłączonymi wszystkimi systemami, a każdy rozdział kończy się misją, w której twój kod ożywia kolejną część gry.
Twoja pierwsza linia daje Pipowi głos
W pierwszej lekcji Pip nie umie mówić. Naprawiasz to za pomocą print(). Gdy otwierasz grę, Pip mówi to, co wypisał twój kod. Chodzi o to, że gra nie jest dekoracją: uruchamia twój kod.
print("Hello, I am Pip!")Wynik:
Hello, I am Pip!
Instrukcje warunkowe dają Pipowi nogi
Pip wchodzi do morza, dopóki nie napiszesz can_move(). Gra wywołuje twoją funkcję na każdym kroku: woda i ściany mówią nie, wszystko inne mówi tak. Tak właśnie if i wartości zwracane przestają być abstrakcyjne.
def can_move(tile):
return tile not in ("water", "wall")
print(can_move("grass"))
print(can_move("water"))Wynik:
True False
Słowniki pozwalają maszynom mówić
Maszyny na wyspie mówią to, co zawiera twój słownik dialogów. Zmiana linii tekstu w twoim kodzie zmienia to, co mówią w grze.
dialogue = {"villager": "Welcome!", "mechanic": "Bring me scrap."}
print(dialogue["mechanic"])Wynik:
Bring me scrap.
Klasy budują glitcha, z którym walczy Pip
W rozdziale o klasach piszesz klasę Glitch, której używa walka: punkty życia, otrzymywanie obrażeń i wiedza, kiedy jest martwy. Każdy atak w grze wywołuje twoją metodę.
class Glitch:
def __init__(self, hp):
self.hp = hp
def take_hit(self, damage):
self.hp = max(0, self.hp - damage)
glitch = Glitch(12)
glitch.take_hit(4)
print(glitch.hp)Wynik:
8
Zachowaj zbudowaną grę
Na końcu możesz pobrać grę jako plik zip. Zawiera on twój kod, po jednym pliku na misję, oraz mały silnik do jej uruchomienia: python play.py w terminalu albo otwarcie play.html w przeglądarce. Pobieranie tworzy się w twojej przeglądarce, a twój kod nigdy nie trafia na serwer.
Częste pytania
- Czy potrzebuję jakiegokolwiek doświadczenia, żeby zacząć?
- Nie. Pierwsza lekcja zaczyna się od print(), a każdy koncept jest wprowadzany małymi ćwiczeniami przed misją, która go używa.
- Czy to prawdziwa gra, czy tylko łamigłówka?
- To mała gra widziana z góry: prowadzisz Pipa po wyspie strzałkami, naprawiasz maszyny, skanujesz czujniki i walczysz z glitchem. Każda umiejętność istnieje tylko dzięki kodowi w Pythonie, który dla niej wpisujesz.
- Czy mój kod działa na serwerach DailyDrills?
- Nie. Python działa w twojej przeglądarce, a kod misji jest zapisany tylko w niej. Pobierana gra jest również budowana na twoim komputerze.