3.6.3. Biblioteka rg¶
Gra robotów udostępnia bibliotekę ułatwiającą programowanie. Zawarta jest
w module rg, który importujemy na początku pliku instrukcją import rg.
Attention
Położenie robota (loc) reprezentowane jest przez tuplę (x, y).
3.6.3.2. rg.wdist(loc1, loc2)¶
Zwraca różnicę w ruchach między dwoma położeniami. Ponieważ robot nie może
poruszać się na ukos, jest to suma dx + dy.
3.6.3.3. rg.loc_types(loc)¶
Zwraca listę typów położeń wskazywanych przez loc. Możliwe wartości to:
invalid– poza granicami planszy(np. (-1, -5) lub (23, 66));normal– w ramach planszy;spawn– punkt wejścia robotów;obstacle– pola, na które nie można się ruszyć (szare kwadraty).
Metoda nie ma dostępu do kontekstu gry, np. wartość obstacle nie oznacza,
że na sprawdzanym kwadracie nie ma wrogiego robota; wiemy tylko, że dany
kwadrat jest przeszkodą na mapie.
Zwrócona lista może zawierać kombinacje wartości typu: ['normal', 'obstacle'].
3.6.3.4. rg.locs_around(loc, filter_out=None)¶
Zwraca listę położeń sąsiadujących z loc. Jako drugi argument
filter_out można podać listę typów położeń do wyeliminowania.
Dla przykładu: rg.locs_around(self.location, filter_out=('invalid', 'obstacle'))
– poda listę kwadratów, na które można wejść.
3.6.3.5. rg.toward(current_loc, dest_loc)¶
Zwraca następne położenie na drodze z bieżącego miejsca do podanego. Np. poniższy kod:
import rg
class Robot:
def act(self, game):
if self.location == rg.CENTER_POINT:
return ['suicide']
return ['move', rg.toward(self.location, rg.CENTER_POINT)]
– skieruje robota do środka planszy, gdzie popełni on samobójstwo.
3.6.3.7. rg.settings¶
Specjalny typ słownika (AttrDict) zawierający ustawienia gry.
rg.settings.spawn_every– ilość rozegranych rund od wejścia robota do gry;rg.settings.spawn_per_player- ilość robotów wprowadzonych przez gracza;rg.settings.robot_hp– domyślna ilość punktów HP robota;rg.settings.attack_range– tupla (minimum, maksimum) przechowująca zakres uszkodzeń wyrządzonych przez atak;rg.settings.collision_damage– uszkodzenia wyrządzone przez kolizję;rg.settings.suicide_damage– uszkodzenia wyrządzone przez samobójstwo;rg.settings.max_turns– liczba rund w grze.
3.6.3.8. Czy w danym położeniu jest robot¶
Ponieważ struktura game.robots jest słownikiem robotów, w którym kluczami
są położenia, a wartościami roboty, można użyć testu (x, y) in game.robots,
który zwróci True, jeśli w danym położeniu jest robot, lub Flase
w przeciwnym razie.
Note
Niniejsza dokumentacja jest nieautoryzowanym tłumaczeniem oficjalnej dokumentacji dostępnej na stonie RobotGame.
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: | 2017-09-08 o 19:38 w Sphinx 1.4.5 |
|---|---|
| Autorzy: | Patrz plik “Autorzy” |