fbaudoux_ir
Messages postés2Date d'inscriptionsamedi 25 décembre 2004StatutMembreDernière intervention12 février 2007 18 déc. 2006 à 16:58
je ne comprends vraiment pas ce que ce jeu est censé faire, à part allumer des leds.
Il y t'il un règlement quelque part ?
DRJEROME
Messages postés436Date d'inscriptionjeudi 9 janvier 2003StatutMembreDernière intervention 5 février 2015 17 déc. 2006 à 18:46
Salut,
comme il y a écrit "Débutant"... je respecte
je serai donc moins exigeant,
juste une suggestion :
on pourrait mettre une copie d'écran (screenshot)
merci bonne prog
JulioDelphi
Messages postés2226Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention18 novembre 201014 15 déc. 2006 à 21:51
j'aimerais un titre un peu plus précis que "jeu" ;)
merci
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202235 15 déc. 2006 à 02:04
en fait, il faut toujours se poser ce genre de questions :
qu'est-ce que je veux faire ?
comment l'obtenir en theorie ?
comment faire en pratique ?
je suis en train de faire beaucoup trop de IF ... THEN, n'y a t'il pas mieux ?
c'est trop lent, je dois mal gerer cette chose ... ?
y'a peu etre trop de code par rapport au resultat, dois-je optimiser ?
peut etre pourrais-je faire appel aux objets, aux classes, aux pointeurs ?
et des questions comme cela, y'en a des tonnes, mais toutes te guide vers un resultat meilleur.
les trucs a retenir, toujours penser a poser au brouillon sur du papier divers mecanismes de routine (comment on veux le faire, comment c'est faisable), etudier les mecanismes rapides qu'offre le langage et les techniques de programmation (precalculs, logique, math, poo), faire des recherches sur le net, etudier, analyser des bouts de codes en rapport direct ou indirect avec son projet, demander des avis quand on buche sur une difficultée réelle, et enfin tester son code, ameliorer l'interrractivitée ect...
hello007
Messages postés1Date d'inscriptionvendredi 31 janvier 2003StatutMembreDernière intervention14 décembre 2006 14 déc. 2006 à 23:57
merci pour la remarque. je vais essayer de ne pas mettre ce genre d'erreurs dans mes nouvelles sources.
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202235 13 déc. 2006 à 01:53
ah aussi, tu peu retirer de ton zip les fichier .DOF, .CFG et .DCU
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202235 13 déc. 2006 à 01:51
mmm
pas trés soigné tout ça ... de plus la technique n'est pas au rendez-vous ... dommage car ce genre de petite enigme peuve trés vite nous prendre du temps a les resoudres...
alors premier point, INDENTE TON CODE!
aligner tout sur la meme ligne ça ne fait pas jolie et sa rend la lecture du code plus difficile peut importe le niveau du développeur qui lit la source.
deuxieme point, pense a créer des fonctions qui permettent d'accelerer les traitements c'est toujours utile. notement des inverseurs ect...
voici une correction, plus legere mais plus technique :
type
TEnigma = record
V : Integer;
G : TBitBtn;
end;
var
Tab : array[1..7] of TEnigma;
Cmp : Integer = 0;
ImgInv : array[0..1] of string = ('Led1off.bmp','Led1on.bmp');
FinInv : array[boolean] of string = ('Led2off.bmp','Led2on.bmp');
ValInv : array[boolean] of byte = (0,1);
// INVERSEUR
procedure Inverseur(const index : array of integer);
var N : integer;
begin
for N := 0 to high(index) do
with Tab[index[N]] do begin
V :ValInv[V 0];
G.Glyph.LoadFromFile(ImgInv[V]);
end;
end;
// VERIFICATION
function Verification : boolean;
var r,n : integer;
begin
r := 0;
for n := 1 to 7 do
inc(r,Tab[n].V);
result :r 7;
end;
for N := 1 to 7 do
with Tab[N] do begin
V := 0;
G.OnClick := DoEnigmaClick;
G.Tag := N;
end;
Edit1.Text := '0';
end;
// RESET
procedure TForm1.Button2Click(Sender: TObject);
Var i: integer;
begin
for i := 1 to 7 do begin
Tab[i].V := 0;
Tab[i].G.Glyph.LoadFromFile(ImgInv[0]);
end;
cmp := 0;
Edit1.Text := '0';
BitBtn8.Glyph.LoadFromFile(FinInv[false]);
end;
// ENIGME RESOLUE
procedure TForm1.BitBtn8Click(Sender: TObject);
begin
if Verification then begin
ShowMessage('Enigme resolue !!!');
end;
end;
// CONBINAISON
procedure TForm1.DoEnigmaClick(Sender: TObject);
begin
inc(cmp);
Edit1.Text := inttostr(cmp);
case (Sender as TBitBtn).Tag of
1 : Inverseur([1,4,5]);
2 : Inverseur([2,5,6]);
3 : Inverseur([3,6,7]);
4 : Inverseur([4,7,1]);
5 : Inverseur([5,1,2]);
6 : Inverseur([6,2,3]);
7 : Inverseur([7,3,4]);
end;
BitBtn8.Glyph.LoadFromFile(FinInv[Verification]);
end;
18 déc. 2006 à 16:58
Il y t'il un règlement quelque part ?
17 déc. 2006 à 18:46
comme il y a écrit "Débutant"... je respecte
je serai donc moins exigeant,
juste une suggestion :
on pourrait mettre une copie d'écran (screenshot)
merci bonne prog
15 déc. 2006 à 21:51
merci
15 déc. 2006 à 02:04
qu'est-ce que je veux faire ?
comment l'obtenir en theorie ?
comment faire en pratique ?
je suis en train de faire beaucoup trop de IF ... THEN, n'y a t'il pas mieux ?
c'est trop lent, je dois mal gerer cette chose ... ?
y'a peu etre trop de code par rapport au resultat, dois-je optimiser ?
peut etre pourrais-je faire appel aux objets, aux classes, aux pointeurs ?
et des questions comme cela, y'en a des tonnes, mais toutes te guide vers un resultat meilleur.
les trucs a retenir, toujours penser a poser au brouillon sur du papier divers mecanismes de routine (comment on veux le faire, comment c'est faisable), etudier les mecanismes rapides qu'offre le langage et les techniques de programmation (precalculs, logique, math, poo), faire des recherches sur le net, etudier, analyser des bouts de codes en rapport direct ou indirect avec son projet, demander des avis quand on buche sur une difficultée réelle, et enfin tester son code, ameliorer l'interrractivitée ect...
14 déc. 2006 à 23:57
13 déc. 2006 à 01:53
13 déc. 2006 à 01:51
pas trés soigné tout ça ... de plus la technique n'est pas au rendez-vous ... dommage car ce genre de petite enigme peuve trés vite nous prendre du temps a les resoudres...
alors premier point, INDENTE TON CODE!
aligner tout sur la meme ligne ça ne fait pas jolie et sa rend la lecture du code plus difficile peut importe le niveau du développeur qui lit la source.
deuxieme point, pense a créer des fonctions qui permettent d'accelerer les traitements c'est toujours utile. notement des inverseurs ect...
voici une correction, plus legere mais plus technique :
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, ExtCtrls;
type
TForm1 = class(TForm)
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
BitBtn6: TBitBtn;
BitBtn7: TBitBtn;
Button2: TButton;
BitBtn8: TBitBtn;
Edit1: TEdit;
// DoEnigmaClick est créée manuellement !
procedure DoEnigmaClick(Sender: TObject);
procedure BitBtn8Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
type
TEnigma = record
V : Integer;
G : TBitBtn;
end;
var
Tab : array[1..7] of TEnigma;
Cmp : Integer = 0;
ImgInv : array[0..1] of string = ('Led1off.bmp','Led1on.bmp');
FinInv : array[boolean] of string = ('Led2off.bmp','Led2on.bmp');
ValInv : array[boolean] of byte = (0,1);
// INVERSEUR
procedure Inverseur(const index : array of integer);
var N : integer;
begin
for N := 0 to high(index) do
with Tab[index[N]] do begin
V :ValInv[V 0];
G.Glyph.LoadFromFile(ImgInv[V]);
end;
end;
// VERIFICATION
function Verification : boolean;
var r,n : integer;
begin
r := 0;
for n := 1 to 7 do
inc(r,Tab[n].V);
result :r 7;
end;
// INIT
procedure TForm1.FormCreate(Sender: TObject);
var N : integer;
begin
Tab[1].G := BitBtn1;
Tab[2].G := BitBtn2;
Tab[3].G := BitBtn3;
Tab[4].G := BitBtn4;
Tab[5].G := BitBtn5;
Tab[6].G := BitBtn6;
Tab[7].G := BitBtn7;
for N := 1 to 7 do
with Tab[N] do begin
V := 0;
G.OnClick := DoEnigmaClick;
G.Tag := N;
end;
Edit1.Text := '0';
end;
// RESET
procedure TForm1.Button2Click(Sender: TObject);
Var i: integer;
begin
for i := 1 to 7 do begin
Tab[i].V := 0;
Tab[i].G.Glyph.LoadFromFile(ImgInv[0]);
end;
cmp := 0;
Edit1.Text := '0';
BitBtn8.Glyph.LoadFromFile(FinInv[false]);
end;
// ENIGME RESOLUE
procedure TForm1.BitBtn8Click(Sender: TObject);
begin
if Verification then begin
ShowMessage('Enigme resolue !!!');
end;
end;
// CONBINAISON
procedure TForm1.DoEnigmaClick(Sender: TObject);
begin
inc(cmp);
Edit1.Text := inttostr(cmp);
case (Sender as TBitBtn).Tag of
1 : Inverseur([1,4,5]);
2 : Inverseur([2,5,6]);
3 : Inverseur([3,6,7]);
4 : Inverseur([4,7,1]);
5 : Inverseur([5,1,2]);
6 : Inverseur([6,2,3]);
7 : Inverseur([7,3,4]);
end;
BitBtn8.Glyph.LoadFromFile(FinInv[Verification]);
end;
end.
voila... bon code.