public class TestNim { private static boolean nuls(int [] valeurs) { for (int i = 0; i < valeurs.length; i++) { if (valeurs[i] != 0) { return false; } } return true; } private static void afficherEtat(int joueur, int [] paquets) { System.out.print("joueur " + joueur + " : "); for (int i = 0; i < paquets.length; i++) { System.out.print(paquets[i] + " "); } System.out.println(); } public static void main(String [] args) { int [] paquets = new int[args.length]; for (int i = 0; i < args.length; i++) { paquets[i] = Integer.parseInt(args[i]); } Jeu jeu = new Nim(paquets); Joueur [] joueurs = {new JoueurAvecTemps(new JoueurNimLecture()), new JoueurNimAleatoire()}; Coup dernierCoup = null; Reponse derniereReponse = new ReponseNim(paquets); int iJoueur = 0; while (! nuls(paquets)) { try { dernierCoup = joueurs[iJoueur].suivant(dernierCoup, derniereReponse); derniereReponse = jeu.jouer(dernierCoup); afficherEtat(iJoueur, paquets); iJoueur = (iJoueur + 1) % 2; } catch (CoupInvalideException e) { System.out.println("Coup incorrect, recommencez !"); } } System.out.println("Vous avez " + (iJoueur % 2 == 0 ? "gagné" : "perdu")); System.out.println("Temps moyen " + ((JoueurAvecTemps) joueurs[0]).tempsMoyen() + "s"); } }