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
| procedure TF_jeu.DG_jeuClick(Sender: TObject);
var
rect:trect;
code_console : T_code;
begin
rect:=DG_jeu.CellRect(dg_jeu.col,Dg_jeu.row);
// init de la grille console
INIT_GRILLE_DEB(U_type.grille,strToInt(F_options.E_nombre.Text));
gagnant := false;
bloquee := false;
if nbre_joueur = 2
then // on joue à deux humains
begin
if ((U_type.gagnant = false) and (not U_type.bloquee) )
then
BEGIN
// regarder si on a les deux paires ou les deux impaires
if ( ((dg_jeu.col mod 2 = 0) and (DG_jeu.Row mod 2 =0 )) or ((dg_jeu.col mod 2 = 1) and (DG_jeu.Row mod 2 =1 )))
then
begin
// showmessage ('Case interdite');
end
else
begin // on trace et on change de joueur
DG_jeu.Canvas.Brush.Color:=couleur_joueur;
DG_jeu.Canvas.FillRect(rect);
// ajout dans la matrice console
CONV_GRAPH_TO_CONS(DG_jeu.row,DG_jeu.col,code_console.un,code_console.deux,code_console.trois,code_console.quatre);
TRAIT_CONSOLE(joueur,code_console,U_type.grille);
// verif si fin de partie
FIN_PARTIE_A_DEUX(U_type.grille,code_console.un,code_console.deux,strToint(F_options.E_nombre.text),joueur,gagnant,F_options.E_joueur1.Text,F_options.E_joueur2.Text);
// verif si grille bloquee
GRILLE_BLOQUEE(U_type.grille,strtoInt(F_options.E_nombre.Text),joueur,U_type.bloquee);
// on change de joueur
if L_joueur.Caption = F_options.E_joueur1.Text
then // on passe au joueur 2
begin
// change le nom
L_joueur.Caption:= F_options.E_joueur2.Text;
//change couleur de jeu
couleur_joueur := F_options.ColorBox_joueur2.Selected;
//change couleur nom
L_joueur.Font.Color := F_options.ColorBox_joueur2.Selected;
end; |
Partager