Zadanie 3. Rozgrywki pucharowe ------------------------------ Termin odbioru: zajecia nr 13. Nalezy zsynchronizowac dzialania 2^N (N < 8) ponumerowanych kolejno graczy za pomoca mechanizmow watkow. Rozgrywki tocza sie w K rundach, z ktorych kazda konczy sie wylonieniem zwyciezcy. W sklad rundy wchodza tury. W pierwszej turze wszyscy gracze sa polaczeni w pary i tocza ze soba ze soba pojedynki. Tylko zwyciezcy danej tury przechodza do tury nastepnej. W finale, czyli w turze ostatniej gra tylko dwoch zawodnikow, z ktorych jeden zostaje zwyciezca rundy. W danej chwili moga toczyc sie rozgrywki w kilku turach tej samej rundy. Pojedynek miedzy graczami polega na porownywaniu wylosowanych przez nich liczb. Wygrywa ten z graczy, ktory wylosowal wieksza liczbe, a jezeli liczby sa rowne, ten, ktorego numer jest wiekszy. Kazdy gracz jest watkiem, ktory dziala w petli wedlug nastepujacego algorytmu: 1) jezeli toczy sie jeszcze poprzednia runda gry, a on juz nie bierze w niej udzialu (przegral), to czeka na nastepna runde; 2) spi przez losowy czas; 3) losuje liczbe; 4) jezeli nie ma jeszcze przeciwnika z odpowiedniej tury (gracze dobieraja sie w pary zgodnie z kolejnoscia przyjscia), to: - zapisuje swoj numer i wylosowana przez siebie liczbe (w globalnych strukturach danych), - czeka na przeciwnika, - odczytuje jego numer i jego liczbe, - porownuje ze swoja liczba, ewentualnie numerem i decyduje, czy wygral, w przeciwnym wypadku (jest juz przeciwnik): - odczytuje numer przeciwnika i jego liczbe, - porownuje ze swoja liczba, ewentualnie numerem i decyduje, czy wygral, - zwalnia przeciwnika; 4) gracz, ktory wygral zwieksza licznik swoich zwyciestw i wypisuje informacje o pojedynku: numer rundy, numer tury, kto wygral, kto przegral; 5) jezeli gracz, ktory wygral jest ostatnim graczem w rundzie, to oglasza zwyciestwo i jezeli nie jest to ostatnia runda, uruchamia runde nastepna, w przeciwnym przypadku (ostatnia runda) konczy dzialanie wszystkich watkow i wypisuje statystyki: ile razy kazdy z graczy wygrywal. N i K sa argumentami wywolania programu. Zakres czasu oczekiwania nalezy tak dobrac, aby uzyskac losowe wyniki. Wszelkie pytania prosze kierowac na adres: janowska@mimuw.edu.pl Powodzenia.