else Write ('. ');
Writeln; end;
Readln; end.
Zwróćmy uwagę na sposób indeksowania tablicy. Podobnie jak na szachownicy, wiersze są oznaczone cyframi od 1 do 8, kolumny zaś literami od A do H. Funkcja Ord, z którą spotkaliśmy się po raz pierwszy, podaje kolejny numer dowolnej zmiennej porządkowej (w tym przypadku znaku).
Ponieważ program jest nieco bardziej skomplikowany, prześledźmy dokładnie jego działanie.
1. W pierwszej, zagnieżdżonej pętli program zeruje tablicę reprezentującą szachownicę. Ustalamy, że z żadnym polem na razie nic się nie dzieje.
2. Następuje wczytanie danych, ze sprawdzeniem poprawności. Na wszelki wypadek literę reprezentującą kolumnę zamieniamy na wielką.
3. Ustalamy na szachownicy pozycję hetmana.
4. W zagnieżdżonej pętli przechodzimy wszystkie pola szachownicy. Sprawdzamy, czy pole ma szansę być bite. Ten dość złożony warunek oznacza tyle, że na polu nie stoi hetman oraz że leży w tym samym wierszu, w tej samej kolumnie
lub na jednej z przekątnych razem z hetmanem. Jeżeli pole jest bite, oznaczmy je.
Zastanów się, dlaczego poprawnie działa warunek na określenie, czy hetman leży na tej samej przekątnej, co bieżące pole?
5. W ostatniej zagnieżdżonej pętli drukujemy szachownicę. Zauważ, że bez uszczerbku na działaniu programu moglibyśmy to robić już w poprzedniej pętli.
Liczba funkcji i procedur standardowych w Turbo Pascalu nie jest oszałamiająca. Istnieje jednak możliwość korzystania z funkcji z modułów zawartych w Turbo Pascalu. Moduł jest niczym innym, niż zbiorem deklaracji stałych, typów, zmiennych, funkcji i procedur powiązanych ze sobą tematycznie. Standardowo w Turbo Pascalu masz do dyspozycji następujące moduły:
Crt moduł ułatwiający obsługę ekranu, klawiatury, dźwięku (tylko wbudowanego głośnika), kolorów, okien;
Dos moduł z procedurami systemowymi;
Graph moduł do obsługi grafiki w Turbo Pascalu;
Graph3 moduł zawierający funkcje i procedury graficzne z Turbo Pascala 3, stworzony w celu umożliwienia uruchamiania programów napisanych w tej wersji kompilatora;
Overlay moduł to tworzenia programów z nakładkami;