Dane oryginału

Copyright © 2016 by Craig Richardson. Title of English-language original: Learn to Program with Minecraft. Transform Your World with the Power of Python, ISBN: 978-1-59327-670-6, published by No Starch Press. Polish-language edition copyright © 2016 by Polish Scientific Publishers PWN Wydawnictwo Naukowe PWN Spółka Akcyjna. All rights reserved.

Przekład WITKOM Witold Sikorski: Maciej Baranowski i Małgorzata Dąbkowska-Kowalik

Projekt okładki polskiego wydania Hubert Zacharski

Wydawca Łukasz Łopuszański

Redaktor prowadzący Jolanta Kowalczuk

Redaktor Joanna Sawicka

Koordynator produkcji Anna Bączkowska

Skład wersji elektronicznej na zlecenie Wydawnictwa Naukowego PWN: Tomasz Szymański / konwersja.virtualo.pl

Zastrzeżonych nazw firm i produktów użyto w książce wyłącznie w celu identyfikacji.

Copyright © for the Polish edition by Wydawnictwo Naukowe PWN SA

Warszawa 2016

eBook został przygotowany na podstawie wydania papierowego z 2016 r., (wyd. I)

Warszawa 2016

ISBN 978-83-01-18688-3

Wydawnictwo Naukowe PWN SA

02-460 Warszawa, ul. Gottlieba Daimlera 2

tel. 22 69 54 321, faks 22 69 54 288

infolinia 801 33 33 88

e-mail: pwn@pwn.com.pl; www.pwn.pl

Wielu dorosłych i dzieci czytało początkowe wersje tej książki,

korzystało z moich przepisów oraz brało udział

w moich wykładach i warsztatach:

dziękuję wszystkim za entuzjazm i poparcie.

Ta książka powstała dla Was.

Spis treści

PODZIĘKOWANIA

WPROWADZENIE

Po co uczyć się programowania?

Dlaczego Python?

Dlaczego Minecraft?

Co zawiera ta książka?

Zasoby w sieci

Zaczynamy przygodę!

Wprowadzenie do wydania polskiego

1. PRZYGOTOWANIA DO NASZEJ PRZYGODY

Ustawienia na komputerach osobistych

Instalowanie Minecrafta

Instalowanie Pythona

Instalowanie Javy

Instalacja API Minecraft Python oraz Spigot

Uruchomienie serwera Spigot i utworzenie gry

Tworzenie nowego świata

Gra w trybie offline

Przejście do trybu przetrwania

Ustawienia na komputerach Mac

Instalowanie Minecrafta

Instalowanie Pythona

Instalowanie Javy

Instalacja API Minecraft Python oraz Spigot

Uruchomienie serwera Spigot i utworzenie gry

Tworzenie nowego świata

Gra w trybie offline

Przejście do trybu przetrwania

Ustawienia na komputerach Raspberry Pi

Poznawanie IDLE

Poznawanie powłoki Pythona (Python Shell)

Mówimy Hello edytorowi IDLE

Kiedy korzystać z powłoki Pythona, a kiedy z edytora tekstu

Zgłoszenia używane w tej książce

Testowanie konfiguracji Minecrafta z Pythonem

2. TELEPORTACJA ZA POMOCĄ ZMIENNYCH

Czym jest program?

Przechowywanie danych w zmiennych

Struktura języków programowania

Reguły składni dla zmiennych

Zmiana wartości zmiennych

Wartości całkowite

Misja nr 1: Teleportuj gracza

Wartości rzeczywiste

Misja nr 2: Przejście w ściśle określone miejsce

Spowolnienie teleportacji za pomocą modułu time

Misja nr 3: Podróż teleportacyjna

Znajdowanie błędów (debugowanie)

Misja nr 4: Naprawa błędnej teleportacji

Co już wiesz

3. SZYBKIE BUDOWANIE I DALEKIE PODRÓŻE DZIĘKI MATEMATYCE

Wyrażenia i instrukcje

Operatory

Dodawanie

Misja nr 5: Bloki na stosie

Misja nr 6: Superskok

Odejmowanie

Misja nr 7: Zmiana bloków pod nami

Korzystanie z operatorów arytmetycznych w argumentach

Misja nr 8: Szybkie budowanie

Mnożenie

Dzielenie

Misja nr 9: Spektakularne iglice

Potęgi

Nawiasy i kolejność działań

Przydatne sztuczki matematyczne

Operatory skrótowe

Stosowanie liczb losowych

Misja nr 10: Superskok z nowościami!

Co już wiesz

4. Z ŁAŃCUCHEM NA CZAT

Czym są łańcuchy?

Funkcja print()

Misja nr 11: Witaj przygodo z Minecraftem

Funkcja input()

Misja nr 12: Pisanie własnych komunikatów na czat

Łączenie łańcuchów

Konwersja liczb na łańcuchy

Łączenie liczb całkowitych i rzeczywistych

Misja nr 13: Wyświetlanie nazw użytkowników na czacie

Konwersja łańcuchów na wartości całkowitoliczbowe za pomocą funkcji int()

Misja nr 14: Tworzenie bloków na podstawie danych podanych przez użytkownika

Radzenie sobie z błędami

Misja nr 15: Dozwolone są tylko liczby

Misja nr 16: Pomiar odległości

Co już wiesz

5. TAK CZY NIE – WARTOŚCI LOGICZNE

Wartości logiczne

Misja nr 17: Przestań niszczyć bloki!

Konkatenacja wartości logicznych

Operatory porównania

Operator „równa się”

Misja nr 18: Czyżbym płynął?

Operator „nie równa się”

Misja nr 19: Czyżbym stał w czymś, co nie jest powietrzem?

Operatory „większy niż” i „mniejszy niż”

Operatory „większy lub równy” i „mniejszy lub równy”

Misja nr 20: Czyżbym znajdował się nad ziemią?

Misja nr 21: Jestem blisko domu?

Operatory logiczne

Operator and

Misja nr 22: Jestem cały pod wodą?

Operator or

Misja nr 23: Jestem na drzewie?

Operator not

Misja nr 24: Czy ten blok nie jest arbuzem?

Kolejność operatorów logicznych

Czy dana liczba znajduje się między dwiema innymi?

Misja nr 25: Jestem w domu?

Co już wiesz

6. TWORZENIE MINIGIER Z UŻYCIEM INSTRUKCJI IF

Używanie instrukcji if

Misja nr 26: Krater na życzenie

Instrukcje else

Misja nr 27: Nie rozbijaj albo rozbijaj

Instrukcja elif

Misja nr 28: Wręcz podarek

Łączenie łańcuchem instrukcji elif

Misja nr 29: Teleportacja we właściwe miejsce

Zagnieżdżone instrukcje if

Misja nr 30: Otwórz tajne przejście

Używanie instrukcji if do sprawdzenia zakresu wartości

Misja nr 31: Ograniczanie celów teleportacji

Operatory logiczne i instrukcje if

Misja nr 32: Weź prysznic

Co już wiesz

7. POTAŃCÓWKI I PARADY Z PĘTLAMI WHILE

Prosta pętla while

Misja nr 33: Losowa teleportacja objazdowa

Sterowanie pętlami za pomocą licznika

Misja nr 34: Wodna klątwa

Nieskończone pętle while

Misja nr 35: Kwietny welon

Wyszukane warunki

Misja nr 36: Zawody nurkowe

Operatory logiczne i pętle while

Sprawdzanie zakresu wartości w pętlach while

Misja nr 37: Zrób sobie parkiet

Zagnieżdżone instrukcje if i pętle while

Misja nr 38: Dotyk Midasa

Kończenie pętli while za pomocą instrukcji break

Misja nr 39: Użyj pętli do utworzenia stałego czatu

Instrukcje while-else

Misja nr 40: Ciepło–zimno

Co już wiesz

8. FUNKCJE DAJĄ NAM SUPERMOCE

Definiowanie własnych funkcji

Wywoływanie funkcji

Funkcje przyjmują argumenty

Misja nr 41: Tworzymy las

Optymalizacja programu

Misja nr 42: Optymalizujemy kod

Komentowanie za pomocą napisów dokumentacyjnych (docstring)

Podział wierszy z argumentami

Wartości zwracane przez funkcje

Misja nr 43: Przypomnienie identyfikatora bloku

Używanie w funkcjach instrukcji if i pętli while

Instrukcje if

Misja nr 44: Pomocnik do kolorów wełny

Pętle while

Misja nr 45: Wszędzie bloki

Zmienne globalne i lokalne

Misja nr 46: Ruchomy blok

Co już wiesz

9. DOSTĘP DO ELEMENTÓW ZA POMOCĄ LIST I SŁOWNIKÓW

Korzystanie z list

Dostęp do elementu na liście

Zmiana elementu z listy

Misja nr 47: wysoko i nisko

Działania na listach

Dodawanie elementu

Wstawianie elementu

Usuwanie elementu

Misja nr 48: Pasek postępu

Traktowanie łańcuchów jako list

Krotki

Ustawianie zmiennych za pomocą krotek

Misja nr 49: Przesuwanie

Zwracanie krotki

Inne przydatne funkcje list

Długość listy

Misja nr 50: Trafienia w bloki

Losowe wybieranie elementu

Misja nr 51: Losowy blok

Kopiowanie listy

Elementy i zastosowanie instrukcji if

Misja nr 52: Miecz widzący nocą

Słowniki

Definiowanie słownika

Uzyskiwanie dostępu do elementów w słownikach

Misja nr 53: Przewodnik turystyczny

Zmiana i dodawanie elementów w słowniku

Usuwanie elementów ze słowników

Misja nr 54: Wynik trafień w bloki

Co już wiesz

10. MAGIA MINECRAFTA Z PĘTLĄ FOR

Prosta pętla for

Misja nr 55: Czarodziejska różdżka

Funkcja range()

Misja 56: Magiczne gwiazdy

Różne zastosowania range()

Inne funkcje związane z listami

Misja nr 57: Filary

Misja nr 58: Piramida

Wykonywanie pętli na słowniku

Misja nr 59: Tablica wyników

Pętle for-else

Przerywanie pętli for-else

Misja nr 60: Poszukiwacz diamentów

Zagnieżdżone pętle for oraz listy wielowymiarowe

Podejście dwuwymiarowe

Dostęp do wartości na listach 2D

Misja nr 61: Grafika rastrowa

Generowanie list dwuwymiarowych za pomocą pętli

Misja nr 62: Ściana zniszczona przez pogodę

Podejście trójwymiarowe

Pobieranie danych z list trójwymiarowych

Dostęp do wartości na listach 3D

Misja nr 63: Powielanie budowli

Co już wiesz

11. ZAPISYWANIE I ŁADOWANIE BUDOWLI ZA POMOCĄ PLIKÓW I MODUŁÓW

Używanie plików

Otwieranie pliku

Zapisywanie danych do pliku i zapisywanie pliku

Czytanie pliku

Przeczytanie wiersza pliku

Misja nr 64: Lista zadań

Część 1: Pisanie listy zadań

Część 2: Wyświetlanie listy zadań

Używanie modułów

Moduł pickle

Importowanie modułu

Importowanie jednej funkcji za pomocą klauzuli from

Importowanie wszystkich funkcji za pomocą *

Nadawanie modułom nazw zastępczych

Misja nr 65: Zapisywanie budowli

Część 1: Zapisywanie budowli

Część 2: Ładowanie budowli

Zapisywanie dużej liczby danych za pomocą modułu shelve

Otwieranie pliku za pomocą modułu shelve

Dodawanie i modyfikowanie elementów za pomocą shelve oraz uzyskiwanie do nich dostępu

Misja nr 66: Zapisywanie zestawu struktur

Część 1: Zapisywanie struktury jako zbioru

Część 2: Ładowanie struktury ze zbioru

Instalowanie nowych modułów za pomocą pip

Korzystanie z pip w systemie Windows

Korzystanie z pip w systemach Mac lub Raspberry Pi

Korzystanie z modułu pip: Flask

Misja nr 67: Witryna zawierająca położenie

Co już wiesz

12. PROGRAMOWANIE OBIEKTOWE POZWALA PROGRAMOWAĆ Z KLASĄ

Podstawy programowania obiektowego

Tworzenie klasy

Tworzenie obiektów

Dostęp do atrybutów

Misja nr 68: Obiekty położenia

Pojęcie metod

Misja nr 69: Dom widmo

Zwracanie wartości za pomocą metod

Misja nr 70: Zamek widmo

Tworzenie wielu obiektów

Misja nr 71: Miasto widmo

Atrybuty klasy

Pojęcie dziedziczenia

Dziedziczenie klasy

Dodawanie nowych metod do podklas

Misja nr 72: Hotel widmo

Zastępowanie metod i atrybutów

Misja nr 73: Drzewo widmo

Co już wiesz

POSŁOWIE

ZESTAWIENIE IDENTYFIKATORÓW BLOKÓW

PRZYPISY

Wszystkie rozdziały dostępne w pełnej wersji książki.

1
PRZYGOTOWANIA DO NASZEJ PRZYGODY

Zanim zaczniemy tworzyć program w Pythonie dla naszego świata w Minecrafcie, musimy zainstalować na naszym komputerze Minecrafta, Pythona i kilka innych elementów. W tym rozdziale zobaczymy, jak zainstalować i uruchomić niezbędne oprogramowanie.

Minecraft może być używany na komputerach osobistych z systemem Windows lub na komputerach Mac. Można też użyć Minecraft: Pi Edition na komputerze Raspberry Pi. Korzystający z komputera z systemem Windows mogą dalej czytać ten rozdział, użytkownicy komputerów Mac powinni przejść na stronę 12, do punktu „Ustawienia na komputerach Mac”. Korzystający z Raspberry Pi muszą przejść do punktu „Ustawienia na komputerach Raspberry Pi” na stronie 20.

UWAGA

Informacje o innych platformach i aktualizacjach można znaleźć na witrynie https://www.nostarch.com/pythonwithminecraft/.

USTAWIENIA NA KOMPUTERACH OSOBISTYCH

Aby sterować Minecraftem za pomocą Pythona, musimy zainstalować pięć elementów. Są to:

• Minecraft

• Python 3

• Java

• API Minecraft Python

• Server Minecraft Spigot

W tej części rozdziału prześledzimy kolejne kroki instalacji każdego z tych elementów. Zacznijmy od Minecrafta.

INSTALOWANIE MINECRAFTA

Kto już zakupił Minecrafta i zainstalował najnowszą wersję tego programu na swoim komputerze, może przejść do punktu „Instalowanie Pythona” na stronie 3. Kto nie ma pewności, czy ma najnowszą wersję programu, musi wykonać poniższe czynności, aby ją zainstalować.

Jeśli nie macie własnej gry, możecie ją kupić na oficjalnej witrynie Minecraft pod adresem https://minecraft.net/. Zapewne powinien pomóc w tym ktoś dorosły. Trzeba zapamiętać login i hasło użyte przy zakupie Minecrafta, gdyż będzie ono potem potrzebne do logowania.

Po zakupieniu Minecrafta wykonujemy poniższe kroki, aby zainstalować go na swoim komputerze:

1. Przejdź pod adres https://minecraft.net/download.

2. W części Minecraft for Windows znajdź łącze Minecraft.msi, a następnie je kliknij, aby pobrać program. Po pojawieniu się opcji zapisania lub otwarcia pliku kliknij Save File (Zapisz plik)[1].

3. Zaczekaj na zakończenie pobierania pliku, a następnie go otwórz. Jeśli pojawi się okno dialogowe z pytaniem, czy uruchomić plik (Otwieranie pliku – ostrzeżenie o zabezpieczeniach), kliknij Run (Uruchom). Nie martw się – ten plik jest bezpieczny.

4. Gdy otworzy się kreator Minecrafta, kliknij Next (Dalej) raz, a potem jeszcze 5 razy. Następnie kliknij Install (Zainstaluj).

5. Może pojawić się pytanie, czy chcesz zainstalować Minecrafta. Oczywiście, że chcesz, więc kliknij Yes (Tak). Poczekaj chwilę na zainstalowanie programu. Ja zdążyłem w tym czasie napić się wody i zjeść ciastko.

6. Po zakończeniu instalacji kliknij Finish (Zakończ).

Minecraft powinien być już zainstalowany.

Teraz najlepiej będzie zagrać w grę. Poświęćmy więc czas na uruchomienie Minecrafta.

1. Aby otworzyć Minecrafta, kliknij Start (lub naciśnij klawisz Windows na klawiaturze), znajdź Minecrafta na liście programów, a następnie kliknij jego ikonę.

2. Minecraft uruchomi się i być może zainstaluje aktualizacje.

3. Następnie otworzy się okno logowania. Podaj nazwę użytkownika, hasło użyte podczas zakupu Minecrafta i kliknij Log In (Zaloguj).

4. Kliknij Play (Graj). Przed uruchomieniem Minecraft zainstaluje kilka aktualizacji.

5. Wreszcie kliknij Single Player (Tryb jednoosobowy)►Create New World (Stwórz nowy świat). Nadaj swojemu światu wybraną nazwę, a następnie kliknij Create New World (Stwórz nowy świat). Świat zostanie utworzony i można grać ku swemu zadowoleniu.

Pobawcie się. Kto nigdy wcześniej nie grał w Minecrafta, może trochę pograć, dopóki w świecie Minecrafta nie zapadnie zmrok. Trzeba uważać na potwory! Warto zauważyć, że gdy korzystamy z Minecrafta razem z Pythonem, używamy świata wielu graczy, który różni się od świata jednego gracza. Dojdziemy do tego w punkcie „Uruchomienie serwera Spigot i utworzenie gry” na stronie 7.

Wróćmy do pracy! Nadeszła pora na instalację Pythona. Aby wyjść z gry w Minecrafcie, wystarczy nacisnąć na klawiaturze klawisz ESC. Zamykamy Minecrafta i kontynuujemy instalację.

INSTALOWANIE PYTHONA

Python jest językiem programowania, który będziemy poznawać w tej książce. Teraz go zainstalujemy.

1. Przejdź do http://www.python.org/downloads/.

2. Kliknij przycisk opisany Download Python 3.5.0[2] (Pobierz Pythona 3.5.0). (Jest to najnowsza wersja języka dostępna w chwili pisania tej książki. Jeśli zobaczycie nowszą wersję, zainstalujcie ją).

3. Zacznie się pobieranie Pythona. Jeśli pojawi się pytanie o zapisanie lub utworzenie pliku, kliknij Save file (Zapisz plik).

4. Gdy instalator zostanie załadowany, kliknij go. Gdy pojawi się okno dialogowe z pytaniem, czy chcesz uruchomić plik, kliknij Run (Uruchom).

5. Po otwarciu instalatora zaznacz pole wyboru Add Python 3.5 to PATH (Dodaj Pythona 3.5 do zmiennej systemowej), co widać na dole rysunku 1.1. Następnie kliknij Install now (Zainstaluj teraz).

Rysunek 1.1. Koniecznie zaznacz pole Add Python 3.5 to PATH

6. W oknie dialogowym może pojawić się pytanie, czy pozwolić programowi na zainstalowanie oprogramowania na komputerze. Kliknij Yes (Tak), a następnie poczekaj na zainstalowanie się Pythona. U mnie trwało to tyle czasu, że zdążyłem wstać, zamknąć okno i wrócić na swoje miejsce.

7. Kliknij Finish (Zakończ). Python jest już zainstalowany.

INSTALOWANIE JAVY

Mamy już zainstalowane Minecrafta i Pythona, musimy więc zadbać o to, aby mogły się ze sobą komunikować. Możemy w tym celu użyć programu o nazwie Spigot, ale jego działanie wymaga zainstalowania na naszym komputerze Javy.

Sprawdzimy najpierw, czy Java jest już zainstalowana:

1. Kliknij Menu Start (lub naciśnij klawisz Windows na klawiaturze) i wpisz w oknie wyszukiwania cmd. Otworzy się program o nazwie cmd.

2. Zobaczysz okno z czarnym tłem oraz zgłoszenie systemu właściwe dla komputera (u mnie to C:\Users\Craig>). Wpisz w tym miejscu java -version i naciśnij ENTER.

3. Jeśli zobaczysz komunikat podobny do pokazanego na rysunku 1.2, to znaczy, że Java jest już zainstalowana. Możesz pominąć resztę i przejść do punktu „Instalacja API Minecraft Python oraz Spigot” na stronie 6.

4. Jeśli zobaczysz komunikat, że nazwa Java nie jest rozpoznana, zainstaluj ją zgodnie z podaną niżej instrukcją.

Rysunek 1.2. Po wprowadzeniu polecenia java -version można zobaczyć, czy Java jest zainstalowana

Aby zainstalować Javę, trzeba wykonać następujące kroki:

1. Przejdź do witryny http://www.java.com/pl/download/[3].

2. Kliknij przycisk Free Java Download (Bezpłatne pobieranie oprogramowania Java). Następnie kliknij przycisk Agree and Start Free Download (Zgadzam się – rozpocznij bezpłatne pobieranie).

3. Po pobraniu instalatora kliknij go. Jeśli pojawi się okno dialogowe z pytaniem, czy chcesz zezwolić tej aplikacji na wprowadzenie zmian w tym komputerze, wybierz Yes (Tak).

4. Po otwarciu instalatora kliknij Install (Instaluj).

5. Tu mamy bardzo istotny fragment! Jeśli otworzy się strona z pytaniem, czy chcesz zainstalować inny program, np. pasek narzędzi Ask Search, pasek Yahoo! Search lub cokolwiek innego, to usuń zaznaczenie tego pola, aby żaden inny program się nie zainstalował. To jeszcze jeden program, którego nie potrzebujesz.

6. Możesz zobaczyć pytanie, czy ustawić Yahoo! jako stronę startową. Zapewne tego nie chcesz. Wybierz Do not update browser settings (Nie aktualizuj ustawień przeglądarki), a następnie kliknij Next (Dalej).

7. Poczekaj na zainstalowanie Javy. Ja w tym czasie napisałem krótkiego maila do znajomego. Po zakończeniu kliknij Close (Zamknij).

Sprawdźmy teraz, czy Java została zainstalowana poprawnie:

1. Kliknij Menu Start (lub naciśnij klawisz Windows na klawiaturze) i wpisz w oknie wyszukiwania cmd. Otworzy się program o nazwie cmd.

2. W oknie cmd wpisz java -version i naciśnij ENTER.

3. Jeśli zobaczysz komunikat podobny do tego na rysunku 1.2, to znaczy, że Java jest już zainstalowana. Jeśli otrzymasz komunikat, że nazwy Java nie rozpoznano, oznacza to, że Java nie została poprawnie zainstalowana. Spróbuj naprawić problem, ponownie instalując Javę i uruchamiając ją. Jeśli nadal pojawia się błąd, trzeba przejść do witryny http://www.java.com/pl/download/help/path.xml, aby uzyskać więcej informacji.

To już wszystko! Java jest gotowa, aby uruchomić serwer Minecrafta! Przejdźmy teraz do tego zadania.

INSTALACJA API MINECRAFT PYTHON ORAZ SPIGOT

Musimy teraz zainstalować na swoim komputerze API Minecraft Python oraz serwer Minecrafta.

API to skrót określenia programowy interfejs aplikacji (ang. application programming interface). Pozwala on programom na komunikowanie się z aplikacjami utworzonymi przez inne osoby. W naszym przypadku API Minecraft Python pozwala programom, które napiszemy w Pythonie, na komunikowanie się z Minecraftem. Możemy przykładowo napisać w Pythonie program, który wykorzystuje API, aby poinstruować Minecrafta, że ma utworzyć w grze blok lub zmienić położenie gracza.

Standardowa gra Minecraft z jednym graczem nie obsługuje API. Nasze programy komunikują się wzajemnie z serwerem Minecrafta, który pozwala na korzystanie z API. Serwery Minecrafta są używane przede wszystkim w trybie online, więc wiele osób może grać razem w świecie jednej gry. Możemy też uruchomić serwer na swoim własnym komputerze i grać samodzielnie. Zarówno serwery Minecrafta dla wielu graczy, jak i dla jednego gracza pozwalają na korzystanie z API razem z grą. W tej książce będziemy na naszym komputerze używali serwera Minecrafta o nazwie Spigot w wersji dla wielu graczy.

Gdy już wiemy, co robią API oraz serwer, zainstalujmy je na swoim komputerze. Utworzyłem wygodny element do pobrania, aby szybko zainstalować te komponenty. Wystarczy wykonać kolejno poniższe kroki:

1. Przejdź do https://www.nostarch.com/pythonwithminecraft/ i pobierz plik Minecraft Tools.zip dla Windows.

2. Po pobraniu pliku kliknij go prawym przyciskiem myszy i wybierz Wyodrębnij wszystko. Pojawi się pytanie, gdzie mają być umieszczone wyodrębnione pliki. Kliknij przycisk Przeglądaj, a następnie przejdź do folderu Moje dokumenty. Kliknij Nowy folder i utwórz folder o nazwie Minecraft Python. Wybierz ten folder, a następnie kliknij OK. Kliknij Wyodrębnij, aby wyodrębnić pliki.

3. Przejdź do podfolderu Minecraft Python w folderze Moje dokumenty, gdzie zobaczysz wyodrębnione pliki.

4. Otwórz folder Minecraft Tools. Jego zawartość pokazano na rysunku 1.3.

Rysunek 1.3. Folder Minecraft Tools

5. Dwukrotnie kliknij plik Install_API. Spowoduje to otwarcie nowego okna i zainstalowanie API Minecraft Python. Jeśli otrzymasz komunikat z ostrzeżeniem, kliknij Run Anyway (Uruchom mimo wszystko)

6. Gdy instalacja się zakończy, naciśnij dowolny klawisz.

UWAGA

Jeśli pojawi się komunikat o błędzie mówiący, że pip nie został rozpoznany, oznacza to, że Python nie został poprawnie zainstalowany. Trzeba wrócić do punktu „Instalowanie Pythona” na stronie 3 i ponownie zainstalować Pythona. Trzeba koniecznie zaznaczyć pole wyboru Add Python 3.5 to Path.

Teraz API Minecraft Python oraz serwer Minecrafta są zainstalowane. Ostatnim krokiem jest uruchomienie serwera. Zrobimy to w kolejnym punkcie.

URUCHOMIENIE SERWERA SPIGOT I UTWORZENIE GRY

Podczas pierwszego uruchomienia Spigota zostanie utworzony świat Minecrafta. Aby uruchomić Spigota, należy wykonać poniższe kroki:

1. Przejdź do folderu Minecraft Python i otwórz folder Minecraft Tools.

2. W folderze Minecraft Tools dwukrotnie kliknij plik Start_Server. Jeśli otrzymasz pytanie o zezwolenie na dostęp, kliknij Allow (Zezwól).

3. Spigot uruchomi twój serwer Minecrafta. Zobaczysz wyskakujące okno z dużą ilością tekstu, podczas gdy Spigot będzie tworzył dla ciebie świat gry. Po zakończeniu ekran będzie wyglądał jak ten z rysunku 1.4. Okno to powinno pozostać otwarte.

Rysunek 1.4. Serwer Spigot jest gotowy

4. Otwórz Minecrafta i kliknij Multiplayer (Tryb wieloosobowy).

5. Kliknij przycisk Add Server (Dodaj serwer)[4].

6. W polu Server Name (Nazwa serwera) wpisz nazwę Minecraft Python World, a w polu Server Address (Adres serwera) wpisz localhost, tak jak to pokazuje rysunek 1.5. Następnie kliknij Done (Gotowe).

Rysunek 1.5. Ustawianie serwera

7. Dwukrotnie kliknij Minecraft Python World, a wtedy otworzy się świat utworzony przez Spigot.

Popatrzmy przez chwilę na nowy świat Minecrafta na serwerze Spigot. Świat ten jest w trybie kreacji (Creative Mode – Tryb gry: kreatywny), możemy więc po nim pofruwać. Aby polecieć, dwa razy naciskamy spację. Przytrzymanie spacji spowoduje, że polecimy wyżej, przytrzymanie zaś Shift obniży lot. Aby zatrzymać lot, ponownie dwa razy naciskamy spację.

TWORZENIE NOWEGO ŚWIATA

Tworzenie całkiem nowego świata Minecrafta na serwerze różni się trochę od tworzenia go w trybie jednoosobowym. Aby utworzyć nowy świat, należy wykonać podane niżej kroki:

1. Przejdź do folderu Minecraft Python. Prawym przyciskiem myszy kliknij folder Minecraft Tools, a następnie kliknij Kopiuj.

2. Prawym przyciskiem myszy kliknij w dowolnym miejscu folderu Minecraft Python, a następnie kliknij Wklej. Spowoduje to utworzenie kopii folderu Minecraft Tools o nazwie Minecraft Tools – Kopia.

3. Prawym przyciskiem myszy kliknij folder Minecraft Tools – Kopia, a następnie kliknij Zmień nazwę. Ja nazwałem ten folder New World (Nowy świat), ale możecie wybrać dowolną inną nazwę.

4. Otwórz folder New World (lub ten o własnej nazwie), a następnie otwórz folder server.

5. W folderze server wybierz foldery world, world_nether i world_the_end, co pokazano na rysunku 1.6. Naciśnij klawisz DELETE, aby je usunąć.

Rysunek 1.6. Podświetlono foldery przeznaczone do usunięcia

6. Pozostając w folderze server, kliknij plik start.bat (Ważne, aby kliknąć plik start wewnątrz folderu server, a nie oryginalny plik Start_Server!). Spowoduje to ponowne uruchomienie serwera i wygenerowanie nowego świata.

7. Jeśli teraz otworzymy kolejno Minecrafta i Minecrafta Pythona World, zobaczymy nowo utworzony świat.

Proces tworzenia nowego świata można powtarzać dowolną liczbę razy. Stary świat można zawsze uruchomić, klikając plik Start_Server w folderze Minecraft Tools.

Aby usunąć świat i zastąpić go nowym, wystarczy usunąć foldery world, world_nether oraz world_the_end w folderze świata, który ma zostać zastąpiony.

GRA W TRYBIE OFFLINE

Jeśli nie mamy połączenia z Internetem, pojawi się błąd przy próbie połączenia gry z serwerem Minecrafta. Można to naprawić, zmieniając właściwości serwera. Trzeba najpierw zamknąć okno serwera. Następnie otwieramy folder Minecraft Python, potem folder Minecraft Tools, a następnie folder server. Otwieramy w edytorze tekstu, na przykład w Notatniku, plik server.properties i zmieniamy ustawienie online-mode (rysunek 1.7) z wartości true na false. Zapisujemy zmiany. Następnie wracamy do folderu Minecraft Tools i dwukrotnie klikamy Start_Server,

aby ponownie uruchomić serwer. Teraz będzie można grać w trybie offline.

Rysunek 1.7. Zmiana wyróżnionego ustawienia z true na false

PRZEJŚCIE DO TRYBU PRZETRWANIA

Ustawiłem domyślnie grę na serwerze Minecrafta w trybie kreatywnym. To ułatwia pisanie i uruchamianie programów w Pythonie, gdyż nie trzeba się martwić o to, że gracz straci zdrowie, zgłodnieje czy też zostanie zaatakowany. Można jednak dla zabawy przetestować niektóre programy w trybie przetrwania. Możemy łatwo przełączyć serwer z trybu kreatywnego na przetrwanie i z powrotem.

Aby przełączyć się z trybu kreatywnego na tryb przetrwania, należy wykonać następujące kroki:

1. Otwórz folder Minecraft Tools. W tym folderze otwórz folder server.

2. Znajdź plik właściwości server.properties i otwórz go w edytorze tekstów, na przykład w Notatniku.

3. W pliku znajdź wiersz z tekstem gamemode=1 i zmień wpis na gamemode=0, jak pokazano na rysunku 1.8.

Rysunek 1.8. Przełączenie na tryb przetrwania przez ustawienie gamemode na 0

4. Zapisz i zamknij plik.

5. Uruchom serwer, klikając plik Start_Server w folderze Minecraft Tools. Gdy wejdziesz do gry Minecraft Python World, będziesz już w trybie przetrwania.

W dowolnym momencie można wrócić do trybu kreatywnego. Wystarczy powtórzyć powyższe kroki, w kroku 3. zmieniając gamemode=0 na gamemode=1 w pliku server.properties.

Teraz mamy wszystko ustawione na swoim komputerze. Następnie poznamy środowisko IDLE, w którym będziemy pisać nasz kod. Przejdźmy do punktu „Poznawanie IDLE” na stronie 21.

USTAWIENIA NA KOMPUTERACH MAC

Aby sterować Minecraftem z poziomu Pythona, musimy zainstalować pięć elementów. Są to:

• Minecraft

• Python 3

• Java Development Kit

• API Minecraft Python

• Spigot Minecraft Server

W tej części rozdziału pokażę, jak zainstalować każdy z tych elementów na własnym komputerze. Zacznijmy od Minecrafta.

INSTALOWANIE MINECRAFTA

Kto już zakupił Minecrafta i ma zainstalowaną najnowszą wersję tego programu na swoim komputerze, może przejść do punktu „Instalowanie Pythona” na stronie 14. Kto nie ma pewności, czy ma najnowszą wersję, musi wykonać podane poniżej kroki, aby ją zainstalować.

Jeśli nie macie własnej gry, możecie ją kupić na oficjalnej witrynie Minecrafta pod adresem https://minecraft.net/. Zapewne powinien pomóc w tym ktoś dorosły. Trzeba zapamiętać login i hasło użyte przy zakupie Minecrafta, gdyż będą one potrzebne potem do logowania.

Po zakupieniu Minecrafta działamy zgodnie z poniższą instrukcją, aby zainstalować go na swoim komputerze Mac:

1. Przejdź pod adres https://minecraft.net/download.

2. W części Minecraft for Mac OS X znajdź łącze Minecraft.dmg, a następnie je kliknij, aby pobrać program. [Jeśli nie widać części Minecraft for Mac OS X, kliknij Show all platforms (Pokaż wszystkie platformy)].

3. Zaczekaj na pobranie pliku (ja zdążyłem w tym czasie wyjrzeć przez okno), a następnie go otwórz. Gdy pojawi się wyskakujące okienko, przeciągnij ikonę Minecrafta do folderu Applications, co pokazano na rysunku 1.9.

Rysunek 1.9. Przeciągnij ikonę Minecrafta do folderu Application, aby go zainstalować

Minecraft powinien być teraz zainstalowany.

Teraz najlepiej będzie zagrać w grę. Poświęćmy więc czas na uruchomienie Minecrafta:

1. Aby otworzyć Minecrafta, kliknij na pulpicie ikonę Finder, aby otworzyć przeglądarkę plików.

2. Na pasku bocznym kliknij Applications (Aplikacje).

3. Znajdź Minecraft w folderze Applications, jak pokazano na rysunku 1.10. Kliknij go dwa razy i wybierz Open (Otwórz).

4. Może pojawić się pytanie, czy chcesz otworzyć Minecrafta, gdyż został on pobrany z Internetu. Kliknij Open.

5. Minecraft uruchomi się i być może zainstaluje jakieś aktualizacje.

6. Następnie otworzy się okno logowania. Podaj nazwę użytkownika i hasło używane podczas zakupu Minecrafta i kliknij Log In (Zaloguj).

Rysunek 1.10. Znajdowanie Minecrafta w folderze Applications

7. Kliknij Play (Graj). Przed uruchomieniem Minecraft zainstaluje kilka aktualizacji.

8. Wreszcie kliknij Single Player►Create New World (Tryb jednoosobowy > Stwórz nowy świat). Nadaj swojemu światu wybraną nazwę, a następnie kliknij Create New World (Stwórz nowy świat). Świat zostanie utworzony i można grać ku swemu zadowoleniu.

Pobawcie się. Kto nigdy wcześniej nie grał w Minecrafta, może trochę pograć, dopóki w świecie Minecraft nie zapadnie zmrok. Trzeba uważać na potwory! Warto zauważyć, że gdy korzystamy z Minecrafta razem z Pythonem, używamy świata wielu graczy, który różni się od świata jednego gracza. Dojdziemy do tego w punkcie „Uruchomienie serwera Spigot i utworzenie gry” na stronie 17.

Wróćmy do pracy! Nadeszła pora na instalację Pythona. Aby wyjść z gry w Minecrafta, wystarczy nacisnąć na klawiaturze klawisz ESC. Zamykamy Minecrafta i kontynuujemy instalację.

INSTALOWANIE PYTHONA

Python jest językiem programowania, który będziemy poznawać w tej książce. Teraz go zainstalujemy.

1. Przejdź do https://www.python.org/downloads/mac-osx/.

2. Kliknij łącze opisane Latest Python 3 Release – Python 3.5.1 (najnowsza wersja Pythona 3 – Python 3.5.1). (Jest to najnowsza wersja języka dostępna w chwili pisania tej książki. Jeśli zobaczycie nowszą wersję, zainstalujcie ją). Z dolnej części kolejnej strony z listy Files wybierz plik z instalatorem do systemu Mac OSX.

3. Gdy instalator zostanie załadowany, kliknij go.

4. Gdy instalator uruchomi się, kliknij trzy razy Continue (Kontynuuj). Pojawi się pytanie o zgodę na warunki licencji oprogramowania. Kliknij Agree (Akceptuję).

5. Kliknij Install (Zainstaluj) i poczekaj na zainstalowanie Pythona. Ja zdążyłem w tym czasie sprawdzić prognozę pogody.

6. Kliknij Zakończ. Python został już zainstalowany.

INSTALOWANIE JAVY

Mamy już zainstalowane Minecrafta i Pythona, musimy więc zadbać o to, aby mogły się ze sobą komunikować. Możemy w tym celu użyć programu o nazwie Spigot, ale jego działanie wymaga zainstalowania na naszym komputerze najnowszej wersji JDK (Java Development Kit). Zróbmy to teraz:

1. Przejdź do witryny http://www.oracle.com/technetwork/java/javase/downloads/index.html i kliknij przycisk Java Download.

2. Zaakceptuj warunki licencji (Accept License Agreement), a następnie kliknij Mac OSX x64.

3. Kliknij instalator po jego pobraniu.

4. Po otwarciu instalatora kliknij dwukrotnie ikonę Install (Instaluj).

5. Jeśli otrzymasz pytanie o hasło, podaj je.

6. Poczekaj na zainstalowanie się Javy. Po zakończeniu kliknij Close (Zamknij).

Sprawdźmy teraz, czy JDK jest zainstalowany poprawnie:

1. Kliknij System Preferences (Preferencje systemu).

2. Poniżej powinna być widoczna ikona Javy, jak to widać na rysunku 1.11.

Rysunek 1.11. Java jest zainstalowana

To już wszystko! Java jest gotowa, aby uruchomić serwer Minecrafta! Przejdźmy teraz do tego zadania.

INSTALACJA API MINECRAFT PYTHON ORAZ SPIGOT

Musimy teraz zainstalować na swoim komputerze API Minecraft Python oraz serwer Minecrafta.

API to skrót określenia programowy interfejs aplikacji (ang. application programming interface). Pozwala on programom na komunikowanie się z aplikacjami utworzonymi przez inne osoby. W naszym przypadku API Minecraft Python pozwala programom, które napiszemy w Pythonie, na komunikowanie się z Minecraftem. Możemy przykładowo napisać w Pythonie program, który wykorzystuje API, aby poinstruować Minecrafta, że ma utworzyć w grze blok lub zmienić położenie gracza.

Standardowa gra Minecraft z jednym graczem nie obsługuje API. Nasze programy komunikują się interakcyjnie z serwerem Minecrafta, który pozwala na wykorzystywanie API. Serwery Minecrafta są używane przede wszystkim w trybie online, więc wiele osób może grać razem w świecie jednej gry. Możemy też uruchomić serwer na swoim własnym komputerze i grać samodzielnie. Zarówno serwery Minecrafta dla wielu graczy, jak i dla jednego pozwalają na używanie API razem z grą. W tej książce będziemy na naszym komputerze używali serwera Minecrafta o nazwie Spigot dla wielu graczy.

Gdy już wiemy, co robią API oraz serwer, zainstalujmy je na swoim komputerze. Utworzyłem zestaw wygodny do pobrania, aby szybko zainstalować te elementy. Wystarczy wykonać kolejno poniższe kroki:

1. Przejdź do https://www.nostarch.com/pythonwithminecraft/ i pobierz plik MinecraftToolsMac.zip.

2. Po pobraniu pliku otwórz folder Downloads folder i kliknij Show in Finder (Pokaż w Finderze).

3. W Finderze kliknij plik, przytrzymując klawisz CTRL, i wybierz opcję Copy MinecraftToolsMac.zip.

4. Przejdź do folderu Documents. Kliknij w nim, przytrzymując klawisz CTRL, i wybierz New Folder. Nazwij nowy folder MinecraftPython. Pamiętaj, aby w nazwie folderu nie było spacji.

5. Otwórz folder MinecraftPython. Kliknij w nim, przytrzymując klawisz CTRL, i wybierz Paste Item (Wklej element). Plik MinecraftToolsMac.zip zostanie tu skopiowany.

6. Kliknij ten plik, przytrzymując klawisz CTRL, i wybierz Open With►Archive Utility (Otwórz za pomocą ► Narzędzie archiwizacji). Po otwarciu pliku zip przez narzędzie archiwizacji będziemy mieli nowy folder o nazwie MinecraftTools.

7. Otwórz folder MinecraftTools. Jego zawartość widać na rysunku 1.12.

Rysunek 1.12. Zawartość folderu MinecraftTools

8. Kliknij, przytrzymując klawisz CTRL, plik o nazwie Install_API.command i wybierz Open. Otworzy się nowe okno. Podaj swoje hasło, aby zainstalować API Minecraft Python.

9. Gdy instalacja się zakończy, zamknij okno.

UWAGA

Jeśli pojawi się komunikat o błędzie informujący: „Install_API.command can’t be opened because it is from an unidentified developer” (Nie można otworzyć InstallAPI.command z powodu niezidentyfikowanego producenta), kliknij System Preferences, a następnie kliknij Security and Privacy. Pojawi się komunikat „Install_API.command was not opened because it is from an unidentified developer” (Nie można otworzyć InstallAPI.command, ponieważ pochodzi od niezidentyfikowanego producenta). Kliknij Open Anyway (Otwórz mimo wszystko). Wtedy okno powinno się pojawić.

Teraz API Minecraft Python oraz serwer Minecrafta są zainstalowane. Ostatnim krokiem jest uruchomienie serwera. Zrobimy to w kolejnym punkcie.

URUCHOMIENIE SERWERA SPIGOT I UTWORZENIE GRY

Podczas pierwszego uruchomienia Spigota zostanie utworzony świat Minecrafta. Aby uruchomić Spigota, należy wykonać poniższe kroki:

1. Przejdź do folderu Minecraft Python i otwórz folder Minecraft Tools.

2. W folderze Minecraft Tools kliknij, przytrzymując klawisz CTRL, plik Start_Server i wybierz Open. Jeśli otrzymasz komunikat o błędzie, przejdź do System Preferences (Preferencje systemowe), a następnie do Security and Privacy (Bezpieczeństwo i poufność) i kliknij Open Anyway.

3. Spigot uruchomi twój serwer Minecrafta. Zobaczysz wyskakujące okno z dużą ilością tekstu, podczas gdy Spigot będzie tworzył dla ciebie świat gry. Okno to powinno pozostać otwarte.

4. Otwórz Minecrafta i kliknij Multiplayer (Tryb wieloosobowy).

5. Kliknij przycisk Add Server (Dodaj serwer).

6. W polu Server Name (Nazwa serwera) wpisz nazwę Minecraft Python World, w polu Server Address (Adres serwera) wpisz zaś localhost, tak jak to pokazuje rysunek 1.12. Następnie kliknij Done (Gotowe).

7. Dwukrotnie kliknij Minecraft Python World, a wtedy otworzy się świat utworzony przez Spigota.

Popatrzmy przez chwilę na nowy świat Minecrafta na serwerze Spigot. Świat jest w trybie kreatywnym (Creative Mode), możemy więc po nim pofruwać. Dwa razy naciskamy spację, aby polecieć. Przytrzymanie spacji spowoduje, że polecimy wyżej, przytrzymanie zaś Shift obniży lot. Aby zatrzymać lot, ponownie naciskamy dwa razy spację.

Rysunek 1.13. Dodawanie serwera, aby był łatwo dostępny w przyszłości

TWORZENIE NOWEGO ŚWIATA

Tworzenie całkiem nowego świata Minecrafta na serwerze różni się trochę od tworzenia go w trybie jednego gracza. Aby utworzyć nowy świat, należy wykonać podane niżej kroki:

1. Przejdź do folderu MinecraftPython. Kliknij folder MinecraftTools, przytrzymując klawisz CTRL, a następnie kliknij Copy (Kopiuj).

2. Kliknij w dowolnym miejscu folderu, przytrzymując klawisz CTRL, a potem kliknij Paste (Wklej). Spowoduje to utworzenie kopii folderu MinecraftTools o nazwie MinecraftTools – Kopia.

3. Kliknij folder MinecraftTools – Kopia, przytrzymując klawisz CTRL, a następnie kliknij Zmień nazwę. Ja nazwałem ten folder New World, ale możecie wybrać dowolną inną nazwę.

4. Otwórz folder New World (lub ten o własnej nazwie), a następnie otwórz folder server.

5. W folderze server wybierz foldery world, world_nether i world_the_end, co pokazano na rysunku 1.6. Aby je usunąć, naciśnij klawisze SHIFT i DELETE.

6. Wróć do folderu New World i kliknij the Start_Server. Spowoduje to ponowne uruchomienie serwera i wygenerowanie nowego świata.

7. Jeśli teraz otworzymy kolejno Minecrafta i Minecrafta Pythona World, zobaczymy nowo utworzony świat.

Proces tworzenia nowego świata można powtarzać dowolną liczbę razy. Stary świat można zawsze uruchomić, klikając plik Start_Server w folderze MinecraftTools.

Aby usunąć świat i zastąpić go nowym, wystarczy usunąć foldery world, world_nether oraz world_the_end w folderze świata, który ma zostać zastąpiony.

GRA W TRYBIE OFFLINE

Jeśli nie mamy połączenia z Internetem, otrzymamy błąd przy próbie połączenia gry z serwerem Minecrafta. Można to naprawić, zmieniając właściwości serwera. Trzeba najpierw zamknąć okno serwera. Następnie otwieramy folder Minecraft Python, potem folder MinecraftTools, a następnie folder server. Otwieramy w edytorze tekstu, na przykład w TextEdit, plik server.properties i zmieniamy ustawienie online-mode (rysunek 1.7) z wartości true na false. Zapisujemy zmiany. Następnie wracamy do folderu MinecraftTools i dwukrotnie klikamy Start_Server, aby ponownie uruchomić serwer. Teraz będzie można grać w trybie offline.

PRZEJŚCIE DO TRYBU PRZETRWANIA

Ustawiłem domyślnie grę na serwerze Minecraft w trybie kreatywnym. To ułatwia pisanie i uruchamianie programów w Pythonie, gdyż nie trzeba się martwić o to, że gracz straci zdrowie, zgłodnieje czy też zostanie zaatakowany. Można jednak dla zabawy przetestować niektóre programy w trybie przetrwania. Możemy łatwo przełączyć serwer z trybu kreatywnego na przetrwanie i z powrotem.

Aby przełączyć się z trybu kreatywnego na tryb przetrwania, należy wykonać następujące działania:

1. Otwórz folder MinecraftTools. W tym folderze otwórz folder server.

2. Znajdź plik właściwości server.properties i otwórz go w edytorze tekstów, na przykład w textEdit.

3. W pliku znajdź wiersz z tekstem gamemode=1 i zmień wpis na gamemode=0, jak pokazano na rysunku 1.8.

4. Zapisz i zamknij plik.

5. Uruchom serwer, klikając plik Start_Server w folderze MinecraftTools. Gdy wejdziesz do gry Minecraft Python World, będziesz już w trybie przetrwania.

W dowolnym momencie można wrócić z powrotem do trybu kreatywnego. Wystarczy powtórzyć powyższe kroki, w kroku 3. zmieniając gamemode=0 na gamemode=1 w pliku server.properties.

Teraz mamy wszystko ustawione na swoim Macu! Następnie będziemy działać w środowisku IDLE, gdzie będziemy pisać nasz kod. Przejdźmy do punktu „Poznawanie IDLE” na stronie 21.

USTAWIENIA NA KOMPUTERACH RASPBERRY PI

Logujemy się na Raspberry Pi i uruchamiamy pulpit poleceniem startx. (Posiadacze najnowszej wersji systemu operacyjnego Pi nie muszą podawać tego polecenia).

Zależnie od rodzaju Raspberry Pi, można mieć zainstalowane dwie lub trzy różne wersje języka Python. W tej książce korzystamy z najnowszej wersji Pythona, Python 3.

Domyślnie komputery Raspberry Pi mają zainstalowaną uproszczoną wersję Minecrafta o nazwie Minecraft: Pi Edition. Wszystko, czego potrzebujemy do programowania w świecie Minecrafta z Pythonem, jest już zainstalowane. Nowi użytkownicy Raspberry Pi mogą znaleźć instrukcje dla początkujących na oficjalnej witrynie producenta http://www.raspberrypi.org/.

Korzystający ze starszego obrazu na karcie SD (sprzed sierpnia 2014 r.) mogą nie mieć zainstalowanego Minecrafta. Można go ławo zainstalować. Trzeba połączyć się z Internetem za pomocą Raspberry Pi. Odpowiednie instrukcje można znaleźć w witrynie http://www.raspberrypi.org/.

Po połączeniu się z Internetem należy wykonać następujące kroki:

1. Na pulpicie dwukrotnie kliknij LXTerminal.

2. Po otwarciu LXTerminal wprowadź polecenie:

$ sudo apt-get update

3. Po zakończeniu aktualizacji wprowadź poniższe polecenie:

$ sudo apt-get install minecraft-pi

4. Poczekaj na zakończenie instalacji. Minecraft jest teraz zainstalowany.

W porównaniu z wersjami na komputery Raspberry Pi ma wiele ograniczeń dotyczących Minecrafta. Świat gry jest o wiele mniejszy i brakuje wielu bloków i funkcji (jak tryb przetrwania), ale możemy napisać wszystkie wspaniałe programy opisane w tej książce.

Zanim przejdziemy dalej, utwórzmy folder do przechowywania naszych programów napisanych w Pythonie. Na pasku zadań klikamy ikonę przeglądarki plików. Otwieramy folder Documents, a następnie klikamy prawym przyciskiem myszy w tle przeglądarki plików i wybieramy Create New…►Folder. Nadajemy folderowi nazwę Minecraft Python i klikamy OK.

UWAGA

Użytkownicy oryginalnych Raspberry Pi mogą zauważyć, że niektóre programy z książki działają powoli z uwagi na ograniczenia urządzenia. Model Raspberry Pi 2 będzie miał mniejsze problemy z szybkością.

Aby otworzyć Minecrafta, klikamy menu start w lewym górnym narożniku pulpitu. (Użytkownicy starszej wersji systemu operacyjnego Raspberry Pi znajdą menu start w lewym dolnym narożniku pulpitu). Przechodzimy do Games (Gry) i klikamy Minecraft. Minecraft zostanie otwarty. Przy pierwszym uruchomieniu Minecraft będzie wymagał kliknięcia opcji Create World (Stwórz świat).

Trzeba przyjąć ogólną zasadę, że nie zmieniamy rozmiarów okna, gdyż może to powodować problemy.

Czasami przy otwieraniu innych okien lub dialogów (jak potwierdzenia zapisania pliku w Pythonie) mogą one być ukryte za oknem Minecrafta. Wystarczy wtedy zminimalizować okno Minecrafta, aby zobaczyć inne okna. W przypadku pojawiania się problemów trzeba ponownie uruchomić Raspberry Pi po zainstalowaniu Minecrafta.

POZNAWANIE IDLE

Gdy wszystko zostało już zainstalowane i skonfigurowane, zobaczmy oprogramowanie IDLE, które będziemy wykorzystywać do pisania i uruchamiania programów w języku Python. Instalacja Pythona obejmuje IDLE, więc nie musimy niczego instalować oddzielnie. Otwórzmy teraz IDLE!

Windows: Otwórz menu Start i w polu wyszukiwania wpisz IDLE.

Mac: Otwórz folder Applications i kliknij ikonę IDLE.

Raspberry Pi: Na pulpicie dwukrotnie kliknij ikonę IDLE oznaczoną Python 3.

Otworzy się okno IDLE, co widać na rysunku 1.14. Okno nosi nazwę powłoki Pythona. Powłoka Pythona jest tak fantastyczna, że gdy ją zobaczyłem podczas nauki programowania w Pythonie, byłem pod wielkim wrażeniem.

Rysunek 1.14. Okno IDLE wykorzystywane do pisania programów w Pythonie

POZNAWANIE POWŁOKI PYTHONA (PYTHON SHELL)

Powłoka Pythona pozwala nam pisać i uruchamiać programy wiersz po wierszu. Możemy napisać wiersz kodu, natychmiast go uruchomić i zobaczyć, co się stanie, a następnie przejść do następnego wiersza. Jest to świetna metoda łatwego sprawdzania i uruchamiania kodu.

W oknie na początku wiersza widać trzy znaki większości (>>>). Określamy to jako znak gotowości polecenia. W ten sposób powłoka Pythona mówi nam, że jest gotowa na przyjęcie od nas polecenia.

Zacznijmy od bardzo podstawowego polecenia: dodania w Pythonie dwóch liczb. Klikamy w powłoce Pythona obok zgłoszenia i wpisujemy działanie 2 + 2. Zauważmy, że nie musimy pisać znaków gotowości (>>>). Otrzymamy coś podobnego do wiersza widocznego niżej:

>>> 2 + 2

Po wpisaniu polecenia naciskamy ENTER. Powłoka Pythona pokaże nam wynik. W tym przypadku będzie to 4:

>>> 2 + 2

4

Możemy też korzystać z powłoki do obsługi tekstów. Wpisz do powłoki Pythona poniższy kod i naciśnij ENTER:

>>> "W" + "o" * 5

'Wooooo'

Tym razem wynikiem działania jest Wooooo. Liczba na końcu polecenia określa, ile liter o ma się znaleźć w słowie. Zmiana tej liczby pozwala określić długość słowa. Spróbujmy zmienić to na wartość 20 (lub dowolną inną liczbę):

>>> "W" + "o" * 20

'Woooooooooooooooooooo'

Woooooooooooooooooooo! Powłoka Pythona może dać wiele radości. Zwróćmy uwagę, że IDLE koloruje kod. Nazywamy to wyróżnianiem składni. Pozwala ono lepiej widzieć różne fragmenty kodu. Wszystkie kody umieszczone w tej książce mają kolory zgodne z tymi nadawanymi przez IDLE, więc będą pasować do tych, które zobaczymy podczas pisania programów. Popatrzmy teraz na edytor tekstu IDLE.

MÓWIMY HELLO EDYTOROWI IDLE

Gdy zaczynamy pisać dłuższe programy, nie możemy korzystać z powłoki. Rozwiązaniem jest edytor tekstu IDLE! W przeciwieństwie do powłoki nie uruchamia kodu natychmiast po jego wprowadzeniu. Zamiast tego uruchamia cały program po otrzymaniu właściwego polecenia. Klikamy na pasku menu IDLE File (Plik) i wybieramy New File (Nowy plik) Otworzy się nowe okno wyglądające jak to na rysunku 1.15. Jest to edytor tekstu.

Rysunek 1.15. Edytor tekstu w IDLE

„Hej!”, powiecie. „Ten edytor tekstu wygląda dokładnie tak samo jak powłoka Pythona w IDLE”. Rzeczywiście tak jest, ale mamy jedną istotną różnicę. Nowe okno nie ma znaku gotowości (>>>) na początku każdego wiersza. Zobaczmy, co to oznacza. Napiszmy w pierwszym wierszu edytora poniższy kod i naciśnijmy ENTER:

print(2 + 2)

Czy spodziewaliście się, że coś się stanie? Naciśnięcie klawisza ENTER nie uruchamia tu kodu, lecz tworzy nowy wiersz. Ponieważ edytor tekstu nie uruchamia kodu po naciśnięciu ENTER, możemy napisać dowolną liczbę wierszy, a dopiero potem je uruchomić. Dodajmy do programu kilka wierszy. Oto, jak powinien po zakończeniu pisania wyglądać nasz plik:

print(2 + 2)

print("W" + "o" * 20)

print("PYTHON!")

print("<3s")

print("Minecraft")

Zanim uruchomimy w edytorze tekstów IDLE nasz kod w Pythonie, musimy go zapisać. Aby zapisać program, klikamy File, a następnie Save As. Tworzymy w naszym folderze Minecraft Python nowy folder o nazwie konfiguracja. Zapisujemy program w tym folderze jako pythonKochaMinecrafta.py.

Teraz go uruchomimy. Przejdźmy w menu do Run (Uruchom) i kliknijmy Run Module (Uruchom moduł). Otworzy się okno powłoki i nasz program zostanie w nim uruchomiony. Wyniki pokazano na rysunku 1.16.

Rysunek 1.16. Wyniki programu w Pythonie

Inaczej niż w przypadku powłoki, polecenia uruchamiane z edytora tekstu nie będą automatycznie pokazywały wyników. Dlatego musimy używać polecenia print(), które pokaże wyniki naszego kodu. Szczegóły poznamy w dalszej części książki.

Przy każdym uruchomieniu programu z edytora tekstu IDLE otworzy się powłoka, uruchamiając program. Wprawdzie program piszemy w oddzielnym oknie, ale IDLE zawsze używa powłoki do uruchamiania programów.

KIEDY KORZYSTAĆ Z POWŁOKI PYTHONA, A KIEDY Z EDYTORA TEKSTU

Gdy już znamy różnicę między powłoką Pythona w IDLE a edytorem tekstu w IDLE, możemy zastanawiać się, którego narzędzia lepiej używać. Ogólna zasada mówi, że używamy powłoki Pythona, gdy chcemy przetestować kilka wierszy kodu i nie chcemy używać ich ponownie. Przy wykonywaniu przykładów z tej książki zalecam uruchamianie krótkich przykładów za pomocą powłoki Pythona. Z edytora tekstów korzystamy, gdy mamy więcej wierszy kodu i chcemy używać ich ponownie. Wszystkie misje z książki pisane są w edytorze, aby zawsze można było zapisywać postępy pracy. Jednak gdy chcemy coś szybko wypróbować, możemy zawsze użyć powłoki.

ZGŁOSZENIA UŻYWANE W TEJ KSIĄŻCE

Za każdym razem, gdy zobaczymy w książce napisany w IDLE kawałek kodu w powłoce Pythona, będzie się on rozpoczynał od znaku gotowości polecenia (>>>), jak poniżej:

>>> print("Wooooo Minecraft")

Warto wpisywać podawany kod do IDLE, aby podczas lektury książki zapoznać się ze zgłoszeniami. Wyniki podawane przez powłokę są podawane w kolejnym wierszu:

>>> print("Wooooo Minecraft")

Wooooo Minecraft

Kod wpisywany w edytorze tekstów nie będzie rozpoczynał się znakiem gotowości, jak w tym przykładzie:

print("Przygody")

Wyniki kodu nie wyświetlą się automatycznie na naszym komputerze. Aby pokazać, jak wyglądają, będę je przedstawiał w książce w oddzielnej ramce. Na przykład wyniki powyższego kodu będą wyglądać tak:

Przygody

Aby ułatwić śledzenie objaśnień podawanych w książce, umieściłem odnośniki wskazujące dany fragment kodu. Gdy zobaczycie jeden z nich w kodzie, w tekście znajdziecie odpowiadające mu objaśnienie i odwrotnie. Odnośniki te wyglądają tak:

❶  ❷  ❸  ❹  ❺  ❻  ❼

TESTOWANIE KONFIGURACJI MINECRAFTA Z PYTHONEM

Sprawdźmy teraz, czy oprogramowanie zostało poprawnie zainstalowane. Aby to zrobić, przejdziemy szybko do prostego programu w Pythonie, który będzie współdziałać z Minecraftem.

Oto początek: jeśli korzystamy z komputera osobistego lub z Maca, musimy otworzyć trzy elementy oprogramowania. Wykonajmy następujące kroki:

1. Otwórz Spigot, przechodząc do folderu Minecraft Tools i klikając Start_Server.

2. Otwórz Minecraft i połącz się z serwerem Spigot, wybierając Minecraft Python World z menu wielu graczy (tryb wieloosobowy).

3. Naciśnij na klawiaturze klawisz ESC, aby wyjść z okna Minecraft, a następnie otwórz w IDLE powłokę Pythona.

Te trzy elementy oprogramowania są potrzebne zawsze, gdy chcemy pisać programy, które współpracują z Minecraftem.

Jeśli używamy Raspberry Pi, otwieramy IDLE i Minecrafta.

Teraz wprowadzamy poniższy wiersz do powłoki. Wielkie i małe litery są tu bardzo istotne, więc wprowadzamy tekst uważnie!

>>> from mcpi.minecraft import Minecraft

Naciskamy ENTER, co sprawia, że jesteśmy w kolejnym wierszu powłoki. Wpisujemy poniższy wiersz:

>>> mc = Minecraft.create()

Jeśli w tym momencie zobaczymy komunikat o błędzie przypominający ten z rysunku 1.17, mamy problem.

Rysunek 1.17. Komunikat o błędzie oznaczający, że nie został uruchomiony Spigot

Trzeba sprawdzić wszystko po kolei. Czy Minecraft jest otwarty? Czy Spigot jest uruchomiony? Czy jesteśmy w świecie wielu użytkowników? Czy korzystamy z odpowiedniej wersji Pythona (3, nie 2)? Jeśli błąd pojawił się po wpisaniu pierwszego wiersza, to znaczy, że API nie jest poprawnie zainstalowany. Trzeba powtórzyć kroki instalacji API. Jeśli błąd pojawił się w drugim wierszu, zapewne Java lub Spigot nie są poprawnie zainstalowane. Należy je po kolei przeinstalować.

Jeśli otrzymamy błąd, który mówi ImportError: No module named 'mcpi', zapewne korzystamy ze starej wersji Pythona. Trzeba sprawdzić, czy zainstalowana jest właściwa wersja.

Jeśli nie pokazał się komunikat o błędzie, dodajemy w IDLE kolejny wiersz do programu:

mc.player.setTilePos(0, 120, 0)

Po wykonaniu tego działania gracz uniesie się wysoko w powietrze. Ten kod teleportuje gracza w nowe położenie. Więcej dowiemy się o tym w drugim rozdziale. Przewracamy stronę i zaczynamy!

PRZYPISY

[1] Na witrynie istnieje możliwość wyboru języka polskiego (przyp. tłum.).

[2] W lutym 2016 r. dostępna była wersja 3.5.1. Trzeba sprawdzać aktualność wersji języka Python. Większość komunikatów w polskiej wersji Windows jest po polsku, ale zachowano nazwy angielskie, umieszczając tłumaczenie na polski w nawiasie (przyp. tłum.).

[3] Podanie adresu z „pl” spowoduje zainstalowanie oprogramowania z witryny w języku polskim. Jednak większość komunikatów podczas instalacji będzie pojawiać się w języku angielskim (przyp. tłum.).

[4] W paczce plików udostępnionych w witrynie nostarch.com znajduje się serwer Spigot w wersji kompatybilnej z Minecraftem 1.8.9. W chwili przygotowywania polskiej wersji tego tekstu dostępny jest już Minecraft w wersji 1.9, który nie współpracuje z tą wersją serwera Spigot. Do czasu aktualizacji tych plików, aby móc rozwiązywać wszystkie zadania z tej książki, najlepiej uruchamiać Minecrafta w starszej wersji (przyp. tłum.).