Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Literowki #102

Merged
merged 4 commits into from
Mar 13, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Dokumentacja/DiagramyKlas/Agent.tex
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ \subsubsection{Agent}
\method[public int]{penaltyTime}{Czas kary.}
\method[public Team]{team}{Enum drużyny, w której jest gracz.}
\method[public bool]{isLeader}{Zmienna informująca czy gracz jest liderem zespołu.}
\method[public bool]{havePiece}{Zmienna informująca czy gracz jest w posiadaniu piece'a.}
\method[public bool]{hasPiece}{Zmienna informująca czy gracz jest w posiadaniu piece'a.}
\method[{public Field[,]}]{board}{Tablica dwuwymiarowa przechowująca planszę z perspektywy gracza.}
\method[{public Tuple<int,int>}]{position}{Współrzędne pola na planszy, na którym stoi gracz.}
\method[{public List<int>}]{waitingPlayers}{Lista id graczy oczekujących na odpowiedź.}
Expand All @@ -28,7 +28,7 @@ \subsubsection{Agent}
\method{RequestResponse()}{Metoda wywoływana na przyjście wiadomości z prośbą o wymianę informacji. Zapamiętuje parametry gracza który poprosił informację do listy \textit{waitingPlayers}. W przypadku gdy ten gracz był liderem wywołuje metodę \textit{GiveInfo()}}
\method{CheckPiece()}{Metoda sprawdzająca czy fragment to fragment fikcyjny. Wysyła zapytanie do GM i w zależności od odpowiedzi aktualizuje stan wiedzy agenta.}
\method[public void]{AcceptMessage()}{Metoda pobierająca informacje od serwera komunikacyjnego.}
\method{MakeDecisionFromStrategy()}{Metoda, która wywołuje metodę z obiektu strategy. Wywoływana jest okresowo i to ona decuduje o akcjach wykonywanych przez agenta. Używa IStrategy.}
\method{MakeDecisionFromStrategy()}{Metoda, która wywołuje metodę z obiektu strategy. Wywoływana jest okresowo i to ona decyduje o akcjach wykonywanych przez agenta. Używa IStrategy.}
\method[private void]{Communicate()}{Metoda wysyłająca wiadomości do serwera komunikacyjnego. Używana przez metody wykonujące akcje do komunikacj z GM poprzez wysłanie wiadomości do Serwera Komunikacyjnego}
\method[private void]{Penalty()}{Metoda czekająca przez okres kary. Po odczekaniu kary wywołuje generowanie kolejnej akcji.}
\end{methods}
Expand Down
2 changes: 1 addition & 1 deletion Dokumentacja/DiagramyKlas/DiagramyKlas.tex
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
\section{Diagramy Klas}
W diagramach klas zostały pominięte klasy odpowiedzialne za obsługę połączeń TCP.
Jest to zabieg celowy. Nie chcemy narzucać implementacji obsługi połączeń, aby
nie ograniczać wyboru API. Klasy posiadają specjale metody puliczne \textbf{AcceptMessage},
nie ograniczać wyboru API. Klasy posiadają specjalne metody puliczne \textbf{AcceptMessage},
do których należy przekazać odebraną na porcie wiadomość i które implementują
logikę biznesową. Z anaglogicznego powodu nie narzucamy implementacji interfejsów
odpowiedzialnych za wysyłanie wiadomości.
Expand Down
10 changes: 5 additions & 5 deletions Dokumentacja/DiagramyKlas/GM.tex
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ \subsubsection{Player}
\paragraph{Zmienne}
\begin{methods}
\method[private Int]{id}{Identyfikator gracza}
\method[private Int]{messageCorellationId}{Id nadane graczowi przez serwer komunikacyjny, służy do odsyłania wiadomości}
\method[private Int]{messageCorrelationId}{Id nadane graczowi przez serwer komunikacyjny, służy do odsyłania wiadomości}
\method[private Team]{team}{Drużyna,w której jest gracz}
\method[private Boolean]{isLeader}{Zmienna informująca czy gracz jest liderem zespołu}
\method[private Piece]{holding}{Zmienna informująca czy niesie fragment}
Expand Down Expand Up @@ -106,7 +106,7 @@ \subsubsection{NormalPiece : AbstractPiece}
\method[public int]{Put(AbstractField)}{Implementacja odwiedzającego, wywołuje Put() z AbstractField, przekazuje informację czy przyznać punkty graczowi.}
\end{methods}

\subsubsection{Interface Message SenderService}
\subsubsection{Interface MessageSenderService}
\paragraph{Metody}
\begin{methods}
\method[public void]{SendMessage()}{Wysłanie wiadomości do serwera komunikacyjnego. Używana przez Playera do wysyłania wiadomości.}
Expand All @@ -117,7 +117,7 @@ \subsubsection{GM}
\begin{methods}
\method[private readonly Dictionary<int,Player>]{players}{Słownik mapujący id gracza z wiadomości na obiekt.}
\method[{private readonly Field[][]}]{map}{Faktyczny stan planszy.}
\method[private Set<(int,int)>]{LegalKnowleadgeReplies[2]}{Zbiór par id które oznaczają, że dana odpowiedź z wymianą informacjie jest legalna, bo była poprzedzona zapytaniem.}
\method[private Set<(int,int)>]{LegalKnowledgeReplies[2]}{Zbiór par id które oznaczają, że dana odpowiedź z wymianą informacji jest legalna, bo była poprzedzona zapytaniem.}
\method[private Configuration]{conf}{Obiekt parametrów rozgrywki.}
\end{methods}

Expand All @@ -126,8 +126,8 @@ \subsubsection{GM}
\method[public void]{AcceptMessage()}{Metoda służy do obsługi wiadomości, powinna być wywoływana przez API obsługujące komunikację}
\method[private]{Discover(Field)}{Metoda oblicza wynik akcji discovery}
\method[private void]{GeneratePiece()}{Metoda generuje i rozmieszcza fragmenty na planszy.}
\method[private void]{ForwardKnowleadgeQuestion()}{Metoda przekazuje prośbę o informację do właściwego gracza.}
\method[private void]{ForwardKnowleadgeReply()}{Metoda przekazuje odpowiedź na zapytanie do właściwego gracza, jeśli odpowiedź jest legalna, czyli jeśli dana odpowiedź była poprzedzona zapytaniem.}
\method[private void]{ForwardKnowledgeQuestion()}{Metoda przekazuje prośbę o informację do właściwego gracza.}
\method[private void]{ForwardKnowledgeReply()}{Metoda przekazuje odpowiedź na zapytanie do właściwego gracza, jeśli odpowiedź jest legalna, czyli jeśli dana odpowiedź była poprzedzona zapytaniem.}
\end{methods}

\subsubsection{Enum Team}
Expand Down
124 changes: 62 additions & 62 deletions Dokumentacja/DiagramyKlas/resources/Agent.eps

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

18 changes: 9 additions & 9 deletions Dokumentacja/DiagramyKlas/resources/GM.eps

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Dokumentacja/PrzypadkiUzycia/Agent.tex
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ \subsection{Agent PU}
\begin{itemize}
\item Dołączenie do rozgrywki
\begin{itemize}
\item Odbywa się poprzez połczenie się z Serwerem Komunikacyjnym na podstwaie danych połączenia wprowadzonych przez użytkownika i wykonanie odpowiedniego zapytania do GM. Jeśli połączenie nie powiodło się, Agent kończy działanie.
\item Odbywa się poprzez połączenie się z Serwerem Komunikacyjnym na podstawie danych połączenia wprowadzonych przez użytkownika i wykonanie odpowiedniego zapytania do GM. Jeśli połączenie nie powiodło się, Agent kończy działanie.
\item Odpowiedź zwrotna może być negatywna, w tym przypadku Agent kończy działanie.
\item W przypadku odpowiedzi pozytywnej, Agent aktualizuje swoje informacje o parametrach rozgrywki na podstawie informacji otrzymanych z GM i przystępuje do oczekiwania na informację o rozpoczęciu rozgrywki, podczas którego nie wykonuje żadnych czynności.
\end{itemize}
Expand Down
2 changes: 1 addition & 1 deletion Dokumentacja/PrzypadkiUzycia/GameMaster.tex
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ \subsection{Game Master}
\end{itemize}
\item Zakończenie rozgrywki
\begin{itemize}
\item Zakończenie rozgrwki może być rezultatem trzech zdarzeń, wygraną którejś z drużyn, zarządzeniem zakończenia przez użytkownika oraz utratą połączenia z Serwerem Komunikacyjnym.
\item Zakończenie rozgrywki może być rezultatem trzech zdarzeń, wygraną którejś z drużyn, zarządzeniem zakończenia przez użytkownika oraz utratą połączenia z Serwerem Komunikacyjnym.
\item Po zakończeniu Game Master, o ile to możliwe, wysyła informacje o końcu gry do Agentów i prezentuje statystyki w interfejsie graficznym.
\end{itemize}
\end{itemize}
Expand Down
Loading