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.


Licencja Creative Commons 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”