Human.java
package fr.umontpellier.iut.conquest.strategies;
import fr.umontpellier.iut.conquest.Board;
import fr.umontpellier.iut.conquest.Move;
import fr.umontpellier.iut.conquest.Player;
import java.util.Scanner;
/**
* Modélise la stratégie humaine.
*/
public class Human implements Strategy {
/**
* Scanner de l'entrée.
*/
private Scanner scan;
/**
* Constructeur.
*/
public Human(Scanner scan) {
this.scan = scan;
}
/**
* Retourne un coup valide à partir de l'entrée utilisateur.
*/
public Move getMove(Board board, Player player) {
Move move;
boolean moveIsInvalid;
do {
int r1, c1, r2, c2;
System.out.println("Entrez les coordonnées de départ :");
r1 = scan.nextInt();
c1 = scan.nextInt();
System.out.println("Entrez les coordonnées d'arrivée : ");
r2 = scan.nextInt();
c2 = scan.nextInt();
move = new Move(r1, c1, r2, c2);
moveIsInvalid = !board.isValid(move, player);
if (moveIsInvalid) {
System.out.println("Coup non valide !");
}
} while (moveIsInvalid);
return move;
}
}