Exemple #1
0
  // 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;
  }