Narzędzia użytkownika

Narzędzia witryny


Pasek boczny

sk2:projekt_przykladowy_opis

Przykładowy opis projektu

Przykładowy opis projektu został celowo napisany dla projektu o złożoności programistycznej większej niż typowo oczekiwana w projektach na SK2.

===== Kalambury przez sieć ===================================================

Opis:

Gracz łączy się do serwera i wysyła swój nick (jeśli nick jest już zajęty,
serwer prosi o podanie innego nicku).

Gracz po wybraniu nicku trafia do lobby, w którym widzi bieżącą listę pokoi
i ilość graczy która jest w każdym pokoju.

Z lobby gracz może wejść do istniejącego pokoju lub założyć nowy. Gracz może
w każdej chwili wrócić z pokoju do lobby.

Jeśli w pokoju trwa gra, gracz dołącza jako zgadujący. Jeśli nie, gracz widzi
listę graczy którzy są w pokoju i czeka na rozpoczęcie gry.

Grę może rozpocząć gracz który najdłużej czeka w pokoju, pod warunkiem że w
pokoju jest przynajmniej trzech graczy.

Gracz który rozpoczął grę staje się pokazującym. Pokazujący wysyła do serwera
jakie hasło będzie pokazywać. Jeśli tego nie zrobi w określonym czasie,
kolejny z listy graczy staje się pokazującym.

Po przekazaniu hasła do serwera, kamera gracza pokazującego jest przesyłana
przez serwer do zgadujących (pozostałych graczy). Zgadujący widzą ile słów
jest w haśle.

Zgadujący mogą wpisywać pojedyncze słowa z odgadywanego hasła. Każde wpisane
słowo jest widziane przez wszystkich graczy. Jeśli słowo jest w haśle, gracz
który je odgadł dostaje punkt, a słowo jest wpisywane we właściwe miejsce w
haśle u wszystkich graczy. Jeśli kilku graczy wpisało to samo słowo (przed
wyświetleniem go na swoich ekranach), to każdy dostaje punkt.

Kiedy całe hasło zostało odgadnięte, lub kiedy upłynął określony czas, lub
kiedy rozłączył się pokazujący, kolejny gracz z listy graczy zostaje
pokazującym.

Gra trwa do momentu aż w pokoju jest przynajmniej trzech graczy. Gracze na
bieżąco widzą ranking graczy z punktami (ilością odgadniętych słów), włączając
w to też graczy którzy rozłączyli się z gry.

Poniżej informacje których nie chcę dostawać w mailu, a mogą być pomocne przy tworzeniu opisu:

Opis musi spełniać wymagania ze strony:

  • "interakcja klientów ze sobą" → oczywiste,
  • "konieczność obsłużenia wielu klientów naraz" → np. czekamy na słowo od wielu graczy,
  • "konieczność rozwiązania konfliktów" → np. gracz chce rozpocząć grę, ale z pokoju właśnie wyszedł jeden z trzech graczy; albo: gracz wybrał słowo do odgadywania, ale do serwera przyszło ono po tym jak minął wyznaczony na to czas i już inny gracz jest pokazującym,
  • "ma działać w sieciach rozległych…" → np. obsługa co jeśli kilku graczy wpisało to samo słowo przed wyświetleniem go na swoich ekranach, czy obsługa konfliktów opisanych powyżej
  • "ma uwzględniać że użytkownicy mogą…" → określenie co dzieje się gdy gracz trafia do trwającej gry; co dzieje się gdy pokazujący opuści grę etc.
  • w takim projekcie "parametr konfiguracyjne" to np. czas na wymyślanie i odgadywanie hasła i to pasuje do pliku konfiguracyjnego
  • "w interaktywnych projektach…" - gracze w lobby widzą bieżący stan pokoi, w grze widzą odgadywane przez innych słowa, widzą na bieżąco ranking etc.

Czego nie ma być w opisie:

  • informacji o językach czy technologiach, np: "klienta napiszemy w CLISP", "GUI będzie używać biblioteki Motif", "będziemy budować używając bjam", "do obsługi webcamów użyjemy biblioteki v4l",
  • szczegółów architektury programu, np: "użyjemy pętli zdarzeń", "serwer będzie przesyłał do klientów w lobby listę pokoi przy każdej zmianie listy",
  • informacji o użytych funkcjach w kodzie, np: "będziemy używać epoll",
  • niedookreślonego zachowania, np: "jeszcze się zastanawiamy czy…", "rozważamy też możliwość…".
    Zdania typu "pokazujący będzie używał albo kamerki albo rysować na tablecie" będą odczytywać jako: program umożliwi pokazującemu wybór czy używa kamerki czy tabletu.

Ważne: proszę pamiętać że ocena jest wystawiana na podstawie tego, czy zrealizowaliście opis projektu. Jeśli wpiszecie w opis że wspieracie wiele pokoi ale tego nie będzie, to ten sam projekt będzie gorzej oceniony niż gdyby w opisie była informacja że serwer obsługuje jedną grę naraz.
Staram się żeby z Waszych opisów wynikał podobny poziom trudności projektu. Stąd czasami w odpowiedzi na opis poproszę o dodanie do niego czegoś więcej lub odpiszę że niektórych fragmentów nie będę wymagać.
Jeśli opis jest za mało dokładny lub niejasny, wtedy zawsze będę prosił o dopracowanie go.

sk2/projekt_przykladowy_opis.txt · ostatnio zmienione: 2020/11/21 13:27 przez jkonczak