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).