Iterator a la maison ou au front?

Iterator a la maison ou au front? - Java - Programmation

Marsh Posté le 06-01-2006 à 22:24:31    

Bonjour,
 
Je developpe un petit jeu. Je travaillais avec un double tableau d'objets Cases pour le damier du jeu.
J'ai décidé d'implanter une classe Matrice qui extends AbstractCollection.
Mais j'ai quelques petits problèmes dans le rete de mon jeu pour utiliser la boucle for étendue..
 
Je vous met quelques sources:
 
Classe Matrice:
 

Code :
  1. package Moteur;
  2. import java.util.*;
  3. public class Matrice<E> extends AbstractList implements Iterable {
  4. ArrayList<E> matrice=new ArrayList<E>();
  5. int coteX;
  6. int coteY;
  7. E get(int x, int y) throws IllegalArgumentException{
  8.  if(x<0 || x>=coteX || y<0 || y>=coteY )
  9.   throw new IllegalArgumentException();
  10.  return get(coteX*y+x);
  11. }
  12. public E get(int index) throws IllegalArgumentException{
  13.  if(index<0 || index>=size())
  14.   throw new IllegalArgumentException();
  15.  return matrice.get(index);
  16. }
  17. public int size(){
  18.  return matrice.size();
  19. }
  20. public Iterator<E> iterator(){
  21.  return matrice.iterator();
  22. }
  23. public Iterator<E> iterateurPionBloque(Position p){
  24.  return new IterateurPionBloque<E>(this,p);
  25. }
  26. public void add(E o){
  27.  matrice.add(o);
  28. }
  29. Matrice(int coteX,int coteY){
  30.  this.coteX=coteX;
  31.  this.coteY=coteY;
  32. }
  33. }
  34. ...


 
 
Et la manière dont je veux utiliser ma matrice:
 

Code :
  1. public Matrice<Case> cases = new Matrice<Case>(Cstes.cotePlateauX,Cstes.cotePlateauY);


 
Jusqu'ici pas de problèmes..
 
Mais la:
 

Code :
  1. for(Matrice<Case> m:cases)
  2. m.initialisation();


 
Ca me souligne cases en rouge et ca me dit: cannot convert Object to Case.
 
Ca c'est sur qu'on peut pas convertit un objet en Case, mais c'est pas ce que j'ai voulu faire..
J'ai juste parcourir mes Cases..
 
Si quelqu'un a une idée de comment parcourir mes cases avec la boucle for étendue..
 
 
Merci


Message édité par milootooloo le 07-01-2006 à 02:40:35
Reply

Marsh Posté le 06-01-2006 à 22:24:31   

Reply

Marsh Posté le 06-01-2006 à 23:41:27    

spa plutot  
 

Code :
  1. for(Case case:cases){
  2. }


? [:petrus75]

Reply

Marsh Posté le 07-01-2006 à 00:07:46    

Merci de ta réponse..
 
Heu sinon, j'ai une question idiote..
Le mieux, c'est de définir les itérateurs la ou on les utilise ou dans le fichier du conteneur associé?
Merci


Message édité par milootooloo le 07-01-2006 à 02:33:49
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed