3.6.4. Testowanie robotów¶
3.6.4.1. Pakiet rgkit¶
Do budowania i testowania robotów używamy pakietu rgkit. W tym celu przygotowujemy
środowisko deweloperskie, zawierające bibliotekę rg
:
~$ mkdir robot; cd robot
~robot/$ virtualenv env
~robot/$ source env/bin/activate
(env):~robot$ pip install rgkit
Po wykonaniu powyższych poleceń i zapisaniu implementacji klasy Robot
np. w pliku ~/robot/robot01.py
możemy uruchamiać grę przeciwko
samemu sobie:
(env)~/robot$ rgrun robot01.py robot01.py
Jeżeli utworzymy inne implementacje robotów, np. w pliku ~/robot/robot02.py
skonfrontujemy je poleceniem:
(env)~/robot$ rgrun robot01.py robot02.py
Przydatne opcje polecenia rgrun
:
-H
– symulacja bez UI-r
– roboty wprowadzane losowo zamiast symetrycznie.
Uwaga
Pokazana powyżej instalacja zakłada użycie środowiska wirtualnego tworzonego
przez pakiet virtualenv, dlatego przed uruchomieniem symulacji,
a także przed użyciem omówionego niżej pakietu robotgame-bots trzeba
pamiętać o wydaniu w katalogu robot
polecenia:
~/robot$ source env/bin/activate
3.6.4.2. Roboty open-source¶
Swoje roboty warto wystawić do gry przeciwko przykładowym robotom
dostarczanym przez projekt robotgame-bots:
Instalacja sprowadza się do wykonania polecenia w utworzonym wcześniej katalogu robot
:
~/robot$ git clone https://github.com/mpeterv/robotgame-bots bots
Wynikiem polecenia będzie utworzenia podkatalogu ~/robot/bots
zawierającego
kod przykładowych robotów.
Listę dostępnych robotów najłatwiej użyskać wydając polecenie:
(env)~/robot$ ls bots
Aby zmierzyć się z wybranym robotem – na początek sugerujemy stupid26.py – wydajemy polecenie:
(env)~/robot$ rgrun mojrobot.py bots/stupid26.py
Od czasu do czasu można zaktualizować dostępne roboty poleceniem:
~/robot/bots$ git pull --rebase origin master
3.6.4.3. Symulator rg¶
Bardzo przydatny jest symulator zachowania robotów. Instalacja
w katalogu robot
:
~/robot$ git clone https://github.com/mpeterv/rgsimulator.git
Następnie uruchamiamy symulator podając jako parametr nazwę przynajmniej jednego robota (można dwóch):
(env)~/robot$ rgsimulator/rgsimulator.py robot01.py [robot02.py]
Symulatorem sterujemy za pomocą klawiszy:
- Klawisze kursora lub WASD do zaznaczania pól.
- Klawisz F: utworzenie robota-przyjaciela w zaznaczonym polu.
- Klawisz E: utworzenie robota-wroga w zaznaczonym polu.
- Klawisze Delete or Backspace: usunięcie robota z zaznaczonego pola.
- Klawisz H: zmiana punktów HP robota.
- Klawisz T: zmiana rundy.
- Klawisz C: wyczyszczenie planszy gry.
- Klawisz Spacja: pokazuje planowane ruchy robotów.
- Klawisz Enter: uruchomienie rundy.
- Klawisz L: załadowanie meczu z robotgame.net. Należy podać tylko numer meczu.
- Klawisz K: załadowanie podanej rundy z załadowanego meczu. Also updates the simulator turn counter.
- Klawisz P: zamienia kod robotów gracza 1 z 2.
- Klawisz O: ponowne załadowanie kodu obydwu robotów.
- Klawisz N: zmienia działanie robota, wyznacza “następne działanie”.
- Klawisz G: tworzy i usuwa roboty w punktach wejścia (ang. spawn locations), “generowanie robotów”.
Wskazówka
W Linuksie warto utworzyć sobie przyjazny link do wywoływania symulatora.
W katalogu robot
wydajemy polecenia:
(env)~/robot$ ln -s rgsimulator/rgsimulator.py symuluj
(env)~/robot$ symuluj robot01.py [robot02.py]
Informacja
Niniejsza dokumentacja jest nieautoryzowanym tłumaczeniem oficjalnej dokumentacji dostępnej na stonie RobotGame, a także RobotGame – rgkit. Opis działania symulatora robotów przetłumaczono na podstawie strony projektu Rgsimulator.
Materiały Python 101
udostępniane przez
Centrum Edukacji Obywatelskiej na licencji
Creative Commons Uznanie autorstwa-Na tych samych warunkach 4.0 Międzynarodowa.
Utworzony: | 2022-05-22 o 19:52 w Sphinx 1.5.3 |
---|---|
Autorzy: | Patrz plik “Autorzy” |