Package: scriptcraft
Co to jest Scriptcraft?Scriptcraft jest grą polegającą na zaprogramowaniu własnych jednostek
(zbieraczy minerałów, czołgów i budujących je baz) tak, aby pokonać innych
graczy. Internetowy wieloosobowy (MMORTS!) pierwowzór dostępny jest pod
adresemhttp://informatyka.wroc.pl/scriptcraft, natomiastten projekt jestjegoklonem, dzięki któremu można uruchomić Scriptcrafta na własnym
komputerze. W ten sposób można szybko przetestować programy swoich
jednostek, zanim zmierzą się one z prawdziwymi graczami w internetowej wersji
Scriptcrafta!MożliwościNa razie Scriptcraft udostępnia podstawowe funkcje i możliwości:Zaimplementowana jest taka sama funkcjonalność jak w internetowej wersji –
można wysyłać wiadomości między jednostkami oraz tzw. zapytania systemowe
(zobaczdokumentację gry). Wszystkie polecenia wydawane jednostkom przez
Twoje programy są interpretowane tak samoz wyjątkiempoleceniaPROGRAM, które w chwili obecnej nie jest zaimplementowane. W zamian za
to nowo produkowane jednostki otrzymują taki sam program jaki ma baza.Dostępna jest jedna mapa (taka sama jak na tzw.szybkim świecie) o
rozmiarze 64x64.Programy można pisać w następujących językach:python,c++(dodanie
kolejnych nie jest problemem, jeśli jesteś zainteresowany – pisz); ponadto
istnieje tzw. star-program, który wykonuje polecenia wysyłane przez inną
jednostkę. Do wyboru jest także “język”outputsłużący do bezpośredniego
wydawania komend. Programy są zabijane w przypadku przekroczenia limitu
czasu, aleniesą uruchamiane w wyizolowanym środowisku.Polecenia można wydawać także przy pomocy myszki.Gry można zapisywać i wczytywać.Mapy są zapisywane w formacie tekstowym i można łatwo samemu stworzyć swoją
mapę.Dostępna jest skompilowana wersja pod Windowsa – instalacja Pythona nie jest
konieczna. Scriptcraft można zainstalować także ze źródeł (wymagany Python 2.6
lub 2.7, system Windows lub Linux).InstalacjaInstalacja pod WindowsemŚciągnijto archiwum zipi rozpakuj. Gotowe!Instalacja ze źródełPotrzebujesz Pythona w wersji 2.6 lub 2.7 (ale nie 3.x!) z zainstalowanymPILoraztcl/tk. Pod Ubuntu wystarczy wpisać w shellu:sudo apt-get install python-imaging-tk tk8.5 tk8.5-dev tcl8.5 tcl8.5-dev python-tk
sudo pip install PILPotrzebujesz także kod źródłowy zgithuba.git clone https://github.com/chrismedrela/scriptcraft.gitKrótki przewodnikKonfiguracja i uruchomienieScriptcraft do kompilacji i wykonywania programów korzysta z zewnętrznych
programów takich jak np. kompilatorg++. Aby móc programować w danym
języku, musisz wskazać jakie polecenia mają być wykonane, aby skompilować i
wykonać program w danym języku. W szczególności, aplikacja gry musi wiedzieć,
gdzie znajduje się kompilator.Pod Linuxem wystarczy sprawdzić w bashu, czy komendyg++orazpythonsą rozpoznawane, a jeśli nie są, to shell podpowie Ci, jakie pakiety musisz
doinstalować. Pamiętaj, że nie jest to wymagane, jeżeli nie zamierzasz
programować w danym języku.Pod Windowsem otwórz plik konfiguracjiconfiguration.iniznajdujący się w
głównym katalogu gry. Jest on podzielony na sekcje i każda z nich z wyjątkiem
sekcjiDEFAULTodpowiada jednemu językowi. W każdej sekcji języka, w
którym zamierzasz programować, musisz zmienić wiersze rozpoczynające się odcompileiexecuteoznaczające kolejno: polecenie kompilacji i
wykonania.Na przykład, jeżeli chcesz programować wC++, musisz znaleźć
kompilator. Jeżeli korzystasz z jakiegoś środowiska programistycznego
(np.DevCpp), to powinieneś już go mieć. Musisz znaleźć aplikację o nazwieg++.exe. Jeżeli posiadasz DevCpp zainstalowany w folderzeC:\DevCpp,
to ścieżka do kompilatora toC:\DevCpp\bin\g++.exe. W takim przypadku
sekcjaCPPplikuconfiguration.inimogłaby wyglądać tak:[CPP]
sourceextension = cpp
binaryextension = exe
compile = "C:\DevCpp\bin\g++.exe" src.cpp -o bin.exe
execute = bin.exeJeżeli zamierzasz programować w Pythonie, sprawdź czy masz go
zainstalowanego. Na dyskuC:poszukaj folderu o nazwie rozpoczynającej się
odPythoni zakończonej dwoma cyframi, np.Python26. Interpreter
Pythona znajduje się wewnątrz tego katalogu i jest nazwanyPython.exe. Jeżeli nie masz jeszcze zainstalowanego Pythona, ściągnij
instalatorstąd. Przykładowa sekcjaPYTHONpliku konfiguracji mogłaby
wyglądać tak:[PYTHON]
sourceextension = py
binaryextension = py
compile = copy src.py bin.py
execute = "C:\Python26\Python.exe" bin.pyPo dokonaniu zmian pamiętaj o zapisaniu pliku. Teraz możesz już uruchomić
grę. Pod Windowsem musisz dwukrotnie kliknąć na ikonę pliku
“scriptcraft.exe”. Jeżeli ściągnąłeś źródła, przejdź do folderu z grą i wpisz
w bashu:python runclient.pyInterfejs gryPo pojawieniu się pustego okna gry tworzymy nową grę wybierając z menuGraopcjęNowa gralub używając skrótuCtrl+n. Następnie należy dodać
graczy (opcjaDodaj gracza). Każdy gracz otrzymuje na początku bazę z
pewną ilością zmagazynowanych minerałów oraz cztery zbieracze minerałów w
okolicach złóż minerałów.Mapę można przesuwać przytrzymując lewy przycisk myszy. Rolka myszy służy do
powiększania i pomniejszania. Pojedyncze kliknięcie lewym przyciskiem myszy
służy do zaznaczania jednostek. Zaznaczonej jednostce można wydać komendę
ruchu (wokół wskazanego pola pojawia się wtedy zielony pierścień), ataku
(czerwony pierścień) lub zbierania minerałów (granatowy pierścień) poprzez
kliknięcie prawym klawiszem myszy na dowolnym polu mapy. Podwójne kliknięcie
lewym przyciskiem myszy otworzy nowe okno, gdzie można edytować kod programu
klikniętej jednostki oraz sprawdzić wynik jego kompilacji i wykonywania.W celu uruchomienia gry, musisz wybrać opcjęSymuluj jedną turę grylub nacisnąć na klawiaturze przyciskt. Możliwe jest obserwowanie
przebiegu gry “w czasie rzeczywistym”, tzn. symulując kolejne tury gry jedna
za drugą poprzez wybranie opcjiSymulacja gry w pętlilub naciśnięcie
spacji.Programowanie jednostekAby zaprogramować jednostkę, kliknij na nią dwukrotnie, a w otwartym oknie
wybierz język programowania oraz wpisz kod. Zamknij okno, zasymuluj jedną
turę gry i otwórz okno z powrotem aby sprawdzić, czy program został
skompilowany oraz co wyrzucił na wyjście. Zamiast otwierać okno możesz wskazać
jednostkę myszką i sprawdzić, jaka komenda została wydana obserwując tekst w
lewym górnym rogu.Oprócz tego jednostka może: nie mieć programu lub może mieć tzw. “star
program” polegający na odbieraniu wiadomości od innych jednostek i wykonywaniu
zawartych w nich komend. W przypadku wybrania jednej z tych dwóch opcji
zawartość pola tekstowego “Kod” jest ignorowana. Ponadto na liście języków
istnieje opcjaoutputktóra wypisuje na wyjście to, co zostałe wpisane
jako kod programu. Pozwala to na bezpośrednie wpisanie komend do wykonania.Twój program otrzymuje na wejściu informacje dotyczące sterowanej przez niego
jednostki, jej otoczenia oraz wysłane do niej wiadomości. Na wyjściu programu
powinna znaleźć się komenda oraz ewentualnie wiadomości do wysłania. Wejście
oraz sposób interpretacji wyjścia są dokładnie takie same jak w internetowej
wersji (z wyjątkiem komendyPROGRAM, która obecnie nie jest
zaimplementowana) i są opisane wdokumentacji internetowej wersji
Scriptcrafta.FAQMam problemy z instalacją lub konfiguracją. / Aplikacja eksplodowała w
powietrze. / Znalazłem błąd! / Pod Windowsem po dwukrotnym kliknięciu na
ikonę gry nic się nie dzieje.Jeżeli tylko masz czas i chęć, zgłoś ten problem do mnie. Pozwoli mi to
na ulepszenie aplikacji. Jeżeli problem nie dotyczy instalacji ani
konfiguracji, postaraj się wysłać mi także logi gry (plik.scriptcraftoraz pod Windowsemscriptcraft.exe.log).Skontaktować się ze mną możesz napolskim forum Pythona, naforum
Wrocławskiego Portalu Informatycznegolub mailowo (mój adres tochris.medrela+scriptcraft [zwierzątko] gmail.com).Czy istnieje tutorial wprowadzający w świat Scriptcrafta?Tak, na potrzeby internetowej wersji zostało opracowaneto krótkie
wprowadzenie.