Problème dans la manipulation d'une classe

Résolu
chandler8692 Messages postés 49 Date d'inscription vendredi 6 mai 2005 Statut Membre Dernière intervention 9 février 2007 - 11 mai 2005 à 21:29
chandler8692 Messages postés 49 Date d'inscription vendredi 6 mai 2005 Statut Membre Dernière intervention 9 février 2007 - 12 mai 2005 à 18:14
Alors, je ne trouve pas la solution à ce problème :



J'ai créé une classe que j'ai appellé cell() qui a comme objet 2 coordonnées coord[0] et coord[1]



public class cell

{

public int[] coord = new int[2];

}

Ensuite, dans Mainform() j'ai créé un tableau de cellule

cell[] cellule = new cell[100000];



Je veux que les coordonnées cellule[i].coord[0] et cellule[i].coord[1] soient différentes pour chaque cellule.

J'ai donc créé une fonction coordonnées() :



public void int[][]coordonnees()

{

int [,] coord = new int[100000,2];

Random rand = new Random();



for(int ligne=0;ligne<100000;ligne++)

{

coord[ligne,0]=4 + rand.Next() % (282);

coord[ligne,1]=4 + rand.Next() % (619);



for(int k=0;k<ligne;k++)

{


if (coord[ligne,0]==coord[k,0]
&& coord[ligne,1]==coord[k,1])

{ligne--;}

}

}

}





Cette fonction crée un tableau de 100000*2 et met dedans des
coordonnées en s'assurant que chaque nouveau couple est différent de
tous les précédents.



Mon problème réside dans le fait que je ne sais pas comment me servir
de ce programme (même en le modifiant) pour donner à chacune de mes
cellules cellule[i] une paire de coordonnées différentes.



Vous avez une idée ?

4 réponses

Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
12 mai 2005 à 06:32
Si c'est pour un affichage, pour des raison de performance tu pouvais ecrire ta cellule comme ca:


public struct Cell
{
public int coord1;
public int coord2;
}


Si tu declares une variable dans une fonction, la variable est locale et donc elle n'existe plus a la fin de la fonction ! Declares ta variable dans la classe et initialise la dans le constructeur.
3
ricklekebekoi Messages postés 303 Date d'inscription mardi 11 février 2003 Statut Membre Dernière intervention 24 avril 2009 5
11 mai 2005 à 23:24
Si jai bien compris, ce que tu veux cé éviter d'avoir un couple donc chaque membre est pareil ?

Si oui il suffirait de faire

if( coord[ligne,0] == coord[ligne,1] )
ligne--;
else
for(int k=0;k<ligne;k++)
{
if (coord[ligne,0]==coord[k,0] && coord[ligne,1]==coord[k,1])
{ligne--;}
}

Eric
0
chandler8692 Messages postés 49 Date d'inscription vendredi 6 mai 2005 Statut Membre Dernière intervention 9 février 2007
12 mai 2005 à 01:29
Non, mon problème n'était pas çelui-ci. J'avait créé un tableau de cellules

cell[] cellule = new cell[100000];

Chaque célule cellule[i] du
tableau a des coordonnées et je ne voulais pas qu'une cellule ait les
mêmes coordonnées qu'une autre cellule cellule[j]. En gros, je ne veux
pas 2 cellules au même point.

Mais j'ai résolu mon problème en ne créant plus un tableau de cellule
mais un objet cellule simple ayant un objet coord[100000,2]. Et
j'arrive à traiter cette classe là.



Mon programme marche donc à présent mais j'ai quand même une questions parceque quelque chose me pose un problème :

j'ai créé ma cellule dans MainForm() comme ça en gros :

Mainform() {cell cellule = new cell();}



Le problème est que je ne peux accéder aux objet de cellule que dans
MainForm() et dans aucune autre fonction. Comment dois-je faire pour
par exemple utiliser cellule.coord[1,1] dans une fonction graph() ?
0
chandler8692 Messages postés 49 Date d'inscription vendredi 6 mai 2005 Statut Membre Dernière intervention 9 février 2007
12 mai 2005 à 18:14
Merci, c'est vrai, je suis bête. Je l'ai fait pour 2 autres variables
et j'ai même pas pensé à le faire pour ma cellule. Enfin bon, merci.
0
Rejoignez-nous