Zadanie 2 (termin oddania: 24 listopada 2005, godz. 23:59) Napisz program umożliwiający przeprowadzenie partii gry Tron. W grze bierze udział dwóch zawodników, którzy sterują postaciami znajdującymi się na prostokątnej planszy. Każdy gracz ma do dyspozycji jedną postać. W każdym kolejnym etapie gry obaj gracze wydają po jednym poleceniu sterowanej przez siebie postaci. Postaci rozumieją polecenia: * przesunięcia się o jeden krok do przodu w kierunku, w którym postać dotąd się poruszała, * obrócenia się o 90 stopni w lewo i przesunięcia się o jeden krok do przodu, * obrócenia się o 90 stopni w prawo i przesunięcia się o jeden krok do przodu. Postaci przesuwając się pozostawiają za sobą ślad. Zawodnik kończy grę, gdy wyda polecenie, które wprowadziłoby jego postać na ślad pozostawiony przez niego lub przez przeciwnika, na postać przeciwnika, lub wyprowadziłoby postać zawodnika poza planszę. Jeśli gracze zakończą grę równocześnie, jest remis, wpp. gracz, który zakończył grę przegrywa. Gra toczy się na planszy o rozmiarze 14x7 (7 wierszy, 14 kolumn). W chwili rozpoczęcia gry postać zawodnika pierwszego znajduje się na polu o współrzędnych <4,4> (4 wiersz, 4 kolumna) a postać zawodnika drugiego na polu <11,4> (4 wiersz, 11 kolumna). Każda z postaci jest w tym momencie zwrócona w kierunku postaci przeciwnika. Wejście: Program otrzymuje na wejściu, w kolejnych wierszach, pary znaków reprezentujących polecenia wydane przez każdego z graczy. Spacja (' ') oznacza polecenie przesunięcia się do przodu, litera l ('l') oznacza polecenie wykonania obrotu w lewo i przesunięcia się, a p ('p') to polecenie obrotu w prawo i przesunięcia się. Dodatkowo, zamiast pary znaków w kolejnym wierszu może się znajdować pojedyncza kropka ('.') oznaczająca, że gracze proszą o zakończenie gry i ogłoszenie remisu. Wyjście: Program wypisuje na wyjście stan planszy w chwili rozpoczęcia gry oraz po wykonaniu po jednym ruchu przez każdego z graczy. Stanu planszy nie wypisuje, jeśli polecenia pobrane od graczy spowodowały zakończenie rozgrywki. Na zakończenie program wypisuje w oddzielnym wierszu napis: "Remis" (bez cudzysłowów), jeśli gra zakończyła się remisem, "Wygral pierwszy", jeśli rozgrywkę wygrał pierwszy zawodnik "Wygral drugi", jeśli rozgrywkę wygrał drugi. Stan planszy program wypisuje w kolejnych wierszach (każdy wiersz planszy w oddzielnym wierszu na wyjściu). Dla każdego pola znajdującego się w danym wierszu program wypisuje jeden znak. '1', gdy na tym polu znajduje się gracz pierwszy, oraz wtedy, gdy jest tam ślad pozostawiony przez tego gracza (czyli '1' oznacza, że gracz na danym polu jest aktualnie lub był w przeszłości). Znak '2' ma takie samo znaczenie, ale dotyczy gracza drugiego. Dla pozostałych pól program ma wypisywać spacje. Dodatkowo, opis stanu planszy powinien być na wyjściu otoczony dookola znakami '#'. Uwzględniając rozmiar plaszy (14x7) oznacza to, że zapis stanu planszy zajmie na wyjściu 9 wierszy po 16 znaków w każdym. Wskazówki: Stan planszy można przechowywać w dwuwymiarowej tablicy. Kierunek postaci wygodnie będzie reprezentować przy pomocy wektora: <0,1> (postać jest skierowana "na południe"), <0,-1> (postać jest skierowana "na północ"), <1,0> (postać jest skierowana "na wschód"), <-1,0> (postać jest skierowana "na zachód").