// cette methode permet à un joueur de selectionner une piece, de selectionner l'endroit ou il // veut la jouer et de l'y deplacer public int tour(Couleur couleurJoueur) { Piece p; int x, y; boolean selectionOK; System.out.println("\nAu joueur " + couleurJoueur + " de jouer\n"); // selection d'une piece de la bonne couleur do { selectionOK = true; System.out.println("entrez les coordonnees de la piece a selectionner"); Scanner sc = new Scanner(System.in); x = sc.nextInt(); y = sc.nextInt(); System.out.println("coordonnees selectionnees : " + x + ", " + y); p = rechercherCoord(new Coordonnees(x, y)); // calcul des deplacements possibles de la piece selectionnee if (p != null) p.deplacementsPossibles(this); if (p == null) { System.out.println("\nselectionnez une piece pas une case vide!\n"); selectionOK = false; } else if (!p.get_couleur().equals(couleurJoueur)) { System.out.println("\nselectionnez une piece de votre couleur: le " + couleurJoueur + "\n"); selectionOK = false; } else if (p.get_casesJouablesPrises().isEmpty() && p.get_casesJouablesVides().isEmpty()) { System.out.println("\nla piece selectionnee ne peut pas bouger, selectionnez en une autre"); selectionOK = false; } } while (!selectionOK); System.out.println(p); // on demande au joueur où il veut se deplacer tant qu'il n'a pas choisi un emplacement valide do { System.out.println("Selectionnez la coordonnee de destination: "); Scanner sc = new Scanner(System.in); x = sc.nextInt(); y = sc.nextInt(); System.out.println("coordonnees selectionnees : " + x + ", " + y); // solution de secours: si le joueur veut changer de piece maintenant // il peut rentrer 99 et 99 if (x == 99 && y == 99) return tour(couleurJoueur); } while (p.seDeplacer(new Coordonnees(x, y), this) == 0); return 1; }
/* (non-Javadoc) * @see java.lang.Object#toString() */ @Override public String toString() { String chaine = ""; Iterator<Piece> it = this.get_pieces().iterator(); while (it.hasNext()) { Piece p = it.next(); p.deplacementsPossibles(this); chaine = chaine + p.toString() + "\n"; } return chaine; }