import java.util.*; public class Plateau { public class Case { private int index; private Set<Pion> pions; public Case(int i) { index = i; pions = new HashSet<Pion>(); } public Iterator<Pion> iterator() { return pions.iterator(); } public void add(Pion p) { pions.add(p); } public void remove(Pion p) { pions.remove(p); } public boolean derniere() { return Plateau.this.cases.length-1==index; } public Case suivante(Mouvement m) { return Plateau.this.suivante(this,m); } } // fin classe Case private Case []cases; private Jeu jeu; public Plateau(Jeu j,int n) { cases = new Case[n]; for (int i=0; i<n; i++) cases[i] = new Case(i); jeu = j; } private Case suivante(Case c,Mouvement m) { if (m.direction()==Mouvement.AVANT) { if (c.index<cases.length-1) return cases[c.index+1]; else { m.inverse(); return suivante(c,m); } } else { if (c.index>0) return cases[c.index-1]; else return cases[c.index]; } } public void add(Pion p) { p.deposeSurLaCase(cases[0]); } public Case derniereCase() { return cases[cases.length-1]; } public String toString() { String s = ""; for (int i=0; i<cases.length; i++) { int idx=0; Iterator<Pion> it = cases[i].iterator(); while (it.hasNext()) { s += it.next().getNom(); idx++; } for (;idx<jeu.nombreDeJoueurs(); idx++) s += ' '; s += '|'; } return s; } }