Exemplo n.º 1
0
        // Only selects a random piece and position when there is no plays better than the one originally selected
        public static winningMove RandomPlay(winningMove winChoice)
        {
            int        rand;
            var        rnd = new Random();
            List <int> playablePieces;
            List <int> playablePositions;

            if (winChoice.heuristicValue == 0)
            {
                playablePositions = AIFunctions.makePlayablePositionList(winChoice.winningNode.gameBoard);
                if (playablePositions.Count() == 0)
                {
                    return(winChoice);
                }
                else if (playablePositions.Count() - 1 == 0)
                {
                    rand = 0;
                }
                else
                {
                    rand = rnd.Next(0, playablePositions.Count() - 1);
                }
                winChoice.winningNode.moveOnBoard = playablePositions[rand];

                playablePieces = AIFunctions.makePlayablePiecesOnly(winChoice.winningNode.pieces);
                if (playablePieces.Count() == 0)
                {
                    return(winChoice);
                }
                else if (playablePieces.Count() - 1 == 0)
                {
                    rand = 0;
                }
                else
                {
                    rand = rnd.Next(0, playablePieces.Count() - 1);
                }
                winChoice.winningNode.pieceToPlay = playablePieces[rand];
            }

            return(winChoice);
        }