public void TestMostSymmetricPlayerPlayTurnNoLegalHand() { MostSymmetricPlayer mPlayer = new MostSymmetricPlayer("mark"); List <string> other_colors = new List <string>(); foreach (string color in Constants.colors) { if (color != "blue") { other_colors.Add(color); } } mPlayer.Initialize("blue", other_colors); server.AddPlayer(mPlayer, "blue"); Player player = new Player(mPlayer, "blue"); server.board.AddPlayerToken("blue", new Position(0, -1, 5)); // symmetricity of 1 player.AddTiletoHand(testTile1); // symmetricity of 4 Tile testTile4 = new Tile(4, new List <int>(8) { 0, 5, 1, 3, 2, 6, 4, 7 }); player.AddTiletoHand(testTile4); // right of tile placement Tile testTile5 = new Tile(5, new List <int>(8) { 6, 0, 7, 1, 2, 3, 4, 5 }); // below of tile placement Tile testTile6 = new Tile(6, new List <int>(8) { 0, 7, 1, 6, 2, 3, 4, 5 }); server.board.PlaceTile(testTile5, 1, 0); server.board.PlaceTile(testTile6, 0, 1); server.gameState = Server.State.safe; mPlayer.playerState = MostSymmetricPlayer.State.loop; Tile tobePlayed = player.iplayer.PlayTurn(server.board, player.Hand, 33); Assert.IsTrue(testTile1.CompareByPath(tobePlayed)); }
public void TestMostSymmetricPlayerPlayTurnMultiLegalHand() { MostSymmetricPlayer mPlayer = new MostSymmetricPlayer("mark"); List <string> other_colors = new List <string>(); foreach (string color in Constants.colors) { if (color != "blue") { other_colors.Add(color); } } mPlayer.Initialize("blue", other_colors); server.AddPlayer(mPlayer, "blue"); Player player = new Player(mPlayer, "blue"); server.board.AddPlayerToken("blue", new Position(0, -1, 5)); // symmetricity of 1, illegal player.AddTiletoHand(testTile1); // symmetricity of 4 Tile testTile4 = new Tile(4, new List <int>(8) { 0, 5, 1, 3, 2, 6, 4, 7 }); player.AddTiletoHand(testTile4); // symmetricity of 1, legal Tile testTile5 = new Tile(5, new List <int>(8) { 0, 5, 1, 4, 2, 7, 6, 3 }); player.AddTiletoHand(testTile5); server.gameState = Server.State.safe; mPlayer.playerState = MostSymmetricPlayer.State.loop; Tile tobePlayed = player.iplayer.PlayTurn(server.board, player.Hand, 33); Assert.AreEqual(1, server.alive.Count); Assert.IsTrue(testTile5.CompareByPath(tobePlayed)); }
public void TestMostSymmetricPlayerPlayTurnOneLegalHand() { MostSymmetricPlayer mPlayer = new MostSymmetricPlayer("mark"); List <string> other_colors = new List <string>(); foreach (string color in Constants.colors) { if (color != "blue") { other_colors.Add(color); } } mPlayer.Initialize("blue", other_colors); server.AddPlayer(mPlayer, "blue"); Player player = new Player(mPlayer, "blue"); server.board.AddPlayerToken("blue", new Position(0, -1, 5)); // symmetricity of 1 player.AddTiletoHand(testTile1); // symmetricity of 4 Tile testTile4 = new Tile(4, new List <int>(8) { 0, 5, 1, 3, 2, 6, 4, 7 }); player.AddTiletoHand(testTile4); server.gameState = Server.State.safe; Tile tobePlayed = player.iplayer.PlayTurn(server.board, player.Hand, 33); Assert.AreEqual(1, server.alive.Count); Assert.IsTrue(testTile4.CompareByPath(tobePlayed)); for (int i = 0; i < 6; i++) { for (int j = 0; j < 6; j++) { Assert.IsNull(server.board.tiles[i][j]); } } }