import java.util.*; class Allumettes { static final Scanner input = new Scanner(System.in); public static void main(String[] args) { int nbAllumettes; int joueur; boolean j1Humain; boolean j2Humain; int retire; System.out.println("-*- Jeu des allumettes -*-\n"); System.out.print("Joueur 1 humain (0:non, 1:oui) ? "); j1Humain = input.nextInt() != 0; System.out.print("Joueur 2 humain (0:non, 1:oui) ? "); j2Humain = input.nextInt() != 0; System.out.print("Nombre d'allumettes ? "); nbAllumettes = input.nextInt(); joueur = 1; System.out.println("Les joueurs, chacun leur tour, enlèvent 1, 2 ou 3 allumettes."); System.out.println("Joueur " + joueur + " commence."); while (nbAllumettes > 0) { System.out.print("\nIl reste " + nbAllumettes + " allumettes : "); for (int i = 0; i < nbAllumettes; i++) System.out.print("|"); System.out.println(); System.out.print("Joueur " + joueur); if ((joueur == 1 && j1Humain) || (joueur == 2 && j2Humain)) { // Joueur humain System.out.print(" ? "); retire = input.nextInt(); } else { // Joueur I.A. (stratégie optimale) retire = (nbAllumettes + 3) % 4; if (retire == 0) retire = 1; System.out.println(" retire " + retire + " allumette" + (retire > 1 ? "s" : "")); } if (retire < 1 || retire > 3 || retire > nbAllumettes) { System.out.println("Choix invalide : " + retire); } else { nbAllumettes -= retire; joueur = 3 - joueur; // on change de joueur } } System.out.println("Joueur " + joueur + " a gagné !"); } }