Program zaliczeniowy
Należy napisać program, realizujący pewną grę. Gra toczy się na planszy podzielonej na kwadratowe pola.
Niektóre z tych pól są wolne, tzn. można się po nich przemieszczać, a niektóre są niedostępne (ściany).
Po planszy porusza się gracz, który może w każdym ruchu przemieścić się na jedno z sąsiednich pól,
pod warunkiem, że jest ono dostępne. Celem gracza jest odnalezienie skarbu, który znajduje się na jednym z pól.
Sterowanie graczem odbywa się przez wprowadzanie komend z klawiatury. Plansza powinna być wyświetlana w trybie
tekstowym przy pomocy znaków; po każdym ruchu plansza powinna się zaktualizować. Należy zadbać o to, odróżniać pola
puste (można je wyświetlać np. jako znak .) od pól niewidocznych - zasłoniętych przez ściany z perspektywy gracza
(wyświetalnych jako np. jako spacje).
Program powinien umożliwiać wczytanie planszy z pliku tekstowego wybranego przez użytkownika.
Gra powinna również posiadać dodatkowe atrakcje, pozostawione do wyboru twórcy programu, np.
- Obszar gry może składać z wielu połączonych plansz.
- Niektóre przejscia mogą być zablokowane przez drzwi, które można otworzyć przy pomocy kluczy.
- Na planszy mogą znajdować się inne stworzenia (przyjazne bądź nie wobec gracza).
Wszystkie dodatkowe elementy gry należy opisać w dokumentacji.
Dodatkowe wymaganie
Program powinien używać klas - co najmniej klasy reprezentującej planszę.
Na co należy zwrócić uwagę:
- W przypadku użycia częsci kodu, który nie został napisany samodzielnie należy to jawnie zadeklarować.
- Plansza nie musi być ładna, ale powinna być czytelna.
- Kod programu powinien być czytelny i starannie skomentowany.
Kryteria oceny
- Poprawność działania. (2 pkt.)
- Użycie klas. (1 pkt.)
- Kod programu. (1 pkt.) - czytelność i opis kodu, podział na funkcje i klasy.
- Funkcje dodatkowe. (2 pkt.)
Rozwiązanie powinno zawierać:
- pliki źródłowe programu,
- dokumentację, zawierającą opis formatu, w jakim zapisane są plansze, oraz opis dodatkowych elementów gry,
- kilka przykładowych plansz.
Rozwiązania należy nadsyłać na adres ziemians@mimuw.edu.pl w terminie do 30 czerwca.
Powodzenia
Krzysztof Ziemiański