Skip to content

wsei-csharp201/cs-lab-Monitorowanie-pozycji-zawodnikow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

Monitorowanie pozycji zawodników

  • Autor: Krzysztof Molenda
  • Wersja: 2020-12-05

Problem

Tworzysz oprogramowanie do monitorowania przemieszczania się K zawodników (np. K=5) po wirtualnym boisku o rozmiarze N x M (np. 500x1000).

W klasie Location rejestrujesz aktualny czas oraz położenie zawodnika na boisku.

Zawodnika opisuje klasa Player - jego id oraz aktualne położenie. Zawodnik przesuwa się po boisku w różnych kierunkach (o rozsądne odległości - raz szybciej, innym razem wolniej). Zawodnik nie opuszcza boiska, czasami nie przemieszcza się. Fakt przesunięcia się zawodnika realizuje wywołanie metody ChangeLocation zaimplementowanej w klasie Player.

W klasie Tracker zapamiętujesz aktualne pozycje zawodników (dowolnej liczby). Fakt ten realizuje metoda OnLocationChange obsługująca zdarzenia zmiany miejsca zawodnika (zawodnicy zgłaszają zmiany swoich pozycji).

Zadanie

Zaimplementuj ten prosty system komunikowania się zawodników z monitorem śledzącym ich ruchy z wykorzystaniem event-ów (w projekcie typu Class Library).

Napisz prostą aplikację konsolową - symulator weryfikujący poprawność:

  • utwórz K zawodników,
  • zawodnicy rejestrują się w monitorze śledzącym ich ruchy,
  • zmuś zawodników do losowego poruszania się lub nie poruszania się (zmiany pozycji rozsądnie, bez odległych skoków) - zmiany pozycji zawodników uruchom w oddzielnych wątkach.

Po zakończeniu symulacji określ, który z zawodników pokonał największą odległość.

Zadanie dodatkowe

Zrealizuj opakowanie wizualne - w formie aplikacji okienkowej. Aplikacja powinna wyświetlać ruchy zawodników na wirtualnej planszy. Po zakończeniu może wyświetlać ścieżkę danego zawodnika. Możesz również zrealizować inne własne pomysły.

⚠️ Przykładowe wykonanie zadań znajdziesz w folderze ./example-bin - dwa pliki .exe odpowiednio dla aplikacji konsolowej i desktopowej, bazujące na kodzie wspólnej biblioteki (wymagane środowisko .Net5).


Co dalej ...

Jeśli wykonałeś powyższe proste zadanie, zrozumiałeś, jak działa komunikacja między obiektami z wykorzystaniem zdarzeń i ich obsługi.

W C#4 do .Net Framework dodano Location API: System.Device.Location.

UWAGA: Nie ma tego API w .Net Standard ani .Net Core.

W tej przestrzeni nazw zdefiniowano podobną infrastrukturę do tej z zadania.

About

Ćwiczenie na wykorzystanie event-ów w C#

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published