Ejemplo n.º 1
0
 public void DeselectPlayerCard()
 {
     if (SelectedCard != null)
     {
         SelectedCard.Unselected();
         SelectedCard = null;
     }
 }
Ejemplo n.º 2
0
        private void PlayAITurn()
        {
            Board.ResetSpaceColors();
            SelectedCard = AIPlayer.SelectCardToPlay();
            BoardCardSpace boardSpace = AIPlayer.SelectSpaceToPlayOn(SelectedCard);

            PlayCard(boardSpace);
        }
Ejemplo n.º 3
0
        public void SelectPlayerCard(string clickedCardName)
        {
            DeselectPlayerCard();
            PlayerCardSpace clickedCard;

            try
            {
                clickedCard = ActivePlayer.Hand.Single(x => x.Name == clickedCardName);
                if (clickedCard.CanBeSelected())
                {
                    SelectedCard = clickedCard;
                    SelectedCard.Selected();
                    Board.ResetSpaceColors();
                }
            }
            catch (Exception)
            {
                return;
            }
        }
Ejemplo n.º 4
0
        public void TestAIPlayerCreation()
        {
            //arrange
            Deck     deck     = new Deck();
            Board    board    = new Board(deck);
            Player   player   = new Player(deck, 2);
            AIPlayer aiPlayer = new Aziraphale(board, player);

            player.DrawNewHand();
            PlayerCardSpace highestCard = player.Hand.OrderByDescending(x => x.Card.Value).First();

            //act

            PlayerCardSpace cardSpaceToPlayFrom = aiPlayer.SelectCardToPlay();
            Card            cardToPlay          = cardSpaceToPlayFrom.TakeCard();


            //assert
            Assert.AreEqual(4, aiPlayer.Player.Hand.Where(x => x.Card != null).Count());
            Assert.IsTrue(aiPlayer.Player.Hand.Contains(highestCard));
        }
Ejemplo n.º 5
0
        public override BoardCardSpace SelectSpaceToPlayOn(PlayerCardSpace selectedCard)
        {
            //The AI will always take the highest card it can on the board where possible
            List <BoardCardSpace> spacesThatCanBeTaken = Board.Spaces.Where(x =>
                                                                            x.Card != null &&
                                                                            x.Card.Value < selectedCard.Card.Value &&
                                                                            x.Owner != 2)
                                                         .OrderByDescending(x => x.Card.Value)
                                                         .ToList();

            if (spacesThatCanBeTaken != null)
            {
                foreach (BoardCardSpace boardSpace in spacesThatCanBeTaken)
                {
                    BoardCardSpace emptyNeighbouringSpace = FindRandomEmptyNeighbouringSpace(boardSpace);
                    if (emptyNeighbouringSpace != null)
                    {
                        return(emptyNeighbouringSpace);
                    }
                }
            }

            return(Board.RandomEmptySpace());
        }
Ejemplo n.º 6
0
 abstract public BoardCardSpace SelectSpaceToPlayOn(PlayerCardSpace selectedCard);