Exemplo n.º 1
0
        public void DragonTileHolderGetsEliminatedAndDragonTileHolderReturnsToNull()
        {
            TestScenerios test = new TestScenerios();
            Tile          t1   = test.makeTile(0, 1, 2, 4, 3, 6, 5, 7);
            Tile          t2   = test.makeTile(0, 1, 2, 3, 4, 5, 6, 7);
            Tile          t3   = test.makeTile(0, 3, 2, 4, 1, 6, 5, 7);
            Tile          t4   = test.makeTile(0, 2, 4, 5, 1, 7, 3, 6);
            Tile          t5   = test.makeTile(1, 2, 3, 4, 5, 6, 7, 0);
            Tile          t6   = test.makeTile(1, 5, 2, 4, 3, 7, 0, 6);

            Board board = test.createBoardWithDrawPile(new List <Tile> {
            });

            SPlayer p1 = test.createPlayerAtPos("red", new List <Tile> {
                t3, t4
            }, new RandomPlayer(), new Posn(2, 2, 2), board);
            SPlayer p2 = test.createPlayerAtPos("green", new List <Tile> {
                t3, t4, t2
            }, new RandomPlayer(), new Posn(2, 2, 2), board);
            SPlayer p3 = test.createPlayerAtPos("sienna", new List <Tile> {
                t3, t4, t1
            }, new RandomPlayer(), new Posn(2, 2, 2), board);
            SPlayer p4 = test.createPlayerAtPos("blue", new List <Tile> {
                t3, t4
            }, new RandomPlayer(), new Posn(2, 2, 2), board);

            board.setDragonTileHolder(p4);
            board.eliminatePlayer(p1);
            board.eliminatePlayer(p4);

            Assert.AreEqual(4, board.drawPile.Count);
            Assert.IsFalse(board.existsDragonTileHolder());
        }
Exemplo n.º 2
0
        public void DragonTileHolderGetsEliminatedAndReturnsTilesToDrawPile()
        {
            TestScenerios test       = new TestScenerios();
            Tile          toPlayTile = test.makeTile(0, 4, 1, 5, 2, 6, 3, 7);
            Tile          redTile1   = test.makeTile(0, 1, 2, 3, 4, 5, 6, 7);
            Tile          redTile2   = test.makeTile(0, 3, 2, 4, 1, 6, 5, 7);
            Tile          blueTile1  = test.makeTile(0, 2, 4, 5, 1, 7, 3, 6);
            Tile          blueTile2  = test.makeTile(1, 2, 3, 4, 5, 6, 7, 0);
            Tile          randTile   = test.makeTile(1, 5, 2, 4, 3, 7, 0, 6);

            Board board = test.createBoardWithDrawPile(new List <Tile> {
            });

            SPlayer p1 = test.createPlayerAtPos("red", new List <Tile> {
                redTile1, redTile2
            }, new RandomPlayer(), new Posn(1, 2, 1), board);
            SPlayer p2 = test.createPlayerAtPos("green", new List <Tile> {
                randTile, randTile, randTile
            }, new RandomPlayer(), new Posn(3, 3, 3), board);
            SPlayer p3 = test.createPlayerAtPos("sienna", new List <Tile> {
                randTile, randTile, randTile
            }, new RandomPlayer(), new Posn(1, 5, 5), board);
            SPlayer p4 = test.createPlayerAtPos("blue", new List <Tile> {
                blueTile1, blueTile2
            }, new RandomPlayer(), new Posn(1, 2, 0), board);

            board.setDragonTileHolder(p4);
            Admin admin = new Admin();

            admin.playATurn(board, toPlayTile);

            Assert.AreEqual(4, board.drawPile.Count);
            Assert.IsFalse(board.existsDragonTileHolder());
        }
Exemplo n.º 3
0
        public void GetTurnResultOfEndOfGameFrom35TilesBeingPlaced()
        {
            TestScenerios test  = new TestScenerios();
            Board         board = test.createBoardWithDrawPile(new List <Tile> {
            });
            Tile t1             = test.makeTile(0, 1, 2, 3, 4, 5, 6, 7);

            for (int i = 0; i < 6; i++)
            {
                for (int j = 0; j < 6; j++)
                {
                    board.grid[i, j] = t1;
                }
            }
            board.grid[1, 1] = null;

            SPlayer p1 = test.createPlayerAtPos("green", new List <Tile> {
            }, new RandomPlayer(), new Posn(2, 2, 2), board);
            SPlayer p2 = test.createPlayerAtPos("sienna", new List <Tile> {
            }, new RandomPlayer(), new Posn(2, 2, 3), board);

            board.setDragonTileHolder(p1);
            TurnResult tr = board.GetTurnResult();

            Assert.IsTrue(tr.playResult != null);
        }
Exemplo n.º 4
0
        public void DragonTileHolderChangesFromPlayerToNullIfAfterDrawingAllPlayersHave3Tiles()
        {
            TestScenerios test = new TestScenerios();
            Tile          t1   = test.makeTile(0, 1, 2, 4, 3, 6, 5, 7);
            Tile          t2   = test.makeTile(0, 1, 2, 3, 4, 5, 6, 7);
            Tile          t3   = test.makeTile(0, 3, 2, 4, 1, 6, 5, 7);
            Tile          t4   = test.makeTile(0, 2, 4, 5, 1, 7, 3, 6);
            Tile          t5   = test.makeTile(1, 2, 3, 4, 5, 6, 7, 0);
            Tile          t6   = test.makeTile(1, 5, 2, 4, 3, 7, 0, 6);

            Board board = test.createBoardWithDrawPile(new List <Tile> {
                t1, t2
            });

            SPlayer p1 = test.createPlayerAtPos("blue", new List <Tile> {
                t3, t4
            }, new RandomPlayer(), new Posn(2, 2, 2), board);
            SPlayer p2 = test.createPlayerAtPos("red", new List <Tile> {
                t3, t4
            }, new RandomPlayer(), new Posn(2, 2, 2), board);
            SPlayer p3 = test.createPlayerAtPos("sienna", new List <Tile> {
                t3, t4, t1
            }, new RandomPlayer(), new Posn(2, 2, 2), board);

            board.setDragonTileHolder(p1);
            board.drawTilesWithDragonHolder();

            Assert.IsFalse(board.existsDragonTileHolder());
        }
Exemplo n.º 5
0
        public void ValidTurnCausePlayerToBeEliminated()
        {
            TestScenerios test = new TestScenerios();
            Tile          t1   = test.makeTile(0, 1, 2, 4, 3, 6, 5, 7);
            Tile          t2   = test.makeTile(0, 6, 1, 5, 2, 4, 3, 7);
            Tile          t3   = test.makeTile(0, 5, 1, 4, 2, 7, 3, 6);

            Admin       a        = new Admin();
            List <Tile> drawpile = test.makeDrawPile(t2, t3);
            Board       b        = test.createBoardWithDrawPile(drawpile);

            SPlayer p1    = new SPlayer("p1", new List <Tile>());
            Posn    p1Pos = new Posn(0, 1, 6);

            test.setStartPos(b, p1, p1Pos);
            SPlayer p2    = new SPlayer("p2", new List <Tile>());
            Posn    p2Pos = new Posn(4, 4, 0);

            test.setStartPos(b, p2, p2Pos);

            TurnResult tmpturn = a.playATurn(b, t1);

            Assert.IsTrue(b.returnEliminated().Count == 1, "count of eliminated players has not increased to 1");
            Assert.IsTrue(tmpturn.eliminatedPlayers.Count == 1, "count of eliminated players has not increased to 1");
            Assert.IsTrue(tmpturn.eliminatedPlayers.Exists(x => x.returnColor() == "p1"), "p1 has not been moved to eliminated players");
            Assert.IsFalse(tmpturn.currentPlayers.Exists(x => x.returnColor() == "p1"), "p1 has not been removed from current players");
            Assert.IsTrue(tmpturn.currentPlayers.Count == 1, "count of current players has not decreased to 1");
        }
Exemplo n.º 6
0
        public void PlayAValidTurnRemovesTileFromDrawPile()
        {
            TestScenerios test = new TestScenerios();
            Tile          t1   = test.makeTile(0, 1, 2, 4, 3, 6, 5, 7);
            Tile          t2   = test.makeTile(0, 6, 1, 5, 2, 4, 3, 7);
            Tile          t3   = test.makeTile(0, 5, 1, 4, 2, 7, 3, 6);

            Admin       a        = new Admin();
            List <Tile> drawpile = test.makeDrawPile(t2, t3);
            Board       b        = test.createBoardWithDrawPile(drawpile);

            SPlayer p1    = new SPlayer("p1", new List <Tile>());
            Posn    p1Pos = new Posn(0, 0, 3);

            p1.setPosn(p1Pos);

            SPlayer p2    = new SPlayer("p2", new List <Tile>());
            Posn    p2Pos = new Posn(4, 4, 0);

            p2.setPosn(p2Pos);

            b.registerPlayer(p1);
            b.registerPlayer(p2);

            List <SPlayer> l1 = new List <SPlayer>()
            {
                p1, p2
            };

            List <SPlayer> l2 = new List <SPlayer>();

            TurnResult tmpturn = a.playATurn(b, t1);

            Assert.AreEqual(1, tmpturn.drawPile.Count);
            Assert.IsFalse(tmpturn.drawPile.Exists(x => x.isEqual(t2)));

            List <Tile> hand = tmpturn.currentPlayers[1].returnHand();

            Assert.IsTrue(hand.Exists(x => x.isEqual(t2)));
        }
Exemplo n.º 7
0
        public void PlayAValidTurnChangesOrderOfInGamePlayers()
        {
            TestScenerios test = new TestScenerios();
            Tile          t1   = test.makeTile(0, 1, 2, 4, 3, 6, 5, 7);
            Tile          t2   = test.makeTile(0, 6, 1, 5, 2, 4, 3, 7);
            Tile          t3   = test.makeTile(0, 5, 1, 4, 2, 7, 3, 6);

            Admin       a        = new Admin();
            List <Tile> drawpile = test.makeDrawPile(t2, t3);
            Board       b        = test.createBoardWithDrawPile(drawpile);

            SPlayer p1    = new SPlayer("p1", new List <Tile>());
            Posn    p1Pos = new Posn(0, 0, 3);

            p1.setPosn(p1Pos);
            SPlayer p2    = new SPlayer("p2", new List <Tile>());
            Posn    p2Pos = new Posn(4, 4, 0);

            p2.setPosn(p2Pos);

            b.registerPlayer(p1);
            b.registerPlayer(p2);

            List <SPlayer> l1 = new List <SPlayer>()
            {
                p1, p2
            };

            List <SPlayer> l2 = new List <SPlayer>();

            TurnResult tmpturn = a.playATurn(b, t1);

            Assert.IsTrue(tmpturn.currentPlayers[0].returnColor() == "p2");
            Assert.IsTrue(tmpturn.currentPlayers[1].returnColor() == "p1");
            Assert.IsTrue(tmpturn.currentPlayers.Count == 2);
        }