Dokumentacja gry Skarb Labiryntu

19.01.2013 - Jakub Kowalski
Trudność

Protokół komunikacji

W trakcie trwania tury komunikacja z grą odbywa się za pomocą zapytań i komend, czyli komunikatów wypisanych na standardowe wyjście i zakończonych znakiem nowej linii. Aby zakończyć turę bot musi wysłać specjalny komunikat #END. Wszystkie instrukcje po wysłaniu tego komunikatu będą miały miejsce w kolejnej turze gry.

Zapytania

Zapytania są to polecenia na które system natychmiast wysyła odpowiedź (zakończoną znakiem nowej linii) na standardowe wejście programu. W grze Skarb labiryntu dostępne są następujące zapytania:

Clock

Zwraca pojedynczą liczbę oznaczająca numer aktualnej tury (liczone od 1).

WithMap

Zwraca napis Yes jeśli gra jest rozgrywana w trybie z mapą, lub No w przeciwnym wypadku.

MazeSize

Zwraca pojedynczą liczbę będąca rozmiarem mapy wraz z obrzeżami. Jeśli rozmiar labiryntu podany podczas tworzenia rozgrywki wynosi n, to zapytanie zwraca wartość n+2.

AdventurerPosition

Zwraca dwie liczby oddzielone spacją, kolejno współrzędne x i y pola na którym znajduje się poszukiwacz przygód.

MazeMap

Dopuszczalność polecenia: poszukiwacz - tryb z mapą, architekt - dowolny tryb.

Zwraca widok całego labiryntu. Dla mapy której rozmiar (odpowiedź na zapytanie MazeSize) wynosi n, polecenie zwraca n linii w których znajduje się po n symboli oddzielonych pojedynczymi spacjami. Symbole te oznaczają zawartość danego pola na planszy, zgodnie z legendą:

  • A - poszukiwacz przygód
  • T - skarb
  • O - przeskoda
  • - - puste pole
FieldOfView

Przedstawia widok labiryntu w promieniu wzroku poszukiwacza przygód (2 pola). Bez względu na jego położenie, polecenie zwraca pięć linii, po pięć, oddzielonych pojedynczymi spacjami, symboli w każdej. Oznaczenia symboli są takie same jak przy poleceniu MazeMap, przy czym pole znajdujące się poza labiryntem jest traktowane jak ściana. Środkowym symbolem jest zawsze symbol poszukiwacza przygód.

Komendy

W grze występują dwie komendy - jedna przeznaczona dla poszukiwacza a druga dla architekta.

Komendy można wywołać dowolnie wiele razy, za wiążące posunięcie przyjmuje się ostatnie wywołanie. Wykonanie komendy następuje dopiero po zakończeniu tury (odpowiedzi na zapytania nie ulegają więc zmianie). Zakończenie tury bez wysłania jakiejkolwiek komendy jest zgodne z zasadami (w takim przypadku gracz po prostu nie modyfikuje sytuacji na planszy, w statystykach jest to traktowane jako zbędny ruch).

MakeStep ?d

Dopuszczalność polecenia: tylko poszukiwacz.

Deklaruje przemieszczenie poszukiwacza na sąsiednie pole zgodnie z podanym w parametrze kierunkiem. Kierunki zakodowane są jako liczby w następujący sposób:

  • 0 - północ
  • 1 - wschód
  • 2 - południe
  • 3 - zachód

Podanie wartości innej niż wymienione powyżej nie powoduje błędu, a jedynie jest traktowane w statystykach jako zbędny ruch.

PlaceObstacle ?x ?y

Dopuszczalność polecenia: tylko architekt.

Deklaruje postawienie przeszkody na polu zadanym współrzędnymi (?x, ?y). Podanie nieprawidłowych współrzędnych mapy oraz próba postawienia przeszkody na polu blokującym drogę lub zbyt blisko poszukiwacza/skarbu, skutkuje nie postawieniem żadnej przeszkody i jest traktowane w statystykach jako zbędny ruch.

0
Twoja ocena: Brak

Copyright © 2008-2010 Wrocławski Portal Informatyczny

design: rafalpolito.com