Szachy

0

Hej! Mam prośbę! Czy ktoś może mi podać jak najwięcej przykładów na wartościowanie ruchów w szachach. Chodzi mi o np. położenie na szachownicy czy możliwość bić.
Z góry dzięki!

0

{ Program czyta wspolrzedne Hetmana na szachownicy }
{ i ilustruje, ktore pola sa w jego zasiegu. }

type
TPole = (nic, bije, stoi);

var
Szachownica : array [1..8, 'A'..'H'] of TPole;
Wiersz, I : Byte;
Kolumna, J : Char;

begin
for Wiersz := 1 to 8 do
for Kolumna := 'A' to 'H' do
Szachownica [Wiersz, Kolumna] := nic;

write ('Podaj kolumne: A..H: '); readln (Kolumna);
Kolumna := Upcase (Kolumna);
while ((Kolumna<'A') or (Kolumna>'H')) do
begin
write ('Bledna dana. Podaj kolumne: A..H: '); readln (Kolumna);
end;
write ('Podaj wiersz: 1..8: '); readln (Wiersz);
while ((Wiersz<1) or (Wiersz>8)) do
begin
write ('Bledna dana. Podaj wiersz: 1..8: '); readln (Wiersz);
end;

Szachownica [Wiersz, Kolumna] := stoi;

for I := 1 to 8 do
for J := 'A' to 'H' do
if (Szachownica [I, J] <> stoi) and
((I = Wiersz) or (J = Kolumna) or
(I+Ord(J)=Wiersz+Ord(Kolumna)) or
(I-Ord(J)=Wiersz-Ord(Kolumna))) then
Szachownica [I, J] := bije;

for I := 1 to 8 do
begin
for J := 'A' to 'H' do
if (Szachownica [I, J] = stoi) then write ('H ')
else if (Szachownica [I, J] = bije) then write ('x ')
else write ('. ');
writeln;
end;

readln;
end.

0

Wielkie dzięki za kodzik!
Tylko mam jeszcze jeden problem : nie wiem jak utworzyć listę możliwych ruchów dla wieży/gońca/hetmana (w delphi). Takie coś udało mi się tylko wtedy gdy tablica(szachownica była pusta:().

1 użytkowników online, w tym zalogowanych: 0, gości: 1