Skip to content

Commit

Permalink
Merge pull request #149 from MINI-IO/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
BartoszChrostowski authored Apr 2, 2020
2 parents ace845b + ac2baf1 commit 154b910
Show file tree
Hide file tree
Showing 8 changed files with 48 additions and 13 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"$schema": "http://json-schema.org/draft-04/schema",
"type": "object",
"required":["respondingID","distances","redTeamGoalAreaInformations","blueTeamGoalAreaInformations"],
"properties": {
"respondingID": {
"type":"integer"
},
"distances": {
"type":"array",
"items": {
"type": "number"
}
},
"redTeamGoalAreaInformations": {
"type":"array",
"items": {
"type": "string",
"enum": ["IDK", "N", "G"]
}
},
"blueTeamGoalAreaInformations": {
"type":"array",
"items": {
"type": "string",
"enum": ["IDK", "N", "G"]
}
}
}
}
2 changes: 1 addition & 1 deletion Dokumentacja/DiagramyKlas/Agent.tex
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ \subsubsection{Agent}
\method[public bool]{isLeader}{Zmienna informująca czy gracz jest liderem zespołu.}
\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 Tuple<int y,int x>}]{position}{Współrzędne pola na planszy, na którym stoi gracz.}
\method[{public List<int>}]{waitingPlayers}{Lista id graczy oczekujących na odpowiedź.}
\method[{public int[]}]{teamMates}{Lista identyfikatorów graczy z naszej drużyny.}
\method[private IStrategy]{strategy}{Obiekt odpowiedzialny za używaną strategię.}
Expand Down
8 changes: 4 additions & 4 deletions Dokumentacja/DiagramyKlas/GM.tex
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ \subsubsection{Player}
\method[public void]{Discover(GM)}{Metoda wykonująca akcję odkrycia. Wykorzystuje funkcję klasy GM. Wysyła agentowi informację przez MessageSenderService.}
\method[public bool]{Put()}{Metoda odkładająca fragment w polu, w którym się znajdujemy. Korzysta z metody obiektu postion. Wysyła agentowi informację przez MessageSenderService. Zwraca true jeśli drużynie należy przyznać punkt.}
\method{SetHolding()}{Metoda przypisuje graczowi fragment.}
\method[{internal int[2]}]{GetPosition()}{Metoda pobiera współrzędne gracza.}
\method[{internal int[2]}]{GetPosition()}{Metoda pobiera współrzędne gracza, gdzie arr[0] ~ y, arr[1] ~ x }
\end{methods}


Expand All @@ -47,8 +47,8 @@ \subsubsection{Configuration}
\subsubsection{AbstractField}
\paragraph{Zmienne}
\begin{methods}
\method[private readonly Int]{x}{Współrzędna x pola na planszy.}
\method[private readonly Int]{y}{Współrzędna y pola na planszy.}
\method[private readonly Int]{x}{Współrzędna x pola na planszy. Oznacza kolumnę.}
\method[private readonly Int]{y}{Współrzędna y pola na planszy. Oznacza wiersz.}
\method[private Player]{WhosHere}{Referencja na obiekt gracza, który znajduje się na polu.}
\method[private AbstractPiece]{pieces}{Lista fragmentów położonych na tym polu.}
\end{methods}
Expand All @@ -61,7 +61,7 @@ \subsubsection{AbstractField}
\method[public bool]{PutSham(Piece)}{Metoda abstrakcyjna. Wykorzystywana przez Put(AbstractField) z ShamPiece na zasadzie \textbf{wzorca projektowego odwiedzający}. Zwraca true jeśli dane pole było bramkowe}
\method[public bool]{MoveHere(Player)}{Metoda przesuwa gracza na pole.}
\method[public bool]{ContainsPieces()}{Metoda zwraca informację czy pole zawiera fragment.}
\method[{public int[2]}]{GetPosition()}{Metoda zwraca współrzędne pola.}
\method[{public int[2]}]{GetPosition()}{Metoda zwraca współrzędne pola, gdzie arr[0] ~ y, arr[1] ~ x}
\end{methods}

\paragraph{NonGoalField : AbstractField}
Expand Down
8 changes: 6 additions & 2 deletions Dokumentacja/Komunikacja.tex
Original file line number Diff line number Diff line change
Expand Up @@ -85,15 +85,18 @@ \subsubsection{Odpowiedź na podniesienie kawałka}
\subsubsection{Odpowiedź na położenie kawałka}
\lstinputlisting[language=json]{./DefinicjeWiadomosci/GMMes/putPieceResponse.json}

\subsubsection{Wiadomość przekazująca odpowiedź na zapytanie o wymianę informacji}
\lstinputlisting[language=json]{./DefinicjeWiadomosci/GMMes/informationExchangeRespondForward.json}

\subsection{Wiadomości błędów}

\subsubsection{Błędny ruch}
\lstinputlisting[language=json]{./DefinicjeWiadomosci/Errors/invalidMove.json}

\subsubsection{Błędne odłożenie kawałka}
\subsubsection{Błąd podniesienia kawałka}
\lstinputlisting[language=json]{./DefinicjeWiadomosci/Errors/pickPiece.json}

\subsubsection{Błędne położenie kawałka}
\subsubsection{Błąd położenia kawałka}
\lstinputlisting[language=json]{./DefinicjeWiadomosci/Errors/putPieceError.json}

\subsubsection{Nie odczekanie kary}
Expand Down Expand Up @@ -136,6 +139,7 @@ \subsubsection{Wiadomości GM}
108 & Odpowiedź na zapytanie o ruch \\
109 & Odpowiedź na podniesienie kawałka \\
110 & Odpowiedź na położenie kawałka \\
111 & Wiadomość przekazująca odpowiedź na zapytanie o wymianę informacji \\
\hline
\end{tabular}

Expand Down
2 changes: 1 addition & 1 deletion Dokumentacja/PrzypadkiUzycia/Uzytkownik.tex
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ \subsubsection{Moduł GM}
\item Wymiary planszy
\item Maksymalna ilość agentów
\item Prawdopodobieństwo, że pojawiający się fragment jest fragmentem fikcyjnym
\item Częstotliwość generowania nowego fragmentu na planszy
\item Ilość fragmentów na planszy
\end{itemize}
\item Rozpoczynanie rozgrywki
\begin{itemize}
Expand Down
9 changes: 5 additions & 4 deletions Dokumentacja/Reguly.tex
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ \section{Reguły}

\textbf{Celem każdej drużyny jest skompletowanie projektu, czyli zakrycie odpowiednich pól zebranymi fragmentami. Wygrywa drużyna, która jako pierwsza zakryje wszystkie swoje pola celów.}

Projekty generowane są na początku rozgrywki, identyczne dla każdej drużyny. Pola projektu początkowo są ukryte. Agenci w trakcie rozgrywki mogą je odkryć poprzez akcję sprawdzenia wybranego pola lub położenie na niego fragmentu.
Projekty generowane są na początku rozgrywki, identyczne dla każdej drużyny. Pola projektu początkowo są ukryte. Agenci w trakcie rozgrywki mogą je odkryć tylko przez położenie na nie fragmentu.

\includeDiagram[width=0.5\textwidth]{resources/game.png}{Mapa planszy}
\subsection{Założenia ogólne}
Expand Down Expand Up @@ -57,10 +57,11 @@ \subsection{Fragmenty}
\item Na każdym polu planszy, które nie jest polem bramkowym, może znajdować się dowolna ilość fragmentów
\item Agent może podnieść fragment jedynie z pola na którym on sam się znajduje
\item Agent może trzymać maksymalnie jeden fragment
\item W każdym momencie w grze może znajdować się maksymalnie liczba fragmentów, która ustalana jest przed rozpoczęciem rozgrywki w konfiguracji
\item Fragmenty generowane są przez Game Mastera co określony interwał czasowy i odkładane na losowe pole zadań
\item Na początku rozgrywki generowana jest określona liczba fragmentów, która jest skonfigurowana przed rozpoczęciem rozgrywki
\item Fragmenty generowane są przez Game Mastera zaraz po wiadomości o odłożeniu lub zniszczeniu kawałka przez Agenta, a następnie umieszczane na losowe pole zadań
\item Fragmenty mogą być fikcyjne
\item Odłożenie fragmentu niefikcyjnego na polu bramkowym które jest celem skutkuje przyznaniem punktu drużynie do której należy dane pole bramkowe. Może nastąpić sytuacja, gdy Agent zdobywa punkt dla przeciwnej drużyny
\item Odłożenie wygenerowanego przez Game Mastera fragmentu na pole na którym znajduje się Agent, skutkuje natychmiastowym podniesieniem fragmentu przez tego Agenta, jeśli nie trzyma on już innego fragmentu. W przeciwnym przypadku fragment odkładany jest na pole
\item Odłożenie fragmentu niefikcyjnego na polu bramkowym które jest celem skutkuje przyznaniem punktu drużynie do której należy dane pole bramkowe. Natomiast żaden gracz nie może wejść na pole bramkowe drużyny przeciwnej.
\item Odłożenie fragmentu niefikcyjnego na polu bramkowym które nie jest celem zwraca informację agentowi, że cel nie został osiągnięty
\item Odłożenie fragmentu fikcyjnego na polu bramkowym zwraca informację agentowi, że dany fragment był fikcyjny oraz nie przyznaje punktów, nawet jeśli dane pole było celem
\item Cel na który został odłożony fragment niefikcyjny przestaje być celem, czyli kolejne odłożenie na nim fragmentu nie przyznaje punktów
Expand Down
2 changes: 1 addition & 1 deletion Dokumentacja/UserStories.tex
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ \subsubsection{W module GM}
\item opóźnienia między poszczególnymi czynnościami agentów
\item ilość agentów
\item prawdopodobieństwo wygenerowanie fragmentu fikcyjnego
\item częstotliwość generowania nowych celów oraz maksymalna ilość celów na planszy (wliczając obecnie podniesione fragmenty)
\item ilość fragmentów na planszy (wliczając obecnie podniesione fragmenty)
\end{itemize}
\item Chce wyświetlić planszę
\item Chce rozpocząć rozgrywkę
Expand Down

0 comments on commit 154b910

Please sign in to comment.