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