MSUI.PO.05/06. Zadanie zaliczeniowe z C#. Park Jurajski V Wstęp Na skutek eksperymentów genetycznych na pewnej osamotnionej, bezludnej wyspie na oceanie Spokojnym pojawiły się dinozaury. Niestety, mimo tego że nie stanowiły tu dla nikogo zagrożenia, zawisło nad nimi śmiertelne niebezpieczeństwo - ekipa filmowa kręcąca Park Jurajski V postanowiła wykorzystać je w swoim filmie. Na ratunek dinozaurom wyrusza ekspedycja, która ma za zadanie wyłapać je i przewieŸć w bezpieczne miejsce. Napisz program pozwalający graczowi zorganizować wyprawę ratunkową i pokierować jej przebiegiem. Przebieg gry Na początku gracz wybiera poziom trudności gry. Następnie za pewną kwotę pieniędzy (zależną od poziomu trudności gry) kupuje sprzęt potrzebny do przeprowadzenia ekspedycji (p. załącznik 1) oraz wynajmuje ludzi (oprócz kierownika ekspedycji, którego funkcję pełni gracz (p. załącznik 2)). Ceny kupna sprzętu i wynajmu osób są parametrem programu. Potem zaczyna się zasadnicza część gry. Ekspedycja znajduje się już w sąsiedztwie bazy położonej na brzegu wyspy. Nie ma mapy wyspy, a ze względu na złe warunki atmosferyczne, nie może używać samolotów. Zatem na razie członkowie ekspedycji znają tylko zarys brzegów wyspy, nie wiedzą natomiast jak jest ukształtowany teren na wyspie. Mogą jedynie przypuszczać, że napotkają formy terenu znane im z podobnych wysp (p. załącznik 3). W kolejnych turach gry członkowie ekspedycji poruszają się zgodnie z rozkazami wydawanymi drogą radiową przez jej kierownika. Wchodząc na nowy teren poznają jego ukształtowanie (wraz z sąsiedztwem o promieniu będącym parametrem gry, p. też opis DD) i przekazują informacje o terenie kierownikowi, widzą też dinozaury (p. załącznik 4) znajdujące się na tym terenie. Gdy członkowie ekspedycji opuszczą jakiś teren, to oczywiście kierownik ekspedycji nadal pamięta jego ukształtowanie (powinno ono nadal być widoczne na ekranie), ale ani on, ani członkowie ekspedycji nie widzą już dinozaurów chodzących po tym terenie - o ile nie ustawią DD (p. załącznik 1). Program powinien inaczej wyświetlać teren znany, ale obecnie nie oglądany, a inaczej teren aktualnie oglądany. Gracz wygrywa grę, jeśli uda mu się schwytać i przewieŸć do bazy wszystkie dinozaury w zadanym (zależnym od poziomu gry) czasie i nie zostanie zjedzony (w postaci kierownika) przez dinozaura. Uwagi techniczne: Plansza gry jest reprezentowana jako szachownica. Jedno jej pole to jedna forma terenu. Pola sąsiednie, to pola stykające się bokami bądŸ wierzchołkami. Na jednym polu może stać co najwyżej jeden obiekt ruchomy (członek ekspedycji, maszyna, dinozaur). Cała plansza ma się mieścić na ekranie (dzięki temu nie ma potrzeby jej przewijania). Plansza może być (wg uznania programisty): ? generowana losowo (z parametrami oznaczającymi procent udział rzek itp.), ? wczytywana z pliku. Program powinien umożliwiać zapisywanie i odczytywanie stanu gry. Zjedzenie członka ekspedycji przez dinozaura następuje wtedy, gdy dinozaur wejdzie na pole, na którym dotąd był członek ekspedycji. Złapanie dinozaura następuje wtedy, gdy na co najmniej dwu sąsiadujących z nim polach staną CD. Podczas karczowania lasu (budowania mostu) MKL (MBM) stoi na karczowanym terenie (tzn. wjazd MKL na pole z lasem oznacza początek karczowania, analogicznie dla MBM). Dostarczenie zaopatrzenia przez TT polega na podjechaniu przez TT na pole sąsiadujące z odbiorcą transportu i wydaniu przez gracza komendy rozładuj (z ew. wskazaniem, o którego z sąsiadujących odbiorców chodzi, jeśli jest ich kilku). Szybkość członków ekspedycji jest mierzona w przechodzonych polach (w poziomie, pionie i na ukos) na jedna kolejkę gry i zależy od rodzaju terenu. Parametry wymieniane w treści zadania powinny dawać się łatwo zmieniać co najmniej przez modyfikację treści programu. Załącznik 1. Sprzęt używany przez ekspedycję. ? Detektory dinozaurów (DD). Są dość lekkie, zwykli członkowie ekspedycji mogą przenosić je po kilka (dokładna liczba jest parametrem programu), rozstawiać je na płaskim terenie i zabierać je. DD wykrywa wszelkie dinozaury znajdujące się w pewnym (parametr programu) promieniu od niego i przekazuje tę informację do kierownika ekspedycji. Uwaga, DD nie potrafi obserwować przez las i skały (tzn. widzi tylko brzeg lasu na głębokość jednego pola i brzeg obszaru skał, też na głębokość jednego pola). To samo ograniczenie dotyczy członków ekspedycji. Wspinacze i pływacy mogą wziąć tylko po jednym DD. ? Transportery towarów (TT). Pojazdy poruszające się po równym terenie, mostach i drogach wykarczowanych w lesie. Potrafią przewozić zapasy paliwa, materiały do budowy mostów, DD (maksymalna liczba przewożonych ładunków jest parametrem programu) oraz co najwyżej kilka (parametr programu) złapanych dinozaurów. Złapane dinozaury przewożą do bazy i tam wyładowują. Prędkość i zużycie paliwa - parametry programu. TT nie może przewozić dwu lub więcej rodzajów towaru naraz. Zapasy paliwa i materiałów (wystarczające na całą grę) znajdują się w bazie. ? Maszyny budujące mosty (MBM). Maszyny budujące mosty przez rzeki. Potrafią się poruszać po równym terenie, mostach i drogach wykarczowanych w lesie. Do budowy mostu potrzebują materiałów dowożonych przez TT z bazy. Ilość materiału potrzebna do zbudowania mostu, czas budowy, prędkość i zużycie paliwa - parametry programu. ? Maszyny karczujące las (MKL). Maszyny budujące drogi przez las. Potrafią się poruszać po równym terenie, mostach i drogach wykarczowanych w lesie. Prędkość i zużycie paliwa - parametry programu. ? Chwytacze dinozaurów (CD). Lekkie maszyny służące do łapania dinozaurów. Ponieważ złapanie biegnącego dinozaura jest bardzo trudne, czynność taka wymaga dwu CD. Po schwytaniu dinozaura oba CD nie mogą się ruszać, póki nie załadują go na TT. Potrafią się poruszać po równym terenie, mostach i drogach wykarczowanych w lesie. Prędkość i zużycie paliwa - parametry programu. Załącznik 2. Ludzie biorący udział w ekspedycji. ? Zwykli członkowie ekspedycji: Poruszają się pieszo, mogą chodzić po równym terenie, mostach, drogach wykarczowanych w lesie i przedzierać się przez las. Mogą przenosić DD (p. opis DD). W przypadku napotkania drapieżnego dinozaura są zjadani. Szybkość - parametr programu. ? Wspinacze: Podobni do zwykłych członków ekspedycji, tyle że potrafią przenosić co najwyżej jeden DD (p. opis DD), a za to potrafią chodzić po skałach. Szybkość na skałach - parametr programu. ? Pływacy: Podobni do zwykłych członków ekspedycji, tyle że potrafią przenosić co najwyżej jeden DD, a za to potrafią przepływać rzeki. Szybkość pływania - parametr programu. ? Kierownik ekspedycji: podobny do zwykłych członków ekspedycji, tyle że zjedzenie go przez dinozaura oznacza przegraną i koniec gry. Oczywiście jest tylko jeden. Porusza się wolniej niż pozostali członkowie ekspedycji. Szybkość - parametr programu. ? Obsługa maszyn (poza bezobsługowymi DD): nie wychodzi podczas gry z maszyn, więc nie trzeba jej uwzględniać. Z tego samego powodu nie może być zjedzona przez dinozaura. Załącznik 3. Formy terenu występujące na wyspie. ? teren płaski, ? las, ? droga w lesie, ? skały, ? rzeka, ? most, ? teren bazy ekspedycji (nikt tam nie przebywa oprócz złapanych dinozaurów), ? ocean (nic nie może wejść na ten teren - nawet pływacy, otacza cała wyspę). Załącznik 4. Dinozaury. Ruchem dinozaurów steruje komputer. Jeśli dinozaur wejdzie na DD to go niszczy, na pola z pozostałymi maszynami nie może wejść. Algorytm gry komputera może być na niższych poziomach zupełnie losowy, na wyższych wystarczy, że dinozaury będą uciekać przed maszynami, drapieżne gonić członków ekspedycji, a łagodne niszczyć DD (gonienie nie musi być inteligentne, wystarczy podążać, nie zważając na teren, w kierunku najbliższego członka ekspedycji). ? Tyranozaurus. Drapieżny. Może chodzić po równym terenie, mostach, drogach wykarczowanych w lesie i przedzierać się przez las. Szybkość - parametr programu. ? Brontozaurus. Łagodny. Może chodzić po równym terenie, mostach, drogach wykarczowanych w lesie i przedzierać się przez las. Szybkość - parametr programu. Uwaga: Chętni mogą zamiast gry turowej zaimplementować grę toczącą się w czasie rzeczywistym. Jest to trudniejsze zadanie (wymaga synchronizowania i współbieżnego obsługiwania ruchów komputera i użytkownika, ale gra zyskuje wtedy na atrakcyjności). Za obie postaci gry można otrzymać ocenę bardzo dobrą. Życzymy dobrej zabawy!