Laboratorium 24.03.2003
-----------------------

Pierwsze zadanie punktowane, termin oddania 7.04.2003.

(Autor: Janusz Jablonowski)

W grze w wojne bierze udzial dwu graczy graj?cych tali? 24 kart. Na pocz?tku
karty s? tasowane, potem obaj gracze otrzymuj? po 12 kart. Gra polega na
tym, ze gracze wykladaj? swoje pierwsze karty, ten ktory wylozyl wyzsz?
karte bierze obie i umieszcza (w dowolnej kolejno?ci) na koncu swoich kart.
Je?li obaj gracze wyloz? te sam? karte, to dokladaj? jeszcze po jednej i 
jeszcze
raz po jednej. Ten ktory dolozyl wyzsz? z tych trzecich kart bierze 
wszystkie 6 kart
i doklada je (w dowolnej kolejno?ci) na koniec swoich kart. Je?li 
ktoremu? z graczy
zabraknie kart, to jego rywal bierze wszystkie karty. Je?li 3-cie karty 
byly rowne, to
postepowanie powtarza sie (i porownuje 5-te karty, je?li i to nie 
pomoze, to 7-me itd.).
Je?li w czasie takiego dokladania w tym samym momencie obu graczom skoncz?
sie karty, to gra konczy sie remisem. Przegrywa ten gracz, ktoremu 
pierwszemu
skoncz? sie karty.

Napisz program symuluj?cy gre w wojne. Program powinien na pocz?tku 
wygenerowac
liste wszystkich kart (funkcja TworzTalie), potasowac j? (procedura 
Tasuj, dzialaj?ca
na zasadzie przestawiania kart na li?cie), rozdzielic na dwie listy (co 
drug?, procedura
Podziel), a nastepnie poki ktora? z list sie nie skonczy wykonuj?cy 
pojedynczy krok
gry (procedura Zagranie) zgodnie z podanymi regulami gry. Przed pierwszym
zagraniem i po kazdym zagraniu program ma wypisywac obie listy na ekranie
(w dowolny czytelny sposob, procedura Wypisz wypisuj?ca jedn? liste) i 
czekac
az uzytkownik naci?nie przycisk n (kolejne zagranie) lub k (przerwanie gry).

Wymagana struktura danych: lista prosta (to nie jest jedyna dobra 
reprezentacja
danych dla tego zadania, jest to natomiast reprezentacja wymagana).

Jak zwykle nalezy wypisac na pocz?tku i koncu dzialania programu informacje
o zajeto?ci pamieci (MaxAvail i MemAvail, oczywi?cie program po zakonczeniu
symulacji powinien zwrocic do systemu zajet? przez siebie pamiec 
dynamiczn?,
wiec te wypisane pary liczb powinny byc identyczne). Ponadto podczas gry 
nalezy
takze wypisywac aktualny stan pamieci po kazdym kroku.

Na koniec nalezy tez wypisac komunikat o tym, ktory z symulowanych graczy
wygral (lub o remisie).

Uwagi:
- do pobierania informacji o przyciskach naciskanych przez uzytkownika 
sluzy funkcja
readkey z modu-u CRT,
- do wy?wietlania informacji na ekranie mozna (nie jest to konieczne) 
uzyc operacji
z modulu CRT (takich jak GotoXY).