Bonjour à tous,
Et oui c'est encore moi !
Mon problème est le suivant :
j'ai une classe et une liste d'objets.
Dans ma classe je créer un fonction du style void bouger () {}
Dans cette fonction j'aimerais pouvoir comparer le numéro de mon objet avec une variable.
Pour une liste de 20 objets et pour une variable hasard = int (random (0, 21))
je voudrais pouvoir dire dans ma fonction à l'intérieur de la classe
if ( le numéro de cet objet compris entre 0 et 21 == hasard) {
println("patatipatata"+numéro de cet objet);
}
Ce qui me permettrait de donner aléatoirement un comportement à un objet piocher au hasard parmi tout les objets.
Hors ligne
Si je comprends bien dans ton programme:
tu crées une liste dobjet donc un Objet[] mesObjets= new Objet[20];
tu dois initialiser tes objets, donc tu passes par une boucle for de ce type, dans ton setup
for(int i =0;i<mesObjets.length;i++){
mesObjets[i]= new Objet();
}
Si tu veux donner un comportement a un objet dont l'adresse correspondra a la valeur aléatoire, tu devras repasserer par une boucle for, donc le i du for correspondra a l'adresse de tes différents objets. Donc le "i" suffria de tester dans la boucle : i==ta valeur tiré aléatoirement.
Sinon tu peux passer comme argument le i de la boucle for, lors de l'initialisation de ton objet, mais la précédente solution me semble suffisante, sauf si tu utilises une liste dynamique ( arraylists ) et que tu ajoutes des objets au fur et a mesure de ton programme dans ta liste. Il faut juste générer la valeur aléatoire avant la boucle for et la stocker dans une variable.
Dernière modification par cgiles (2012-04-07 22:07:41)
Hors ligne
Super!
Je viens de comparer les codes et de trouver l'erreur.
J'avais un truc du genre
int n = 20; //
Objet[] mesObjets= new Objet[n];
for(int i =0;i<n;i++){
mesObjets[i]= new Objet();
La je viens d'essayer avec le mesObjets.length est ça fonctionne si j'appel i.
Merci.
PS: Merci aussi pour le ctrl+t
Hors ligne