Pytania i Odpowiedzi
do programu zaliczeniowego z Programowania Obiektowego
(Informatyka, II rok)

Pytania

Czy teleport może prowadzić do teleportu? [26.XI.2004]
Kiedy kończy się gra? [26.XI.2004, 3/4.II.2005]
Jak się rusza skoczek? [26.XI.2004]
Kiedy odrasta mur? [26.XI.2004]
Czy gracz może nie wykonać ruchu? [26.XI.2004]
Czy trzeba zaimplementować zapisywanie gry? [26.XI.2004]
Czy trzeba zaimplementować cofanie posunięć? [26.XI.2004]
Czy podczas gry ma być wyświetlana informacja np. o liczbie posiadanych zębów? [26.XI.2004]
Czy trzeba zaimplementować cofanie posunięć? [26.XI.2004]
Co gracz widzi na polach kiedyś odwiedzonych? [26.XI.2004]
Czy graficznie rozróżniamy dziurę zamurowaną od zwykłego gruntu? A zjedzony mur [26.XI.2004], [2/3.XII.2004]
Czy można zmienić kod magazynu? [26.XI.2004]
Czy potrafimy rozróżnić mur jadalny i niejadalny? [27/28.XI.2004]
Co może być polem startowym? [2/3.XII.2004]
Co się dzieje gdy odrasta mina? [2/3.XII.2004]
Jaka jest kolejność odrostania muru, wybuchu miny i odradzania się dziur? [2/3.XII.2004]
Czy pole z miną różni się graficznie od pola pustego? A co gdy mina wybuchła, ale jeszcze nie odrosła? [2/3.XII.2004]
Czy teleport może prowadzić do muru? [2/3.XII.2004]
Czy można założyć, że planszy nie trzeba będzie przewijać? [2/3.XII.2004]
Czy można czekać na towar (cegły, zęby) w magazynie? [2/3.XII.2004]
Czy miny sąsiadujące z miną, która wybuch też wybuchają? [5/6.I.2005]

Początek strony

Nowości

Początek strony

Odpowiedzi


P: Czy teleport może prowadzić do teleportu? [26.XI.2004]

O: Na poprawnej planszy nie może (bo nie ma to sensu: można było od razu skierować teleport na miejsce docelowe, nie mówiąc już o uniknięciu ewentualnych cykli). Można więc albo założyć, że nie ma na planszy teleportów do teleportów, albo traktować teleport do teleportu tak samo jak teleport do muru (czyli nie skakać).

P: Kiedy kończy się gra? [26.XI.2004, 3/4.II.2005]

O: Ogólnie rzecz biorąc gdy się kończy :). To znaczy, gdy wymagana liczba rycerzy dotrze do legowiska smoka (wygrana gracza), liczba rycerzy spadnie poniżej liczby wymaganej do zwycięstwa (jeśli do razu było za mało? To plansza była źle skonstruowana!), żaden rycerz nie może się ruszyć (w obu przypadkach przegrana gracza). Program powinien jakoś zasygnalizować wynik gry (np. wyświetlając okienko ze stosownym komunikatem), potem ma prawo się zakończyć, może też zaproponować nową rozgrywkę.
[Uzupełnienie z 3/4.II.2005:] Jeśli gracz nie może wykonać ruchu, to jest jeszcze w pewnych sytuacjach możliwe, że nie przegrał (mina może odrosnąć, wybuchnąć i zburzyć jadalny mur blokujący jakiegoś rycerza, mogą też pojawić się zęby w magazynie otoczonym jadalnym murem, w którym to magazynie stoi zjadacz). Oczywiście ze względu na termin ogłoszenia tego uzupełnienia programy nie muszą uwzględniać tych sytuacji.

P: Jak się rusza skoczek? [26.XI.2004]

O: Tylko w pionie i poziomie (nie na ukos). Z treści zadania wynika, że tylko skacze. Można też przyjąć, że oprócz skakania chodzi. Obie realizacje są dopuszczalne.

P: Kiedy odrasta mur? [26.XI.2004]

O: Po 20-tu jednostkach, czyli jeśli został zniszczony w K-tej kolejce, to odrasta w K+20. Oznacza to, że w kolejce K+19 jeszcze go nie ma, a w K+20 już jest. Jeśli rycerz zszedl w K+19 kolejce z tego pola, to nic mu sie nie stało, jeśli stał na koniec K+19 kolejki to (zgodnie z treścią zadania) ginie.

P: Czy gracz może nie wykonać ruchu? [26.XI.2004]

O: Może.

P: Czy trzeba zaimplementować zapisywanie gry? [26.XI.2004]

O: Nie jest to wymagane, ale oczywiście mile widziane.

P: Czy trzeba zaimplementować cofanie posunięć? [26.XI.2004]

O: Nie, wtedy gra byłaby za łatwa (dla gracza, nie dla piszącego).

P: Czy podczas gry ma być wyświetlana informacja np. o liczbie posiadanych zębów? [26.XI.2004]

O: Tak, powinien być sensowny interfejs (np. gdy wybieramy rycerza, to z boku okna widzimy opis tego rycerza), poza tym gracz powinien widzieć (móc zobaczyć) podstawowe informacje dotyczące stanu gry (np. ilu ma rycerzy, ilu musi jeszcze doprowadzić do smoka, itp.). Podobnie warto zrobić z informacjami np. o liczbie cegieł potrzebnych do zamurowania dziury, gdy ona jest zamurowana.

P: Co gracz widzi na polach kiedyś odwiedzonych? [26.XI.2004]

O: Widzi je w takim stanie, w jakim są obecnie (co może się różnić od stanu widzianego przez rycerza, który odkrył to pole i poszedł sobie dalej, np. dziura mogła się odsłonić, mur odrosnąć, itp.). Jak to możliwe, że widzimy stan aktualny? Magia ...

P: Czy graficznie rozróżniamy dziurę zamurowaną od zwykłego gruntu? A zjedzony mur [26.XI.2004], [2/3.XII.2004]

O: Tak, wszak wkrótce zamurowanie może się rozpaść. Analogicznie z murem.

P: Czy można zmienić kod magazynu? [26.XI.2004]

O: Zapis planszy jest jednoznaczny, mimo pokrywania się kodu Mapy i Magazynu dentystycznego (po tym drugim zawsze występuje liczba, po minie nigdy). Ze wzgledu na łatwość wczytywania można jednak zmienic kod magazynu dentystycznego na A (jak mAgazyn).

P: Czy potrafimy rozróżnić mur jadalny i niejadalny? [27/28.XI.2004]

O: Tak, powinny inaczej wyglądać.

P: Co może być polem startowym? [2/3.XII.2004]

O: Mogą być nim dowolne pola (jak wynika ze specyfikacji) i, zgodnie ze swą specyfiką, wpływają one na przebieg (i sensowność) dalszej gry. I tak:

P: Co się dzieje gdy odrasta mina? [2/3.XII.2004]

O: Jeśli stał na niej rycerz (to analogicznie do sytuacji z murem) w momencie odrośnięcia miny rycerz ginie.

P: Jaka jest kolejność odrostania muru, wybuchu miny i odradzania się dziur? [2/3.XII.2004]

O: Jeśli te zdarzenia przypadają na jedną kolejkę, to dzieją się jednocześnie. Na przykład, jeśli wybucha mina (bo akurat odrosła, a stał na niej rycerz), a obo akurat odrósł mur, to obie rzeczy dzieją się jednocześnie i mur jest niszczony.

P: Czy pole z miną różni się graficznie od pola pustego? A co gdy mina wybuchła, ale jeszcze nie odrosła? [2/3.XII.2004]

O: Pole z miną ma swój specyficzny wygląd (inny od pozostałych pól). Również pole z nieodrośniętą miną różni się graficznie od pozostałych rodzajów pól.

P: Czy teleport może prowadzić do muru? [2/3.XII.2004]

O: Może, tyle że nie zadziała, gdy pole docelowe jest zajęte. Czyli mur stały jako docelowe porte teleportu nie świadczy dobrze o sensowności planszy (ale nie jest błędem, po prostu nigdy nie da się teleportować). Zaś mur jadalny pozwoli na teleport tylko wtedy, gdy akurat będzie zjedzony. (A jeśli zaraz po teleporcie odrośnie? To dokładnie taka sama sytuacja jak odrośnięcie muru zaraz po wejściu na jego pole - rycerz ginie.) Jeśli zaś teleportujemy Zjadacza (z zębami), to możemy go także teleportować do jadalnego niezjedzonego muru, który Zjadacz zje.

P: Czy można założyć, że planszy nie trzeba będzie przewijać? [2/3.XII.2004]

O: Może (choć przewijanie nie jest trudne). Trzeba tylko zadbać, żeby ikonki pól nie były zbyt wielkie (czyli żeby dało się sensownie pograć na planszy).

P: Czy można czekać na towar (cegły, zęby) w magazynie? [2/3.XII.2004]

O: Można. Jeśli w magazynie np. cegieł nie ma na razie cegieł i stoi tam Budowniczy z niepełnym workiem, to w kolejce, w której cegła zostanie wyprodukowana, trafi ona od razu do worka. Analogicznie z zębami i Zjadaczem.

P: Czy miny sąsiadujące z miną, która wybuch też wybuchają? [5/6.I.2005]

O: Nie, miny znajdujące się w polu rażenia innej miny, która wybucha, same z siebie nie wybuchają.
Początek strony