silversword666
Messages postés10Date d'inscriptionjeudi 14 juin 2007StatutMembreDernière intervention13 mai 2009
-
16 juin 2007 à 18:38
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 2016
-
25 mars 2008 à 23:05
Bonjour,
Dans le cadre de mon cours de delphi je dois développer un programme qui en ce qui me concerne, est le jeu du pendu.
Je me trouve confronté à un problème qui est le suivant :
J'ai défini des mots en incluant chaque lettre du mot dans une case d'un tableau de type Tmot par exemple:
mot[1]:='b';
mot[2]:='o';
mot[3]:='n';
mot2[1]:='e';
mot2[2]:='t'; etc...
J'ai ensuite créé un tableau de type Tdico=array[1..10] of Tmot; et dans ce tableau j'ai mis mes mots:
dico[1]:=mot;
dico[2]:=mot2;
Je souhaiterais donc faire en sorte qu'en cliquant sur un bouton, un des mots soit pris au hasard pour être le mot à découvrir et mon problème est que je n'arrive pas à utiliser la fonction random, je cherche quelque chose du type:
MotATrouver:=random(dico[i]);
Merci d'avance de votre aide!
Cordialement,
Franck.
silversword666
Messages postés10Date d'inscriptionjeudi 14 juin 2007StatutMembreDernière intervention13 mai 2009 16 juin 2007 à 22:34
Bonsoir,
En fait j'avais choisi cette méthode car de cette façon j'affiche les lettres correctes dans des Labels : un label par lettre, via une boucle :
for i:=1 to 12 do begin
if edit1.text=mot[i] then
tableau[i].Caption:=edit1.Text
else Label2.Caption:=Label2.Caption+edit1.Text;
end;
Puis-je faire de meme avec une TStringList?
Merci d'avance!
Vous n’avez pas trouvé la réponse que vous recherchez ?
silversword666
Messages postés10Date d'inscriptionjeudi 14 juin 2007StatutMembreDernière intervention13 mai 2009 16 juin 2007 à 23:25
J'ai oublié de préciser que edit1 est le edit ou l'on propose une lettre et aussi que chaque case de tableau[i] est un label... Donc un label affiche une lettre du mot. De plus, le "else" ne fonctionne pas, en effet, les lettres correctes s'inscrivent aussi dasn label2 alors qu'il est dédié au lettres qui ne sont pas dans le mot.
florenth
Messages postés1023Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention17 août 20082 17 juin 2007 à 10:59
Mais tu peux ausi faire ça avec un TStringList, et en plus simple (en partant du fait que edit1 ne contient qu'une lettre, ce qui serait logique):
<hr size="2" width="100%" />var
P: Integer;
begin
P := Pos(Edit1.Text, Dico[IndexDuMotDemande]);
if P > 0 then
Tableau[P].Caption := Dico[IndexDuMotDemande][P]
else
Label2.Caption := Label2.Caption + Dico[IndexDuMotDemande][P];
end;
<hr size="2" width="100%" />
Et les variables globales sont définies comme suit :
silversword666
Messages postés10Date d'inscriptionjeudi 14 juin 2007StatutMembreDernière intervention13 mai 2009 17 juin 2007 à 15:25
Bonjour,
Tout d'abord, merci florenth ta méthode a parfaitement fonctionné et m'a bcp aidé! juste une chose si quelqu'un d'autre se sert de cette méthode, avant de mettre des mots dans le dico : dico.Add('salut'); il faut créer le dico : dico:= TStringList.Create;
Ensuite, j'aimerais savoir si c'est possible de compter le nb de caractères affichés dans un panel?
silversword666
Messages postés10Date d'inscriptionjeudi 14 juin 2007StatutMembreDernière intervention13 mai 2009 25 mars 2008 à 22:59
Bonsoir Bacterius,
Pour ma part, j'ai eu des cours de Delphi en première année de ma formation. Il s'agit du DEUST AMRL à l'université d'Orsay. C'est la seule façon que je connaisse pour avoir des cours de Delphi que je connaisse (mais certainement pas la seul) et si tu veux suivre cette vois, il faut que tu aies le bac...
En espérant t'avoir aidé!
Cordialement,
SSW666