ĆWICZENIE
4.10
To ćwiczenie jest pouczające z kilku powodów. Po pierwsze, dla szachownicy użyjemy oczywiście dwuwymiarowej tablicy. Po drugie, dla ustalenia stanu danego poła szachownicy wykorzystamy typ wyliczeniowy (z polem może nic się nie dziać, hetman może mieć go w swoim zasięgu, bądź może na nim stać). Po trzecie wreszcie, musimy przyjrzeć się szachownicy i zobaczyć, jak zidentyfikować atakowane przez hetmana pola.
program cw4_10;
{ Program czyta współrzędne hetmana na szachownicy }
{ i ilustruje, które pola sa w jego zasięgu. }
{ Katalog r4_02 : 4_10.pas }
type
TPole - (nic, bije, stoi); var
Szachownica : array [1..8, 'A'..'H'] of TPole;
Wiersz, I : Byte;
Kolumna, 3 : Char;
begin
{ 1 )
for Wiersz 1 to 8 do
for Kolumna 'A' to 'H' do
Szachownica [Wiersz, Kolumna] nic;
{ 2 )
Write ('Podaj kolumnę: A..H: '); Readln (Kolumna);
Kolumna Upcase (Kolumna);
while ((Kolumna<'A') or (Kolumna>'H')) do
begin
Write ('Biedna dana. Podaj kolumnę: A..H: '); Readln (Kolumna); end;
Write ('Podaj wiersz: 1..8: '); Readln (Wiersz);
while ((Wiersz<l) or (Wiersz>8)) do
begin
Write ('Biedna dana. Podaj wiersz: 1..8: '); Readln (Wiersz); end;
Szachownica [Wiersz, Kolumna] stoi;
{ 4 }
for I :- 1 to 8 do
for 3 :- 'A' to ’ H' do
if (Szachownica [I, 3] <> stoi) and ((I - Wiersz) or (3 - Kolumna) or (I+0rd(3)-Wiersz+Ord(Kolumna)) or (I-Ord(3)-Wiersz-Ord(Kolumna))) then Szachownica [I, 3] bije;
{ 5 }
for I :■ 1 to 8 do begin
for 3 := 'A' to 'H' do
if (Szachownica [I, 3] - stoi) then Write ('H ')
else if (Szachownica [I, 3] = bije) then Write ('x ')