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