Bonjour,
Depuis quelques jours, je rencontre le même problème, malgré mes aménagements de code, à la même ligne.
Mes variables Globales:
.......
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 var Form1 : TForm1; coordsPionsNX : array[1..16] of integer; // Coordonnées en X (left) des pions noir coordsPionsNY : array[1..16] of integer; // Coordonnées en Y (top) des pions noir nomsPionsN : array[1..16] of string; coordsPionsRX : array[1..16] of integer; // Coordonnées en X (left) des pions rouge coordsPionsRY : array[1..16] of integer; nomsPionsR : array[1..16] of string; indexInitN : integer = 1; indexInitR : integer = 1; coordsCasesX : array[1..64] of integer; coordsCasesY : array[1..64] of integer; nomsCases : array[1..64] of string; // Emplacement des pieces sur l'Echiquier : Il y a des cases ayant des Pieces Rouge - Noir - Vide emplacementPieces : array[1..64] of string; pionNSelectionner : array[1..16] of boolean; // Tableau du pion Noir Sélectionner pionRSelectionner : array[1..16] of boolean; // Tableau du pion Rouge Sélectionner // Cases sur lesquelles la pièce sélectionner peut être déplacer deplacementPieces : array[1..64] of boolean;
.......
L'exception à été signalé à la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68 // typePiece : roi, tour, fou, pion etc.. // posInTab : index procedure typeDeplacementPionN(typePiece : string; posInTab : integer); var x : integer; // variable pour les boucles yTop, yDown : integer; // variable pour l'incrémentation positive et négative continuer : boolean; // permet de sortir du repeat compte, increment : integer; // fait un comptage - permet de sauter une ou des 'lignes' dans l'échiquier coordEnX : integer; // Coordonnée X de la pièce sélectionner coordEnY : integer; // Coordonnée Y de la pièce sélectionner begin // Réinitialisation Du Tableau des Déplacements for x:= 1 to 64 do begin deplacementPieces[x] := false; end; coordEnX := coordsPionsNX[posInTab]; coordEnY := coordsPionsNY[posInTab]; case typePiece of {UNE TOUR} 'uneTour' : begin increment := 48; // Incrémente de 48 'pixel' (je ne connais pas l'unité dans Lazarus) compte := 1; // Effectue un comptage continuer := true; // Permet de sortir du repeat yTop := 1; // Variable qui s'incrémente positivement repeat // Lorsque COMPTE atteind <8>, INCREMENT permet l'ajout d'une ligne if compte > 8 then begin compte := 1; increment := increment + 48; end; // Si limite des Cases de L'Echéquier n'est pas Dépasser // Si les Coordonnées du Déplacement Correspond à une Case if (coordEnY + increment <= 392) and (coordEnY + increment = coordsCasesY[yTop]) and (coordEnX + increment = coordsCasesX[yTop]) then begin // Si à Cet Emplacement est Vide ou Contient une PieceRouge if (emplacementPieces[yTop] = 'vide') or (emplacementPieces[yTop] = 'pieceRouge') then begin deplacementPieces[yTop] := true; if emplacementPieces[yTop] = 'pieceRouge' then continuer := false; end else begin continuer := false; end; end; yTop := yTop + 1; compte := compte + 1; until continuer = false; end; end;
Pourtant, mon code pour le déplacement du roi et du pion, UNE CASE, ne pose pas de problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 if (coordEnY + increment <= 392) and (coordEnY + increment = coordsCasesY[yTop]) and (coordEnX + increment = coordsCasesX[yTop])
Partager