[C] Jak zabrać się za grę w "wojnę" ?

0

Witam.
Potrzebuję napisać program na laborki PRM.
Jednak moja wiedza co do programowania nie wystarcza tutaj do niczego :/.
Mam kilka podstawowych pytań :
jak zrobić tasowanie kart ?
Jak przypisywać karty danym graczom podczas rozdania i po każdej turze (gdy jakiś zawodnik wygrał) ?
Jak operować kartami na stole - np. czy jest wojna, czy ktoś wygrał, czy remis ?

Dalej wypisałem dokumentację funkcjonalną do programu, ponieważ będę miał jeszcze (na pewno) masę pytań.

Sposób działania programu: Program zaczyna działanie od wypisania powitania oraz prośby o podanie liczby całkowitej N (1<=N<=20) określającej liczbę zestawów danych .
Do każdego z zestawów program prosi o podanie n (2<=n<=8) liczby graczy . Po wczytaniu liczby graczy należy podać liczbę m (1<=m<=26) ilości kart w posiadaniu każdego gracza z danego zestawu.
Te dane wypisywane są w następujący sposób (procedura wypisania pojawia się N razy):

N (ilość zestawów, ta linia pojawia się tylko raz na początku)
Zestaw R (R=1, 2, 3, ... ,N) (wypisany numer zestawu)
Gracz n m : [wartości kart] (w kolejnych n wierszach wypisywany jest numer
kolejnego gracza, ilość m kart w posiadaniu oraz wartości kart)

np.:

2 (2 zestawy danych)
Zestaw 1 (n=2, m=2)
Gracz 1 2 : A Q
Gracz 2 2 : 4 J
Zestaw 2 (n=3, m=3)
Gracz 1 3 A 10 7
Gracz 2 3 2 2 2
Gracz 3 3 A K 8

Karty posiadają następujące wartości (od „najmłodszej” do „najstarszej”) :
2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K, A. Każda z tych wartości nie może pojawić się więcej niż 4 razy, kolory kart nie mają znaczenia.

Format danych wejściowych: Liczby całkowite N, n, m mówiące nam o danych każdego zestawu .

Format danych wyjściowych: Wyniki programu są wypisane na standardowe wyjście. W kolejnych N wierszach podawani są zwycięzcy z każdego zestawu .
Np. w zestawie 1 wygrał gracz 1, a w zestawie 2 wygrał gracz 3:

Zwycięzca zestawu 1 to gracz 1
Zwycięzca zestawu 2 to gracz 3

Zakładam, że zwycięzcę zawsze da się wyłonić. Jeśli w turze nastąpi wojna i jednemu z zawodników zabraknie kart do wyłożenia, wygrywa ten gracz, który posiada więcej kart. Jeśli jednak w tym samym momencie każdemu z zawodników zabraknie kart i są w stanie „wojny” ogłoszony zostanie remis.

Pozdrawiam

0

http://4programmers.net/Pastebin/866
przykład jak się za to zabrać w C++, moze ci się przyda ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1