Zadanie zaliczeniowe nr 2 
MSUI.Programowanie Obiektowe i Współbieżne 
10.03.2006 

Zadanie 

W (wymyslona) grę Duo gra od 2 do 7 graczy. Posługują się oni specjalnymi kartami. Karty dzielą się na zwykłe 
i specjalne. Karty zwykłe mają kolor (niebieski, czerwony, zielony lub zółty) oraz symbol (wartosć z przedziału 110). Karty specjalne powoduja, ze gracz który je zagra lub któryś z jego sasiadów musi wykonać specjalne akcje (p. 
dalej). Karty specjalne mają kolor (tak jak karty zwykłe). Karty specjalne nie mają symboli wystepujacych na kartach 
zwykłych. Cała talia składa się z podwojonego zestawu: karty zwykłe (4*10) i karty specjalne (4*4), zatem łacznie jest 
112 kart. 

Gra składa się z kolejnych rozgrywek. Konczy sie, gdy któryś z graczy uzbiera co najmniej 500 punktów -ten gracz 
wygrywa. 

Pojedyncza rozgrywka rozpoczyna się od rozdania przez jednego z graczy (w kolejnych rozgrywkach rozdają cyklicznie 
kolejni gracze) kazdemu z graczy po 7 kart, a potem wyłozenia jednej odkrytej karty na stół (stanowi ona na razie 
jedyny element Stosu Kart Zuzytych. Reszta kart lezy na stole ułozona w drugi stos zwany Talonem. Karty na stosie 
są zakryte. Celem rozgrywki jest pozbycie się z reki wszystkich trzymanych w niej kart. Gdy któremuś z graczy to 
się uda, dolicza mu się punkty za wszystkie te karty, których nie zdazyli się pozbyć pozostali gracze (kazda karta ma 
okresloną wartosć punktowa). 

Gracz który rozdał karty jest pierwszym dokładajacym kartę. Karty dokłada się na wierzchołek stosu kart zuzytych. 
Kolejni gracze dokładają karty albo o takim samym kolorze albo o takim samym symbolu jak karta lezaca na szczycie 
stosu kart zuzytych. Karty specjalne mozna dołozyć gdy pasuje ich kolor lub stanowią tak reguły dla danej karty 
specjalnej. Na kartę specjalną (gdy już zostaną wykonane specyficzne dla niej działania) dokłada się karty takiego 
samego koloru. Jesli gracz nie moze lub nie chce dołozyć karty (nie ma obowiazku dokładania), to bierze jedną kartę z 
wierzchołka Talonu i dokłada do swoich kart w reku. Gracze dokładają karty po kolei (cyklicznie). 

Karty specjalne: 

• Dzoker Pasuje do kazdej karty (takze innego koloru), mozna na niego połozyć dowolną kartę koloru dzokera. 
• Podwójna Pasuje do dowolnej karty tego samego koloru. Jej działanie moze się kumulowac. Jesli gracz wyłozy 
tę karte, to nastepny gracz albo musi wziać z Talonu dwie karty (nic nie dokładajac do stosu kart zuzytych), albo 
dołozyć kartę podwójna. W tym drugim przypadku kolejny gracz albo sam dokłada kartę podwójna, albo musi 
dobrać tyle kart ile w sumie nakazują wszystkie skumulowane karty podwójne, itd. (czyli zakładajac, ze kolejni 
gracze mają karty podwójne, liczba kart do dołozenia z Talonu wzrasta nastepujaco: 2, 4, 6, 8, ...). 
• Blokujaca Pasuje do dowolnej karty (takze innego koloru). Jej działanie moze się kumulowac. Jesli gracz 
wyłozy tę karte, to nastepny gracz albo traci kolejke, albo dokłada kartę blokujaca. W tym drugim przypadku 
kolejny gracz albo sam dokłada kartę blokujaca, albo musi pauzować tyle kolejek ile w sumie nakazują wszystkie 
skumulowane karty blokujace, itd. (czyli zakładajac, ze kolejni gracze mają karty blokujace, liczba kolejek do 
pauzowania wzrasta nastepujaco: 1, 2, 3, 4, ...). 
• Zmieniajaca Pasuje do dowolnej karty tego samego koloru. Po jej połozeniu gracz moze zazyczyć sobie dowolnego 
(z 4 wymienionych) koloru kart (w szczególnosci moze to być kolor taki jak tej karty). 
Gdy przy próbie pobrania karty z Talonu okazuje sie, ze jest on pusty, to przekłada się na niego po przetasowaniu 
wszystkie karty ze stosu kart zuzytych, poza jedną -tą znajdujacą się na wierzchu stosu kart zuzytych. 

Gracze grajacy w tę grę stosują rózne strategie, np. Losowy losuje dowolną karte, jesli ta pasuje, to ją dokłada, wpp. 
nie). Senny nie dokłada kart. Złosliwy dokłada o ile tylko moze karty podwójne i blokujace, jesli nie moze to nie 
dokłada. Oczywiscie jest wiele innych (lepszych) strategii. 

Nalezy zaimplementować symulację pojedynczej rozgrywki powyzszej gry (a nie całej gry). Powinno dać się ją wywołać z parametrem bedacym kolekcją uporzadkowaną graczy bioracych udział w rozgrywce i drugim parametrem 
okreslajacym maksymalną liczbę kolejek symulowanej rozgrywki. Symulacja powinna wypisać do okienka Transcript 
opisy kolejnych zagrań poszczególnych graczy, stany talonu po kazdym zagraniu, a na koniec kto wygrał i ile uzyskał 
punktów. Wynikiem tej metody ma być para (Association): gracz zwyciezca i liczba zdobytych przez niego punktów. 

Powodzenia! 

1