JIPP PO.                          MSUI                        11.III.2OO4.
                                     
                         Program zaliczeniowy nr 2
                                     
W domino gra się kostkami. Każda kostka składa się z dwu pól zawierających
liczby  z przedziału 0..6. Żadne dwie kostki się nie powtarzają, kolejność
pól  nie ma znaczenia, zatem pełen zestaw domina zawiera 28 kostek ({0,0},
{0,1}, {0,2}, ..., {6,6}). W domino może grać kilku graczy (>=1).

Gracze są ustawieni w pewnej kolejności. Pierwszy z graczy miesza kostki i
rozdaje każdemu (także sobie) po 5 kostek, resztę zostawia ułożone w  stos
na stole. Gracze widzą swoje kostki, natomiast nie widzą zawartości kostek
leżących na stole (te są położone liczbami do dołu).

Teraz  zaczyna się właściwa gra. Gracze po kolei (zaczynając od pierwszego
gracza) dokładają po jednej kostce z tych, które mają w ręku do kostek  na
stole,  przy  czym  kostki (traktowane teraz już jako pary  uporządkowane)
układa  się  w  ciąg par tak, by każda para miała wartość pierwszego  pola
równą wartości drugiego pola pary poprzedzającej (o ile jest takowa).  Np.
ciąg:  (0,2),  (2,1), (1,0), (0,0) jest poprawny i można do niego  dołożyć
jedynie  pary  mające  jedno pole o wartości 0.  Można  dostawiać  tak  na
początek  jak i na koniec ciągu. (Zgodnie z podanymi zasadami na  początku
można  do  pustego  ciągu dołożyć cokolwiek.). Jeśli  gracz  może  dołożyć
kostkę,  to  musi to zrobić, jeśli zaś nie może, to musi  za  karę  dobrać
kostkę z wierzchołka stosu na stole (chyba że nic już tam nie ma). Gra się
kończy,  gdy któryś z graczy pozbędzie się wszystkich kostek (i ten  gracz
wygrywa) lub gdy stos jest pusty i żaden z graczy nie może dołożyć  żadnej
ze swoich kostek (wtedy jest remis).

Gracze  stosują różne strategie. Dzieci wybierają dowolną kostkę  pasującą
do  ciągu na stole. Uczniowie chytrze zaglądają do kostek trzymanych przez
rywali  i  wybierają (o ile to możliwe) spośród swoich kostek taką,  która
pasuje  do ciągu, ale po dołożeniu nie będzie pasowała następnemu graczowi
(nie troszczą się o kostkę, która jest przeciwnym końcem ciągu, tamta może
pasować).  Studenci  dostawiają taką kostkę, która uniemożliwi  następnemu
graczowi  dołożenie swojej. (Oczywiście tak uczniowie  jak  i  studenci  w
sytuacji,  w  której  nie mogą dołożyć kostki zgodnie ze  swoją  strategią
dostawiają dowolną kostkę dającą się dołożyć zgodnie z regułami gry).

Należy:
Napisać  program,  który  dla  zadanej  uporządkowanej  kolekcji    graczy
przeprowadzi  symulację rozgrywki, wypisując po każdym ruchu układ  kostek
na  stole  oraz  kostki trzymane przez poszczególnych  graczy.  Na  koniec
należy wypisać który gracz wygrał (lub że jest remis).

Przy pisaniu programu mogą się okazać pomocne następujące operacje:
  ·   generowanie pełnego zestawu kostek domina,
·   metoda dziecka/ucznia/studenta wybierająca dokładaną kostkę (nil gdy
nie da się dołożyć) i miejsce dołożenia.

Uwaga:   podane  zasady  gry  w  domino  mogą  się  różnić  od  oficjalnie
obowiązujących.  Np.  jedna  z  encyklopedii internetowych  stwierdza,  że
kostki zawierają pola z liczbami 1..6. Szczególnie proszę zwrócić uwagę na
to, co widzą poszczególni gracze.

Życzymy powodzenia!