1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| function Rejoue_(var APos: TPosition; const ACoup: string): boolean;
var
LDep, LArr, LColDep, LColArr, LLigDep, LLigArr, LPris: integer;
LType, LCouleur, LAdv: ^TDamier;
LPreserveCouleur: boolean;
begin
result := TRUE;
{ Conversion de la chaîne en index des cases de départ et d'arrivée. L'index est un nombre de 0 à 63. }
LDep := DecodeNomCase(Copy(ACoup, 1, 2));
LArr := DecodeNomCase(Copy(ACoup, 3, 2));
{ On assigne une valeur aux pointeurs en fonction du trait et dans la foulée on vérifie qu'il y a bien une pièce de la bonne couleur sur la case de départ. }
writeln('Rejoue_4'); // vu
if (APos.Trait = CBlanc)
and EstAllumeeIndex(APos.Blanches, LDep) then
begin
LCouleur := @APos.Blanches;
LAdv := @APos.Noires;
end else
if (APos.Trait = CNoir)
and EstAllumeeIndex(APos.Noires, LDep) then
begin
LCouleur := @APos.Noires;
LAdv := @APos.Blanches;
end else
exit(FALSE);
writeln('Rejoue_5'); // PAS vu
{ Pointeur vers le damier contenant la position des pièces de ce type. }
... |
Partager