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()); }
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()); }
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); }
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()); }
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"); }
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))); }
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); }