Zadanie 2 - GRA
===============

W Bardzo Głupią Grę gra się tak: jest N graczy i arbiter. 
Gracze są od siebie odizolowani i komunikują się tylko z arbitrem.
Są dwie wersje gry, z następującymi regułami:

a) arbiter pobiera kolejno od każdego gracza (pierwszego, drugiego, ...,
N-tego i tak w kółko) liczbę całkowitą z przedziału 0..9. Jeżeli
gracz poda taką samą liczbę jak jego poprzednik to wygrywa i gra
się kończy.

b) każdy z graczy, w dowolnej chwili w której ma ochotę, przesyła
do arbitra swoją liczbę. Jeżeli ta liczba jest taka sama, jak
poprzednio podana arbitrowi liczba i jeżeli ta poprzednia liczba
została podana przez innego gracza niż bieżący, to bieżący gracz
wygrywa (czyli z grubsza tak jak poprzednio, tylko że kolejność
podawania liczb przez graczy może być dowolna).

Przykładowy program gracza znajduje się na stronie, obok zadania.

Zadanie polega na napisaniu programu arbitra, który z linii poleceń
dostaje parametr N, uruchamia N procesów graczy (zakładamy, że
wykonywalny program gracza znajduje się w bieżącym katalogu
pod nazwą gracz) i przeprowadza rozgrywkę. Program gracza do
komunikacji używa swojego standardowego wyjścia, jak w graczu
przykładowym. Gra trwa tak długo, aż ktoś wygra, potem arbiter
powinien brutalnie wszystkich graczy uśmiercić i wypisać wynik
na ekran (może też wypisywać przebieg rozgrywki w trakcie).
Dołącz też plik Makefile kompilujący projekt.

Implementacja arbitra dla wersji a) reguł gry jest wystarczająca
do zaliczenia zadania w całości. 

Osoby, które uważają to za zbyt małe wyzwanie i chcące się
jeszcze czegoś nowego przy okazji nauczyć mogą zaimplementować
wersję b). Wskazówka: "man select" (lub, alternatywnie, wątki,
ale wtedy trzeba dbać o synchronizację). Jak się to dobrze
zrobi to program nie powinien się pewnie wydłużyć o więcej niż
kilka linijek.

Można założyć, że gracze będą dobrze działać i obsługą błędów
się nie przejmować.

Termin: 10.01.2007, aszek@mimuw.edu.pl


FAQ
===
Q: Wszystkie programy graczy podaja te sama sekwencje liczb i rozgrywka
od razu sie konczy, o co chodzi?

A: Niezainicjalizowany generator liczb losowych w graczu. W graczu trzeba
dodac na przyklad:
    srandom(time())
a kolejne programy graczy odpalac z sekundowymi przerwami, zeby czas byl
w kazdym inny.