Program zaliczeniowy

Należy napisać program, który umożliwia edycję i grę w gry planszowe opisanego poniżej rodzaju. W grze uczestniczy pewna ilość graczy (można założyć, że nie więcej niż 10); każdy z nich dysponuje jednym pionkiem. Na planszy znajduje się określona liczba pól ponumerowanych od 0 do n; pole nr 0 to START, a pole nr n to META. Na początku gry wszystkie pionki znajduję się na polu START. Gracze wykonują kolejno ruchy polegające na rzucie kostką sześcienną i przesuwają pionki do przodu o wylosowaną liczbę pól. Na planszy mogą znajdować się specjalne pola, których odwiedzenie ma pewnien dodatkowy efekt, np.

W przypadku wizyty na polu specjalnym powinien wyświetlić się komunikat opisujący wydarzenie do jakiego doszło w trakcie gry. Mile widziana jest obsługa innych rodzajów specjalnych pól. Gra kończy się, gdy jeden z pionków znajdzie się na polu META, a jego posiadacz zostaje zwycięzcą.

Działanie programu

Program powinien zapytać o nazwę pliku z opisem planszy, na której rozegrana będzie gra oraz o liczbę uczestniczących graczy. Następnie kolejni gracze wykonują ruchy, a po każdym ruchu na ekranie powinna pojawić się plansza z aktualnym stanem gry. Rzut kostką powinien być wykonywany (do wyboru przez użytkownika) albo przez komputer albo przez graczy, a wynik (tj. liczbę oczek na kostce) wprowadzany do komputera z klawiatury. Format pliku (tzn. sposób w jaki opisana jest plansza) wybierany jest przez piszącego program, a wraz z rozwiązaniem należy zamieścić jego opis (tak, aby użytkownik mógł tworzyć własne plansze). Zalecam załączenie kilku stworzonych samodzielnie plansz (tak na wszelki wypadek). Powinna być możliwość zapisania gry w dowolnym momencie do pliku, a następnie wznowienia jej po ponownym uruchomieniu programu.

Dodatkowe wymaganie

Program powinien zawierać (i wykorzystywać) klasę, której obiekty reprezentują plansze.

Na co należy zwrócić uwagę:

  1. W przypadku użycia częsci kodu, który nie został napisany samodzielnie należy to jawnie zadeklarować.
  2. Plansza nie musi być ładna, ale powinna być czytelna.

Kryteria oceny

  1. Poprawność działania. (2 pkt.)
  2. Użycie klas. (1 pkt.)
  3. Kod programu. (2 pkt.) - czytelność i opis kodu, podział na funkcje i klasy.
  4. Funkcje dodatkowe. (1 pkt.) - np. możliwość edycji plansz z programu, obsługa bardziej rozbudowanych plansz, itp. Jeśli program zawiera funkcje dodatkowe, należy je opisać.
Rozwiązanie powinno zawierać: Rozwiązania należy nadsyłać na adres ziemians@mimuw.edu.pl w terminie do 15 lutego.
Powodzenia
Krzysztof Ziemiański