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
.
Uwaga
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.
Informacja
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: | 2022-05-22 o 19:52 w Sphinx 1.5.3 |
---|---|
Autorzy: | Patrz plik “Autorzy” |