Télécharger le zip
Salut, corrige ton zip:seul les deux fichiers *.Pas les deux *.Dfm le *.Dpr sont nécessaire le reste tu peux le retirer vas voir dans les tuto comment faire une zip pour Codes Sources par f0xi. De plus, l'.exe n'est pas obligatoire!@+guillaume
De plus:Tous les fichiers qui ont une extension qui commence par le caractère "~"sont a supprimer ce sont des copies de sauvegardes que Delphi fait automatiquement.
De plus,dans ton a propos, qu'est ce que fait un copyright?Ensuite, presque aucun composant n'est nommé,ce qui ne facilite pas la lecture,bien que tu ais commenté! Pour finir, ben ca fonctionne, je continue a décortiqué tout ca !!
Et Les caption des boutons qui s'appellent "quittez, jouez",c'est pas terrible de les faire finir par un "z",non?
Non delphiste passer son chemin, CS n'est pas freeware.com mais un lieu d'entre-aide pour développeurs.
tu dis bien lieu d'entre-aide alors pourquoi supprimer mes postes? s'était un peut d'aide que je demandais... tsssssss vrément
Mais non, tu demandes exe en précisant que tu ne connais rien au delphi.Pose des questions sur le code et tout ira bien.
non,tu demandais un exe, ce qui est different. ici,on echange des codes delphi afin de faire partager ses connaissances et de permettre a tous de pouvoir apprendre et développer. Si tu veux des exe, va sur un site adéquat
rien a voir, je demande comment executer tu dis bien "de permettre a tous de pouvoir apprendre" et bien moi je voulais simplement apprendre a executer le delphi...
Apprendre a fair un exe n'est pas apprendre le delphi! il n'y a aucune relation avec du code. peut on clore ce sujet?
ah oui, le double clic sur exe, ça c'est surement très édifiant...
Entre compiler un exe, et double cliquer dessus ... effectivement, lolPour compiler faut faire "Projets" > "Compiler [Nom Projet]"Pour les options du projet et de la compilation c'est "Projets" > "Options"Trivial non ?
aie ...alors deja, virer toutes les shapes crée en dur.utiliser une matrice deja existante pour les créer dynamiquement:Plateau = array[1..10,1..5] of TShape;procedure CreatePlateau;var x, y : integer;begin for x := 1 to 10 do for y := 1 to 5 do begin Plateau[x,y] := TShape.Create; Plateau[x,y].parent:= Form1; Plateau[x,y].shape := stCircle; Plateau[x,y].width := 20; Plateau[x,y].height:= 20; Plateau[x,y].left := 23 + (30*y); Plateau[x,y].right := 34 + (30*x); end;end;par exemple, cela allegeras beaucoup le code et le programme.ensuite pour ce genre de truc :procedure Tform1.BtrougeClick(Sender: TObject);beginif (compteur >=1) and (compteur<=5) then begin proposition_joueur[compteur].Brush.color := clred; compteur:=compteur+1; end;end;fait plutot (declarer l'unité math dans les uses) :procedure Tform1.BtrougeClick(Sender: TObject);begin if inrange(compteur,1,5) then begin proposition_joueur[compteur].Brush.color := clred; inc(compteur); end;end;pour ça : if nb = 1 then begin Bp1.Caption := inttostr(bienplace); Mp1.Caption := inttostr(malplace); end; if nb = 2 then begin Bp2.Caption := inttostr(bienplace); Mp2.Caption := inttostr(malplace); end; if nb = 3 then begin Bp3.Caption := inttostr(bienplace); Mp3.Caption := inttostr(malplace); end; if nb = 4 then begin Bp4.Caption := inttostr(bienplace); Mp4.Caption := inttostr(malplace); end; if nb = 5 then begin Bp5.Caption := inttostr(bienplace); Mp5.Caption := inttostr(malplace); end; if nb = 6 then begin Bp6.Caption := inttostr(bienplace); Mp6.Caption := inttostr(malplace); end; if nb = 7 then begin Bp7.Caption := inttostr(bienplace); Mp7.Caption := inttostr(malplace); end; if nb = 8 then begin Bp8.Caption := inttostr(bienplace); Mp8.Caption := inttostr(malplace); end; if nb = 9 then begin Bp9.Caption := inttostr(bienplace); Mp9.Caption := inttostr(malplace); end; if nb = 10 then begin Bp10.Caption := inttostr(bienplace); Mp10.Caption := inttostr(malplace); end;fait plutot :function Resultat(var lb1,lb2 : TLabel);begin lb1.caption := inttostr(bienplace); lb2.caption := inttostr(malplace);end;// ---- //case nb of 1 : resultat(bp1,mp1); 2 : resultat(bp2,mp2); 3 : resultat(bp3,mp3); 4 : resultat(bp4,mp4); 5 : resultat(bp5,mp5); 6 : resultat(bp6,mp6); 7 : resultat(bp7,mp7); 8 : resultat(bp8,mp8); 9 : resultat(bp9,mp9); 10: resultat(bp10,mp10);end;pour ce genre de code : Shape56.Visible := true ; Shape57.Visible := true ; Shape58.Visible := true; shape59.Visible := true; shape60.Visible := true;grace a la matrice de tshape tu pourras pondre une fonction pratique :procedure ShowShape(var matrice : TShapeMatrice; index : array of integer);var x : integer;begin for x := 0 to high(index) do matrix[index[x]].visible := true;end;procedure HiddeShape(var matrice : TShapeMatrice; index : array of integer);var x : integer;begin for x := 0 to high(index) do matrix[index[x]].visible := false;end;utilisation :ShowShape(plateau,[56,57,58,59,60]);HiddeShape(plateau,[56,57,58,59,60]);pour la mise en place de la sequence secrete : voir le bug randomrange dans les codes sources et faire :{randomize doit etre declarer une seule fois dans le FormCreate}const ColorTable = array[1..5] of TColor = (clyellow,clblue,clred,clblack,clgreen);// --- //for i := 1 to 5 do begin nbhasar := round(randomrange(100,599)/100); // augmente les variations de couleurs proposition_ordi[i].Brush.Color := ColorTable[nbHasar]; tableau_couleur[i] := ColorTable[nbHasar];end;voila, bonne optimisation...
ouah fOxy,comme toujours très efficace, grosse optimisation et allegement de code, bravo!
merci pour cet allègement de code !!!
a la prochaine mises a jours, pour faire ton zip supprime ces fichiers de l'archive :mastermind/Aide.~dfmmastermind/Aide.~pasmastermind/Aide.dcumastermind/apropos.~dfmmastermind/apropos.~pasmastermind/apropos.dcumastermind/intmaster.~ddpmastermind/intmaster.~dfmmastermind/intmaster.~pasmastermind/intmaster.dcumastermind/intmaster.ddpmastermind/mastermind.~dprmastermind/mastermind.cfgmastermind/mastermind.dofmastermind/mastermind.exepour le code j'ai vus une autre optimisation possible et j'en profite pour faire un precieux rappel :- Pour les portions de codes repetée a plusieurs endroit dans le programme, la transformation en fonction ou procedure unique de cette derniere est a penser!je dis cela notement pour la selection d'une nouvelle combinaison secrete cela supprimerais plusieurs lignes de code inutile.et j'en profite aussi pour rappeler ceci :- Peu importe que votre programme soit utile ou non, soit complexe ou non, ce que l'on regarde surtout c'est son code : syntaxe, discipline d'indentation, optimisation multi-niveau, commentaires. Si une partie de code vous semble louche, inadaptée ou lourde c'est qu'elle l'est surrement et qu'une meilleure solution doit exister.
Salut, j'ai constaté une erreur dans ton programme en ce qui concerne les indices sur les pions bien placés et mal placés. En effet, si la combinaison à trouver contient 1 pion rouge (par exemple) et que la proposition du joueur contient 3 pions rouges dont 1 bien placé, ton programme dira: 1 bien placé et 2 mal placés. c'est faux, il n'y a qu'un bien placé et 0 mal placé. Tu dois compter les indices selon la combinaison à trouver et non selon la proposition du joueur. En clair, la somme des indices (bien ou mal placés) doit être égale à la somme des pions proposés effectivement contenus dans la combinaison à trouver.J'espère que mon conseil te sera utile.Bonne continuation.
J'ai eut le même soucie sur un mastermind que j'avais fait (dispo sur vbfrance.com), c'est un problème qu'on retrouve regulièrement sur la conception de ce jeu.
ok merci je vais corriger cela !!!
Se souvenir du profil
Mot de passe oublié ? / Activation de compteCréer un compte
1 872 719 membres 146 nouveaux aujourd'hui 16 150 membres club