Optimisation de code

dapst Messages postés 1 Date d'inscription lundi 26 mai 2008 Statut Membre Dernière intervention 26 mai 2008 - 26 mai 2008 à 22:25
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 - 26 mai 2008 à 22:42
Bonjour,
je développe actuellement un projet pour mon école et je suis donc débutant.
Nous développons du pascal sous Lazarus.
Alors voila ma question : j'ai du code (normal, hein !) qui aurait besoin d'être optimisé mais je ne sais pas comment m'y prendre.

Par exemple j'ai des "Case of" qui ressemblent à ça :
if matrice[X,Y]^.libre1=true then
begin
matrice[X,Y]^.Ban1:=Cpoisson1.create(1,1,QteEdit.Value,X,Y);
matrice[X,Y]^.libre1:=false;
end

Et y a des dizaines de trucs comme ça, où seuls les numéro de "Ban[i]", "Libre[i]" ou "CPoisson[i]" changent. Bien sûr on ne peut pas faire de procédures avec une variable pour changer ça, sauf si vous connaissez une astuce.

Pour infos :

matrice est une T_Matrice qui est un array of T_Tableau qui lui est un record dont les paramètres sont notamment "Ban[i]" et "Libre[i]" (i va de 1 à 5).

CPoisson lui est un type que partage plusieurs unités (héritage).

Je ne sais pas si j'ai été très clair, je vous remercie d'avance !

1 réponse

f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
26 mai 2008 à 22:42
TTableau = record
  Bans : array[0..4] of TPoisson; // ?
  Libres : array[0..4] of boolean;
  CPoissons : array[0..4] of TPoisson; // ?
end;




{[data order
  [ban 1...ban 5, libre 1...libre 5, CPoisson 1...CPoisson 5]

]}


ou encore :

TTableauItem = record
  Ban : TPoisson;
  Libre: boolean;
  Poisson : TPoisson;
end;

TTableau = array[0..4] of TTableauItem;

{[data order
  [(ban 1, libre 1, poisson 1)...(ban 5, libre 5, poisson 5)]

]}

parce que bon, les structures :

Tableau = record
  Ban1 : TTruc;

  Libre1 : Boolean;

  Poisson1 : TTruc;

  Ban2 : TTruc;

  Libre2 : Boolean;

  Poisson2 : TTruc;

  Ban3 : TTruc;

  Libre3 : Boolean;

  Poisson3 : TTruc;
 
...
end;

faut eviter hein ...

<hr size="2" width="100%" />
0
Rejoignez-nous