public static void MatchingAllCards()
        {
            var randomGrid = GameGridModel.GenerateRandomGrid();

            randomGrid.ResetCardStates();
            Assert.IsTrue(randomGrid.cards.Count % 2 == 0);

            int cycles = randomGrid.cards.Count / 2;

            for (int i = 0; i < cycles; i++)
            {
                Card selectedCard = randomGrid.cards.Find(x => (x.state != ECardState.Eliminated));
                Assert.IsNotNull(selectedCard);
                List <Card> match = randomGrid.cards.FindAll(x => (x.content == selectedCard.content));
                Assert.IsTrue(match != null && match.Count == 2);
                match[0].state = ECardState.FaceUp;
                match[1].state = ECardState.FaceUp;
                GameGridModel.UpdateGameGrid(randomGrid);
                Assert.IsTrue(match[0].state == ECardState.Eliminated);
                Assert.IsTrue(match[1].state == ECardState.Eliminated);
            }

            for (int i = 0; i < randomGrid.cards.Count; i++)
            {
                Assert.IsTrue(randomGrid.cards[i].state == ECardState.Eliminated);
            }
        }
        public static void SingleCardStaysFaceUp()
        {
            var randomGrid = GameGridModel.GenerateRandomGrid();

            randomGrid.ResetCardStates();
            Card selectedCard = randomGrid.cards[0];

            selectedCard.state = ECardState.FaceUp;
            GameGridModel.UpdateGameGrid(randomGrid);
            Assert.IsTrue(selectedCard.state == ECardState.FaceUp);
        }
示例#3
0
    void OnGridUpdated()
    {
        GameGridModel inputgrid = (isLeft) ? leftGrid : rightGrid;

        for (int j = 0; j < GameGridModel.HEIGHT; j++)
        {
            for (int i = 0; i < GameGridModel.WIDTH; i++)
            {
                var spr = grid[i, j];
                int val = inputgrid.GetGrid(i, j);
                spr.sprite = settings.tiles[val];
            }
        }
    }
        public static void NonMatchingCardsFlipDown()
        {
            var randomGrid = GameGridModel.GenerateRandomGrid();

            randomGrid.ResetCardStates();
            Card selectedCard    = randomGrid.cards[0];
            Card nonMatchingCard = randomGrid.cards.Find(x => (x.content != selectedCard.content));

            selectedCard.state    = ECardState.FaceUp;
            nonMatchingCard.state = ECardState.FaceUp;
            GameGridModel.UpdateGameGrid(randomGrid);

            Assert.IsTrue(selectedCard.state == ECardState.FaceDown);
            Assert.IsTrue(nonMatchingCard.state == ECardState.FaceDown);
        }
        public static void AllCardsHaveMatch()
        {
            var         randomGrid = GameGridModel.GenerateRandomGrid();
            List <Card> cardList   = randomGrid.cards;

            Assert.IsTrue(cardList.Count % 2 == 0);

            int cycles = cardList.Count / 2;

            for (int i = 0; i < cycles; i++)
            {
                Card card = cardList[0];
                cardList.RemoveAt(0);
                Card match = cardList.Find(x => (x.content == card.content));
                Assert.IsNotNull(match);
                Assert.IsTrue(cardList.Remove(match));
            }
            Assert.IsTrue(cardList.Count == 0);
        }
        public static void MatchingCardsEliminated()
        {
            var randomGrid = GameGridModel.GenerateRandomGrid();

            randomGrid.ResetCardStates();
            Card        selectedCard  = randomGrid.cards[0];
            List <Card> matchingCards = randomGrid.cards.FindAll(x => (x.content == selectedCard.content));

            for (int i = 0; i < matchingCards.Count; i++)
            {
                matchingCards[i].state = ECardState.FaceUp;
            }

            GameGridModel.UpdateGameGrid(randomGrid);

            for (int i = 0; i < matchingCards.Count; i++)
            {
                Assert.IsTrue(matchingCards[i].state == ECardState.Eliminated);
            }
        }