Program zaliczeniowy III

Celem pracy zaliczeniowej jest zaimplementowanie gry polegaj�cej na usuwaniu kolorowych kulek. Kulki u�o�one s� w dw�ch rz�dach - jednym na planszy i drugim, nazywanym dalej pul�. Gracz wykonuje ruchy, kt�re polegaj� na przemieszczeniu pierwszej kulki z puli w dowolne miejsce w rz�dzie na planszy (dozwolone jest wstawianie kulek w �rodek rz�du na planszy). Je�li w wyniku umieszczenia kulki powstaje ci�g co najmniej 3 kulek o tym samym kolorze, kulki te znikaj�, a gracz otrzymuje tyle punkt�w, ile kulek znik�o. Je�li w wyniku znikni�cia kulek utworzy si� nowy ci�g jednakowych kulek, one r�wnie� znikaj�, a gracz otrzymuje 2 punkty za ka�d� kulk�, kt�ra znikn�a. Je�li sytuacja si� powtarza, premia si� zwi�ksza (tj. kolejno 3, 4, 5 ... punkt�w za ka�d� kulk�). Celem gry jest uzyskanie jak najwi�kszej liczby punkt�w.
Uwaga: Usuwane s� tylko i wy��cznie ci�gi kulek tego samego koloru, kt�re powstaj� w wyniku ruchu. Je�li ci�g kulek znajduje si� na planszy od pocz�tku to nie jest usuwany - zniknie dopiero, gdy dorzucimy do niego jeszcze jedn� kulk� (i powstanie nowy ci�g).

Gra ko�czy si� w momencie gdy spe�niony zostanie jeden z poni�szych warunk�w:

Kulki reprezentowane s� przez du�e litery, r�ne litery odpowiadaj� poszczeg�lnym kolorom. Mo�na za�o�y�, �e w grze wyst�puje nie wi�cej ni� 26 kolor�w. Kolory powinny by� reprezentowane przez kolejne litery A, B, C, itd.

Program powinien umo�liwia� nast�puj�ce funkcje:

  1. Losowanie stanu pocz�tkowego gry. Program powinien zapyta� o parametry gry, takie jak liczba kulek na planszy, liczba kulek w puli, liczba kolor�w i by� mo�e poziom trudno�ci. Nastepnie powinna wy�wietli� si� plansza odpowiadaj�ca wylosowanym warto�ciom.
  2. Wczytanie stanu pocz�tkowego z pliku. Program powinien zapyta� o nazw� pliku i wczyta� zapisany tam uk�ad gry. Oto przyk�adowy plik:
    AABBBBBACCABBBACA
    BCACCB
    W pierwszej linii zapisany jest uk�ad na planszy, a w drugiej uk�ad puli. Kule z puli s� pobierane w porz�dku od lewej do prawej.
  3. Gra u�ytkownika. Kiedy stan pocz�tkowy gry zostanie ustalony, u�ytkownik mo�e przyst�pi� do gry. Ruchy wykonuje si� przez wpisanie liczby, kt�ra m�wi, w kt�rym miejscu umie�ci� kulk�, przy czym 0 oznacza lewy brzeg ci�gu kulek, 1 - na prawo od dok�adnie jednej kulki, 2 - na prawo od dok�adnie dw�ch kulek, itd. Po ka�dym ruchu program powinien wy�wietli� nowy uk�ad planszy, liczb� zdobytych punkt�w oraz (je�li gra si� nie zako�czy�a) zapyta� o kolejny ruch.
  4. Gra przez program (opcjonalnie). Po ustaleniu pocz�tkowego stanu gry powinna by� mo�liwo�� rozegrania partii przez sam program. Program powinien zaproponowa� sekwencj� ruch�w i zapisa� j� do pliku o zadanej nazwie. Ocena za ten element b�dzie tym wy�sza, im wi�cej punkt�w zdob�dzie dany program w kilku modelowych partiach. Generowanie sekwencji ruch�w nie powinno trwa� d�u�ej ni� 15 sekund (na komputerze takim jak w laboratorium). W zapisanym pliku powinien znajdowa� si� ci�g liczb odpowiadaj�cych kolejno wykonywanym ruchom.

Kryteria oceny

  1. Poprawno�� dzia�ania. (3 pkt.) - za punkty 1.-3.
  2. Kod programu. (1.5 pkt.) - przejrzysto�� kodu, opisy, u�ycie klas
  3. Jako�� gry. (1.5 pkt.) - za punkt 4. - zale�y bezpo�rednio od liczby punkt�w zdobytych przez program podczas test�w.
Uwaga: W przypadku u�ycia cz�ci kodu, kt�ra nie zosta�a napisana samodzielnie nale�y to zadeklarowa�.
Rozwi�zania nale�y nadsy�a� na adres [email protected] w terminie do 31 sierpnia 2009.

Powodzenia
Krzysztof Ziemia�ski
OSZAR »