Démineur simple avec delphi 6

Signaler
Messages postés
2
Date d'inscription
dimanche 14 décembre 2008
Statut
Membre
Dernière intervention
15 décembre 2008
-
Messages postés
43
Date d'inscription
dimanche 18 janvier 2009
Statut
Membre
Dernière intervention
25 juin 2009
-
Bonjour a tous,
Voila dans le cadre de mes études (génie mécanique donc aucune connaissance en programmation ) je dois créer un démineur très simple avec delphi 6. J' ai réussi a faire que lorsqu'on clique dans les cellules un 1 apparaissent quand il y a une mine et un 0 quand il n'y en a pas.( 10 mines apparaissent aléatoirement dans mon tableau a 10 lignes, 10 colonnes ). Je voudrai maintenant remplacer le 1 par M et le 0 par O quand on clique dans les cellules.
Quelle commande dois-je utiliser ?

Merci beaucoup !

4 réponses

Messages postés
3792
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
9
Peux-tu donner plus d'indications sur le support de ton démineur ?
TStringList, tableau dynamique ??
Changer un 1 et M et un 0 en O n'a pas l'air bien compliqué ...

Cordialement, Bacterius !
Messages postés
2
Date d'inscription
dimanche 14 décembre 2008
Statut
Membre
Dernière intervention
15 décembre 2008

Slt,
J'utilise des tableau dynamique mai je n'en sais pas beaucoup plus.
voila le code :

uUnit1;
    nit
interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, Menus, StdCtrls;

type
  TForm1 = class(TForm)
    Menu: TMainMenu;
    Partie1: TMenuItem;
    Nouveau1: TMenuItem;
    Meilleursscores1: TMenuItem;
    Quitter1: TMenuItem;
    Aide1: TMenuItem;
    sg_mines: TStringGrid;
    Demineur: TLabel;
    procedure Aide1Click(Sender: TObject);
    procedure Quitter1Click(Sender: TObject);
    procedure sg_minesSelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);
    procedure Nouveau1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Form1: TForm1;
  Tablemine:  Array[1..10,1..10] of integer;

implementation

{$R *.dfm}

procedure TForm1.Aide1Click(Sender: TObject);
begin
ShowMessage(':-D Aide pas encore disponible :-D');
end;

procedure TForm1.Quitter1Click(Sender: TObject);
begin
Application.Terminate;
end;

procedure TForm1.sg_minesSelectCell(Sender: TObject; ACol, ARow: Integer;
  var CanSelect: Boolean);
begin
       // Showmessage(InttoStr(Arow)+'-'+IntToStr(ACol));
        sg_mines.cells[ACol,ARow]:=inttostr(Tablemine[ARow+1,ACol+1]);
       
end;

procedure TForm1.Nouveau1Click(Sender: TObject);
        Var
        x,y:integer;
        i:integer;
begin
                For x:=1 To 10 Do
                For y:=1 To 10 Do begin
                   Tablemine[x,y]:=0;
                   sg_mines.cells [x-1,y-1]:='';
              End;

       for i:=1 to 10 do begin
          tablemine[random(10)+1,random(10)+1]:=1;
       end;
       begin
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Nouveau1.Click;
end;

end.

Merci !
Messages postés
3792
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
9
Bonsoir,
en gros tu voudrais que le texte soit autre chose que des 0 et des 1 ?

procedure TForm1.sg_minesSelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
begin
// On regarde la valeur de la cellule ...
case IntToStr(TableMine[ARow+1, ACol+1]) of
0: sg_mines.cells[ACol,ARow]:= 'O'; // C'est un 0 ! On met un O.
1: sg_mines.cells[ACol,ARow]:= 'M'; // C'est un 1 ! On met un M.
end;
end;

Voilà ! J'ai utilisé un case..of.

Cordialement, Bacterius !
Messages postés
43
Date d'inscription
dimanche 18 janvier 2009
Statut
Membre
Dernière intervention
25 juin 2009

Un démineur !!
Bientot
je vais poster une source qui réalise de façon clair le comportement réel d'un vrai jeux de Démineur !!
DEBIARS JUNIOR