Dokumentacja gry Kółko i Krzyżyk

04.11.2012 - Kuba 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 w kółko i krzyżyk dostępne są następujące zapytania:

CurrentTurn

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

LastMove

Zwraca parę liczb oddzielonych spacją, odpowiadających położeniu ostatnio ustawionego przez przeciwnika symbolu. Współrzędne numerowane są od 0, najpierw podawana jest współrzędna pozioma. Zgodnie ze standardem wizualizacji, pole (0, 0) znajduje się w lewym górnym rogu planszy (patrz sekcja zasady gry). W przypadku gdy jest to pierwsza tura gry, a więc nikt nie postawił jeszcze symbolu, zwracane są współrzędne -1 -1.

SymbolAt ?x ?y

Zwraca symbol znajdujący się na polu o współrzędnych (?x, ?y): myślnik ('-') jeśli pole jest puste, symbol gracza ('X' lub 'O') jeżeli zostało już zajęte przez danego gracza, lub '!' jeśli podane współrzędne nie są prawidłowe.

Board

Zwraca napis opisujący całą planszę. Jeśli plansza ma rozmiar n, to wynikiem jest n linii po n znaków oddzielonych pojedynczą spacją. Możliwe znaki to '-', 'X' i 'O', zgodnie z nomenklaturą opisaną przy poprzednim poleceniu.

Params

Zwraca dwie liczby oddzielone spacją: wielkość planszy i długość lini do ułożenia. Warto pamiętać, że pola na planszy liczone są od 0, tzn. dla planszy wielkości n prawidłowymi współrzędnymi będą liczby z zakresu od 0 do n-1.

MySymbol

Zwraca 'X' lub 'O' w zależności od tego jaki jest symbol gracza.

Komendy

W grze występuje tylko jedna komenda deklarująca postawienie symbolu na określonym polu planszy. Komendę tę można wywołać dowolnie wiele razy, jej wykonanie następuje dopiero po zakończeniu tury (odpowiedzi na zapytania nie ulegają więc zmianie). Za wiążące posunięcie przyjmuje się ostatnie poprawne wywołanie komendy.

PlaceSymbol ?x ?y

Deklaruje postawienie symbolu na polu zadanym współrzędnymi (?x, ?y).

0
Twoja ocena: Brak

Copyright © 2008-2010 Wrocławski Portal Informatyczny

design: rafalpolito.com