1 Wst˛ep 2 Opis gry

Transkrypt

1 Wst˛ep 2 Opis gry
Zadanie zaliczeniowe z Programowania Obiektowego
Rok 2OO5/2OO6
Zbieracz, wersja 0.07
1 Wst˛ep
Gra “Zbieracz” jest gra˛ planszowa˛ w której gracz steruje postacia˛ Zbieracza w celu uzyskania jak najwi˛ekszej
ilości punktów za zbieranie trofeów rozmieszczonych na planszy.
2 Opis gry
2.1 Plansza
Plansza jest podzielona na kwadraty - pola. Gracz “chodzi” po planszy Zbieraczem. W jednym ruchu gracz może
przesunać
˛ Zbieracza w prawo, w lewo, skoczyć do góry lub do góry z przesuni˛eciem w lewo lub w prawo. Przesuni˛ecie odbywa si˛e pod warunkiem, że można na to pole wejść (patrz opis pól planszy) lub wejść po przepchni˛eciu
innych obiektów, oraz że pole mieści si˛e na planszy. Ponieważ działa grawitacja, Zbieracz, który nie ma oparcia
w twardym podłożu (mur, kamień, bomba - patrz opisy dalej) spada w dół. Jeśli na dole planszy nie b˛edzie pola,
na którym można stanać,
˛ to Zbieracz ginie w przepaści. Ale nie można przejść, ani przepchać przedmiotów, poza
prawa˛ lub lewa˛ kraw˛edź planszy. W niektórych sytuacjach Zbieracz porusza si˛e inaczej (czytaj o tym dalej).
Numery pól planszy rosna˛ w dół i w prawo. Na ekranie widoczny jest tylko fragment planszy o określonym
stałym rozmiarze, a sama plansza może być znacznie wi˛eksza. Zawsze na tym fragmencie jest widoczny Zbieracz.
Plansza jest opisywana plikiem o formacie przedstawionym w punkcie 2.7.
2.2 Zbieracz
Jego celem jest zdobycie jak najwi˛ekszej liczby punktów, otrzymywanych za zebranie pewnych trofeów. O trofeach przeczytaj w punkcie 2.4.
Zbieracz może skakać. Podczas skoku zwiedza pola znajdujace
˛ si˛e na trasie swego lotu. Zwykły skok (do góry)
powoduje zwiedzenie co najwyżej 4 pól znajdujacych
˛
si˛e bezpośrednio nad Zbieraczem (o ile można na nie wejść).
Zbieracz po osiagni˛
˛ eciu ostatniego z tych pól (czyli co najwyżej czwartego) zaczyna spadać (zgodnie z pozostałymi
regułami) - wszystko to dzieje si˛e w jednym ruchu. Zbieracz skacze maksymalnie wysoko (zachowujac
˛ wszystkie
podane w tym punkcie ograniczenia). Skoki w prawo lub w lewo dodatkowo przesuwaja˛ o 2 pola horyzontalnie.
Trajektoria skoku w lewo (w prawo analogicznie) jest nastepujaca:
˛
• zwiedź 3 pola znajdujace
˛ si˛e bezpośrednio nad Zbieraczem (3xgóra),
• zwiedź 1 pole znajdujace
˛ si˛e w kierunku lewo-góra od ostatniego,
• zwiedź 1 pole znajdujace
˛ si˛e w kierunku lewo-dół od ostatniego,
• Zbieracz spada.
Jeśli pewnego pola nie można zwiedzić (np. jest tam mur), Zbieracz spada wcześniej (nie wykonujac
˛ kolejnych
punktów lotu, czyli natrafienie na ścian˛e podczas lotu w gór˛e powoduje, że Zbieracz nie przesuwa si˛e w bok).
Zbieracz zbiera wszystkie trofea, które znajduja˛ si˛e na odwiedzanych polach. Skok trwa jednostk˛e czasu.
Każdy Zbieracz posiada licznik życia. Na poczatku
˛ mamy 3 życia. Jeśli Zbieracz ginie i licznik ten wynosi
0, gra kończy si˛e. W przeciwnym przypadku zaczynamy gr˛e z plansza˛ ze stanem obecnym z punktu startowego i
zmniejszamy licznik życia o 1.
2.3 Pola planszy
Pole zwykłe Pole, na które Zbieracz może wejść, nie posiadajace
˛ żadnych własności dodatkowych.
Pole mur Można spotkać dwa rodzaje murów: mury nietrwale i wieczne. Mury wieczne sa˛ to pola, na które gracz
nigdy nie może wejść. Nie można ich zniszczyć wybuchem. Mury nietrwałe sa˛ to pola, na które Zbieracz
nie może wejść, chyba że usunie mur poprzez wybuch. Zburzenie takiego muru jest tylko czasowe - mur
odrasta po 20 jednostkach czasu. Jeżeli na tym polu jest w tym momencie Zbieracz, to ginie.
1
Pole z kamieniem Kamień można przesuwać w prawo lub w lewo zgodnie z kierunkiem przesuwania (w tym
przypadku pchania) Zbieracza, o ile w kierunku pchania za kamieniami znajduje si˛e pole zwykłe. Zbieracz może przepchać dowolna˛ liczb˛e kamieni. Ogólnie, zawsze jeśli pod kamieniem jest pole zwykłe to
kamień spada. Kamień spada w przepaść jeśli pod nim wszystkie pola sa˛ zwykłe. Jeśli kamień spadnie
na Zbieracza to Zbieracz ginie. Ale kamień może być chwilowo bezpośrednio nad Zbieraczem (np. wtedy
gdy Zbieracz wejdzie na pole z trofeum, nad którym jest pole z kamieniem - taki kamień spadnie dopiero
po wyjściu z pola). Kamień, który spadnie na bomb˛e lub min˛e (patrz niżej) powoduje ich eksplozj˛e, ale
kamień wepchni˛ety nie. Dotyczy to także min ukrytych w niespodziankach (opis niżej). Kamienie (i inne
przedmioty, które moga˛ spadać) spadaja˛ w określonej kolejności. Najpierw te, które sa˛ najniżej. A wśród
tych położonych na tym samym poziomie najpierw te od lewej.
Pole z mina˛ Jeżeli Zbieracz wejdzie na pole z mina˛ lub zwiedzi je podczas skoku, mina wybucha po 5 jednostkach
czasu. W polu rażenia miny znajduje si˛e pole, na którym mina była umieszczona oraz wszystkie pola, które
miały wspólna kraw˛edź z tym polem1 . Wszystkie mury nietrwałe, kamienie, miny znajdujace
˛ si˛e w polu
rażenia wybuchu ulegaja˛ zniszczeniu, a Zbieracz ginie. Podobnie trofea ulegaja˛ zniszczeniu, ale wyjatkiem
˛
jest diament (patrz 2.4), który zmienia si˛e w szafir. Nie ulegaja˛ zniszczeniu detonatory i teleporty. W szczególności, gdy przedmiot, który ulega zniszczeniu jest ukryty w niespodziance (opis niżej), niespodzianka też
przestaje istnieć. Ale uwaga, w przypadku lawinowej reakcji wybuchowej ta przemiana jest wykonywana
dopiero po wszystkich wybuchach. Po 20 jednostkach czasu od wybuchu miny na polu tworzy si˛e nowa
mina. Miny sa˛ nieruchome i nie spadaja.
˛
Pole z bomba˛ Bomba zachowuje si˛e podobnie do miny, ale nie można na nia˛ wejść. Bomby można przesuwać i
zrzucać jak kamienie. Bomby nie odradzaja˛ si˛e. Jeśli bomba znajdzie si˛e w obszarze wybuchu, też wybucha
(analogicznie do miny). Jeśli bomba spadnie, to wybucha z prawdopodobieństwem 1/2. Bomby można też
zdalnie zdetonować (opis patrz dalej).
Pole teleport Zbieracz, który znajdzie si˛e na tym polu, zostanie przeteleportowany na inne pole znajdujace
˛ si˛e na
planszy. Na szcz˛eście jeden teleport może przenosić tylko w jedno miejsce. Jeżeli miejsce docelowe jest
zaj˛ete przez coś na co Zbieracz nie moje wejść, to teleport nie działa. Teleporty można łaczyć,
˛
ale w jednym
ruchu jeden teleport może być wykorzystany tylko raz. Nie można zniszczyć teleportu.
Pole końcowe Zbieracz, który znajdzie si˛e w tym polu wygrywa. Jeśli jest nast˛epna plansza, to przechodzi do
niej (nazwa pliku z opisem nast˛epnej planszy znajduje si˛e w pliku z definicja˛ planszy).
Pole z detonatorem Wejście detonuje wszystkie bomby w promieniu 3 pól (rozumianym jako ilość kroków jaka˛
należałoby wykonać od danego pola). Nie można zniszczyć detonatora.
Pole z trofeum Patrz 2.4.
Pole niespodzianka Tu znajduje si˛e ukryte trofeum, mina, detonator lub teleport. Po wejściu widoczna jest zawartość.
2.4 Trofea
Trofea pozwalaja˛ zdobywać punkty lub daja˛ specjalne zdolności. Trofea sa˛ nieruchome i nie spadaja.˛ Zbieracz
może wejść na takie pole.
Diament Daje 100 punktów.
Rubin Daje 50 punktów.
Szafir Daje 20 punktów. Odradza si˛e po 30 rundach.
Życie Daje 1 dodatkowe życie.
Wysoki skok Podwaja wysokość jednego najbliższego skoku.
Lot Przez 20 rund nie działa grawitacja na gracza. Nie ma skoków, zamiast skoku jest ruch do góry.
1 Czyli
w promieniu 1 pola.
2
2.5 Trolle
Trolle przeszkadzaja˛ w osiagni˛
˛ eciu celu. Można je zabić wybuchem lub spadajacym
˛
kamieniem.
Troll pożeracz Porusza si˛e w określonym kierunku w lewo lub w prawo, ale tylko po polach zwykłych. Gdy
nie może przejść dalej, skacze z przesuni˛eciem w określonym kierunku (tak jak skok Zbieracza, patrz 2.2).
Gdyby jednak miał spaść w przepaść (i zabić si˛e), nie wykonuje skoku tylko zmienia swój kierunek na
przeciwny. Troll może spaść na pole znajdujace
˛ si˛e nad polem z trofeum. Może korzystać z teleportu. Ale
nie wchodza˛ na niespodzianki, trofea, nie powoduja˛ wybuchów min i nie potrafia˛ pchać przedmiotów. Gdy
go spotkamy, zjada wszystkie punkty.
Troll zabójca Porusza si˛e podobnie do poprzedniego. Gdy spotka Zbieracza, Zbieracz ginie.
Troll bombowiec Nieruchomy, co 10 jednostek zrzuca w dół bomb˛e, która po spadni˛eciu wybucha z prawdopodobieństwem 1/3. Jeśli pole, na którym powinna pojawić si˛e tuż po wyrzuceniu bomba jest zaj˛ete, wówczas
w danej rundzie nic si˛e nie dzieje.
2.6 Inne
Jedna jednostka czasu to jeden ruch - czyli jedno przesuni˛ecie Zbieracza. Gracz widzi wszystkie pola w bieżacym
˛
oknie. Nie widzi jednak dokad
˛ prowadzi teleport i ile jeszcze czasu pozostało do odrodzenia muru lub trofeów.
Ale powinien widzieć ile czasu zostało do wybuchu miny.
2.7 Plansza - format pliku
Opis planszy jest plikiem tekstowym zawierajacym
˛
informacje o rozmiarze planszy (szerokość oraz wysokość w
kolejnych wierszach), rozmieszczeniu pól na planszy jako listy pól w kolejnych wierszach rozdzielane średnikami
oraz pliku zawierajacym
˛
plansz˛e z kolejnym poziomiem gry (nazwa pliku podana w cudzysłowach, pusta nazwa
pliku w przypadku ostatniej planszy). Plik może zawierać komentarze zgodnie z przykładem.
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
6
Plansza "poziom1.txt"
Pola:
! = zbieracz (pole startowe)
_ = pole zwykle (puste)
M = mur (wieczny)
S = sciana (mur nietrwaly)
K = kamien
B = bomba
I = mina
T(poziomo,pionowo) = teleport na pole o danych wspolrzednych
D = detonator
N(pole) = niespodzianka zawierajaca dane pole
E = pole koncowe
Trofea:
1 = diament
2 = rubin
3 = szafir
4 = zycie
5 = wysoki skok
6 = lot
Trolle:
X = pozeracz
Y = bombowiec
Z = zabojca
3
9
Z;_;_;_;_;E
M;M;M;M;M;M
_;_;K;!;_;_
_;_;K;K;_;N(D)
_;_;K;K;K;M
_;_;S;S;S;B
3;_;S;B;B;B
2;_;S;B;_;_
1;_;S;B;_;T(4,1)
"poziom2.txt"
3 Zadanie
Napisz program umożliwiajacy
˛ przeprowadzenie pojedynczej rozgrywki składajacej
˛ si˛e z potencjalnie kilku plansz.
Program ma na poczatku
˛ wczytać plansz˛e startowa,˛ potem ma ja˛ wyświetlić i umożliwić graczowi wykonywanie
poszczególnych ruchów. Interfejs powinien być graficzny (przyciski, mysz) i sensownie wygodny. Do programu
należy dołaczyć
˛
co najmniej dwie plansze. Jedna mała o rozmiarze min. 20x10 (szerokość x wysokość) i druga
duża o rozmiarze min. 50x30.
4 Historia zmian
1.00: ??.XI.2005 (wersja oryginalna)
4

Podobne dokumenty