Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
Rys.1.10.FunkcjaWygenerujRuch(pozx,pozy:integer;c:byte),cz.4,treśćproceduryporuszającej
pionkiem.
Pozycjenajakiemożeporuszyćsiępioneklubfigurazapisywanedozmiennejtablicowej
odzwierciedlającejróżnesytuacjenaplanszy:
pozycja[x,y].c=kolorfigury,
pozycja[x,y].irf=rodzajfigury,1pionek,2goniec,3koń,4wieża,5hetman,6król,
pozycja[x,y].dozwruch=0lub1,bijącylubniebijącyruchfigurylubpionka,1gdyruchnatopole
jestdozwolony,
pozycja[x,y].nbdozwruch=0lub1,wruchupionkaniebijącyruchdoprzodu,1gdyruchnato
polejestdozwolony
pozycja[x,y].bdozwruch=0lub1,wruchupionkapozycjeszachowanenaskos,1gdyruchnato
polejestdozwolony,
takaróżnorodnośćwynikaztegożepolemożebyćpuste,możesięnanimznajdowaćfigura
własnegokoloru,lubfiguraprzeciwnegokoloru,funkcjaumożliwianietylkosporządzenie
zestawieniaruchówktórefiguralubpionekmogąwykonać,lecztakżeumożliwiawyświetlenie
asystynaktórepolamożesiędanafiguralubpionekporuszyć,orazjakiepolaszachowane,
wartozauważyćżepionekporuszasięzawszedoprzodu,aleszachujeibijenaskosdoprzoduw
prawoiwlewo,natomiastinnefigury,poruszająsiętakjakszachują.Ważnymelementemgryw
szachyjestrozróżnieniepozycjinajakiemożesięporuszyćpojedynczafigura,aruchów
dozwolonychcałejdrużynyktórewszachachograniczanewarunkiemżewykonującruchnie
możemyodsłonićpozycjikróla,toznaczyruchjestmożliwydowykonaniajeślipotymruchu
pozycjakrólaniebędzieszachowana.Ostateczneokreśleniedozwolonychwgrzeruchówwymaga:
wygenerowanianowejplanszyznowymustawieniempionkówifigurizbadaniastanupartiipo
ruchuczywłasnykrólpotymruchuniejestszachowany,jeślitaktoruchniebyłdozwolony,oraz
sprawdzeniajakijeststanpartiipowykonanymruchu.
Algorytmgenerowaniadrzewaruchówjestwięctaki,najpierwdlakażdegopionkaifigury
zaznaczamywewspółrzędnychx,ypozycja[x,y].dozwruchisumujemylogiczniez
pozycja[x,y].nbdozwruch(aleniezpozycja[x,y].bdozwruch)abyokreślićnajakiepolamożemysię
poruszyć,następniedlakażdegopolagenerujemynowąplanszęznowąpozycjąfiguripionków,po
sprawdzeniużeruchnieodsłoniłfigurykrólaprzedszachem,zapisujemyplanszęjakoprawidłową
planszępierwszejwarstwy,następnieoceniamystanpartiiabywiedziećgdzieprowadzi
sprawdzanyruchczydoszacha,remisu,sukcesuczydalszejgry,następniegenerujemyruchy
możliwedowykonaniaprzezpionkidrużynyprzeciwnejitakpowstajedrugawarstwa,następnie
tworzymytrzeciawarstwęnaszychruchówiczwartąwarstwęprzewidywanychruchów
przeciwnika,wartozauważyćżesukcesywystępująwwarstwachwktórychmywykonujemyruch
17