Ejemplo n.º 1
0
 /// <summary>
 /// Check si la partie est terminée en fonction du plateau de jeu passé en paramètres
 /// </summary>
 /// <param name="board">Etat du plateau de jeu</param>
 /// <returns>True si la partie est terminée</returns>
 public static bool Final(Board board)
 {
     for (int c = 0; c < 8; c++)
     {
         for (int l = 0; l < 8; l++)
         {
             if (board.GetBoard()[c, l] > -1)
             {
                 // Cellule prise
                 continue;
             }
             else
             {
                 if (board.IsPlayable(c, l, true) || board.IsPlayable(c, l, false))
                 {
                     // Un des deux joueurs peut encore jouer
                     return(false);
                 }
             }
         }
     }
     // Aucune possibilité
     return(true);
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Liste les coups jouables par un des deux joueurs d'après le plateau de jeu
        /// </summary>
        /// <param name="isWhite">Couleur du joueur. True = joueur blanc</param>
        /// <returns>Liste des coups possibles de ce joueur</returns>
        public List <Cell> Ops(bool isWhite)
        {
            var ops = new List <Cell>();

            for (int c = 0; c < 8; c++)
            {
                for (int l = 0; l < 8; l++)
                {
                    if (board.IsPlayable(c, l, isWhite))
                    {
                        ops.Add(new Cell(c, l));
                    }
                }
            }
            return(ops);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Test de l'IA en mode console.
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            Board boardWhite   = new Board();
            Board boardBlack   = new Board();
            Board boardArbitre = new Board();

            bool finished  = false;
            bool whiteTurn = false;

            while (!finished)
            {
                Board turnBoard = whiteTurn ? boardWhite : boardBlack;

                var move = turnBoard.GetNextMove(boardArbitre.GetBoard(), 4, whiteTurn);

                if (move.Item1 == -1 && move.Item2 == -1)
                {
                    PrintPass(whiteTurn);
                }
                else
                {
                    if (boardArbitre.IsPlayable(move.Item1, move.Item2, whiteTurn))
                    {
                        boardArbitre.PlayMove(move.Item1, move.Item2, whiteTurn);
                        boardBlack.PlayMove(move.Item1, move.Item2, whiteTurn);
                        boardWhite.PlayMove(move.Item1, move.Item2, whiteTurn);
                    }
                    else
                    {
                        PrintError(move, whiteTurn);
                        break;
                    }
                    PrintBoard(boardArbitre.GetBoard(), whiteTurn, move.Item1, move.Item2);
                }
                whiteTurn = !whiteTurn;

                finished = boardArbitre.IsFinished();

                //Console.ReadKey();
            }
            PrintFinish(boardArbitre);
            Console.ReadKey();
        }