internal static string JeuxJvO(int[,] plateau, int[] piecesJouables, int tour, int[][] piecesCalcul, int niveaux, string[] piecesRep) { bool type = true; int caseCourante = -1; int pieceCourante = -1; IHM.AfficherEcranJeux(plateau, piecesJouables, piecesRep, caseCourante, pieceCourante); string etat = "JEUX"; bool gagner = false; //============================================================================================================ // Départ de la Boucle de jeux pour un Player vs Ordi //============================================================================================================ bool sauvegarde = false; int[] piecesVides = new int[] { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }; while (!gagner) { if (piecesJouables.SequenceEqual(piecesVides)) { IHM.AfficherEgalite(); } IHM.AfficherInfoTour(tour, false, niveaux); // Tour de l'ordinateur if (tour % 2 == 0) { IHM.AfficherConseil(0); int idPiece = ChoisirPiece(piecesJouables, sauvegarde, plateau, tour, type, piecesRep); IHM.AfficherEcranJeux(piecesJouables, piecesRep); sauvegarde = IA.PoserPieceIA(out int position, idPiece, plateau, piecesCalcul); IHM.AfficherEcranJeux(plateau, piecesRep); IHM.AfficherConseil(6); gagner = TesterVictoire(idPiece, position, plateau, piecesCalcul); if (gagner) { etat = "PERDU"; } } // Tour du joueur else { int idPiece = IA.ChoisirPieceIA(piecesJouables, plateau, piecesCalcul, piecesRep); sauvegarde = false; IHM.AfficherConseil(1); IHM.AfficherEcranJeux(piecesJouables, piecesRep); sauvegarde = PoserPiece(out int position, idPiece, plateau, sauvegarde, piecesJouables, tour, type, piecesRep); IHM.AfficherEcranJeux(plateau, piecesRep); IHM.AfficherConseil(6); gagner = TesterVictoire(idPiece, position, plateau, piecesCalcul); if (gagner) { etat = "GAGNER"; } } tour++; } return(etat); }