Dokumentacja gry Karciane Potyczki Magów

20.01.2013 - Kuba Kowalski
Trudność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. Warto zwrócić uwagę, że niektóre zapytania wpływają na stan gry jeśli zostaną wywołane w pierwszej turze rozgrywki.

W grze Karciane Potyczki Magów dostępne są następujące zapytania:

ResourcesLeft

W pierwszej turze zwraca liczbę zasobów które pozostały graczowi. Podczas innych tur zwraca 0.

CardsLeft

W pierwszej turze zwraca liczbę kart które gracz musi jeszcze kupić. Podczas innych tur zwraca 0.

Buy ?c

Kupuje kartę o identyfikatorze ?c. Zwraca 1 jeśli operacja się udała, w przeciwnym przypadku 0. Przyczyną niepowodzenia może być wywołanie zapytania w innej turze niż pierwsza, zły identyfikator karty, brak zasobów lub skompletowanie całej talii.

BuyMany ?c ?n

Działa jak n-krotne wywołanie metody Buy ?c. Zwraca liczbę kart, które zostały poprawnie kupione.

UndoBuy ?c

Usuwa kartę o identyfikatorze ?c z puli już kupionych kart. Zwraca 1 jeśli operacja się udała, w przeciwnym przypadku 0. Przyczyną niepowodzenia może być wywołanie zapytania w innej turze niż pierwsza lub nieposiadanie karty o podanym identyfikatorze.

Cards

W pierwszej linii zwraca liczbę n wszystkich możliwych do kupienia kart, a następnie n linii opisujących kolejno karty. Każda karta jest opisana w następujący sposób: identyfikator karty [spacja] wartość [spacja][przecinek][spacja] nazwa karty [spacja][przecinek][spacja] modyfikatory rzucającego [spacja][przecinek][spacja] modyfikatory celu [nowa linia]

Modyfikatory rzucającego to sześć liczb oddzielonych spacjami stanowiących modyfikatory kolejnych atrybutów maga, natomiast modyfikatory celu to siedem oddzielonych spacjami liczb. Pomiędzy modyfikatorem życia oraz many znajduje się dodatkowy modyfikator życie×moc.

Wynik tego polecenia (opis pełnej puli kart zakodowanej w powyższym formacie) został w całości przedstawiony w rozdziale przykłady rozgrywki.

NumberOfPlayers

Zwraca liczbę zawodników biorących udział w grze.

Identifier

Zwraca pojedynczą liczbę - identyfikator bota w rozgrywce.

GameMode

Metoda zwraca tryb gry w którym toczy się rozgrywka: napis SimpleDuel dla prostego pojedynku, TeamDuel dla pojedynku drużynowego oraz AllForAll dla trybu każdy na każdego.

Turn

Zwraca numer tury gry. Dla tury kupowania kart wartość ta wynosi 0.

Magicians

Zwraca tyle linii ilu jest magów w grze, a w każdej z nich opisuje aktualny stan maga. Magowie są opisani w następujący sposób: identyfikator maga [spacja][przecinek][spacja] wartości atrybutów [spacja][przecinek][spacja] trzymane karty [nowa linia]

Wartości atrybutów to sześć oddzielonych spacjami liczb równych kolejnym atrybutom maga. Trzymane karty to oddzielone przecinkami identyfikatory kart które mag trzyma aktualnie w ręce. Kart tych jest maksymalnie 5, ale w niektórych przypadkach może być ich mniej (np. pod koniec rozgrywki lub w turze kupowania talii).

Teams

W pierwszej linii zwraca liczbę drużyn. Po tym, w kolejnych liniach wypisane są drużyny czyli oddzielone spacjami identyfikatory tych graczy którzy są razem. W przypadku trybów "niedrużynowych" oczywiście jest tyle drużyn ilu graczy.

UsedCards

Metoda zwraca akcje jakie wykonali magowie od ostatniego ruchu maga wywołującego metodę (łącznie z prawdziwym efektem jego własnego wyboru po ewentualnych modyfikacjach systemu - patrz poniższa sekcja o komendach). Zwracanych jest tyle linii ilu zawodników w rozgrywce, a każda z linii zawiera trzy liczby oddzielone spacjami: identyfikator maga rzucającego czar, identyfikator rzucanej karty, identyfikator celu (jeśli wartość jest mniejsza od 1 to karta została wyrzucona).

Chat ?q

Pozwala na powiedzenie przez maga frazy ?q, która będzie widoczna w wizualizacji rozgrywki. W trakcie gry programy graczy nie mają dostępu do tego co powiedzieli inni. Metoda zawsze zwraca liczbę 1 i może być wywoływana wielokrotnie w trakcie jednej tury przy czym wyświetlony zostanie jedynie argument ostatniego wywołania. Aby przekazać wiadomość dłuższą niż jeden wyraz należy podać treść wiadomości w podwójnym cudzysłowie.

Komendy

W grze występują trzy komendy, przy czym dwie z nich są jedynie uproszczonymi wersjami podstawowej komendy, czyli Cast.

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 lub wysłanie jej z nieprawidłowymi argumentami skutkuje wywyłaniem Throw na losowej karcie gracza (a więc wyrzuceniem do śmieci losowej karty z ręki).

Throw ?c

Deklaruje wyrzucenie z ręki karty o identyfikatorze ?c. Jeśli gracz nie posiada podanej karty to wyrzucana jest losowa karta z ręki.

Use ?c

Deklaruje rzucenie na siebie karty z ręki o identyfikatorze ?c. Jeśli gracz nie posiada podanej karty to wyrzucana jest losowa karta z ręki. Jeśli mag gracza nie spełnia odpowiednich wymagań i nie może rzucić wybranego czaru, to karta jest ona wyrzucana do śmieci.

Cast ?c ?m

Deklaruje rzucenie na gracza o numerze ?m karty o identyfikatorze ?c. Jeśli gracz nie posiada podanej karty to wyrzucana jest losowa karta z ręki. Jeśli nie spełnia odpowiednich wymagań i nie może rzucić wybranej karty to jest ona wyrzucana do śmieci. W przypadku gdy w grze nie bierze udziału mag o numerze ?m wybrana karta jest wyrzucana (tak więc wywołaniu Throw ?c odpowiada Cast ?c 0).

0
Twoja ocena: Brak

Copyright © 2008-2010 Wrocławski Portal Informatyczny

design: rafalpolito.com