public void Initialize() { server = new Server(); rplayer = new RandomPlayer("jim"); lplayer = new LeastSymmetricPlayer("reggie"); mplayer = new MostSymmetricPlayer("michael"); randBlue = new Player(rplayer, "blue"); tiles = new List <Tile> { new Tile(1, new List <int> { 0, 1, 2, 3, 4, 5, 6, 7 }), new Tile(2, new List <int> { 0, 1, 2, 4, 3, 6, 5, 7 }), new Tile(3, new List <int> { 0, 6, 1, 5, 2, 4, 3, 7 }), new Tile(4, new List <int> { 0, 5, 1, 4, 2, 7, 3, 6 }), new Tile(5, new List <int> { 0, 2, 1, 4, 3, 7, 5, 6 }), }; }
public void TestIllegalPlayTileNotInHand() { Server server = new Server(); MostSymmetricPlayer mp1 = new MostSymmetricPlayer("jim"); server.AddPlayer(mp1, "blue"); Tile testTile1 = new Tile(1, new List <int>(8) { 0, 1, 2, 3, 4, 5, 6, 7, }); Tile testTile2 = new Tile(2, new List <int>(8) { 0, 1, 2, 3, 4, 7, 6, 5, }); Tile testTile3 = new Tile(3, new List <int>(8) { 0, 5, 1, 4, 2, 7, 3, 6, }); Tile otherTile = new Tile(4, new List <int>(8) { 1, 2, 3, 4, 5, 6, 7, 0 }); Player p1 = server.alive[0]; var origClass = p1.iplayer.GetType(); server.gameState = Server.State.loop; bool legalPlay = server.LegalPlay(p1, server.board, otherTile); Assert.IsFalse(legalPlay); Assert.AreNotEqual(origClass, server.alive[0].iplayer.GetType()); }
public void Initialize() { server = new Server(); randomPlayer = new RandomPlayer("jim"); leastSymmetricPlayer = new LeastSymmetricPlayer("reggie"); mostSymmetricPlayer = new MostSymmetricPlayer("michael"); //randBlue = new PlayerProxy(randomPlayer, "blue", 9999); //mostsymRed = new PlayerProxy(mostSymmetricPlayer, "red", 9999); //leastsymRed = new PlayerProxy(leastSymmetricPlayer, "red", 9999); tiles = new List <Tile> { new Tile(1, new List <int> { 0, 1, 2, 3, 4, 5, 6, 7 }), new Tile(2, new List <int> { 0, 1, 2, 4, 3, 6, 5, 7 }), new Tile(3, new List <int> { 0, 6, 1, 5, 2, 4, 3, 7 }), new Tile(4, new List <int> { 0, 5, 1, 4, 2, 7, 3, 6 }), new Tile(5, new List <int> { 0, 2, 1, 4, 3, 7, 5, 6 }), }; }
public void TestConstructorMostSymmetricPlayer() { for (int i = 0; i < Constants.colors.Count; i++) { MostSymmetricPlayer player = new MostSymmetricPlayer("john"); Player p = new Player(player, Constants.colors[i]); } }
void AddTwoPlayers() { MostSymmetricPlayer p1 = new MostSymmetricPlayer("john"); MostSymmetricPlayer p2 = new MostSymmetricPlayer("john"); server.AddPlayer(p1, "blue"); server.AddPlayer(p2, "green"); }
public void TestInvalidColor() { AddThreePlayers(); MostSymmetricPlayer mPlayer = new MostSymmetricPlayer("john"); server.AddPlayer(mPlayer, "not blue"); }
public void TestDuplicateColor() { AddThreePlayers(); MostSymmetricPlayer mPlayer = new MostSymmetricPlayer("harry"); server.AddPlayer(mPlayer, "blue"); }
public void TestReplacePlayer() { MostSymmetricPlayer mPlayer1 = new MostSymmetricPlayer("john"); LeastSymmetricPlayer replacement = new LeastSymmetricPlayer("adam"); Player player = new Player(mPlayer1, "blue"); player.ReplaceIPlayer(replacement); Assert.AreEqual("adam", player.iplayer.GetName()); }
void AddFourPlayers() { MostSymmetricPlayer p1 = new MostSymmetricPlayer("john"); MostSymmetricPlayer p2 = new MostSymmetricPlayer("jim"); MostSymmetricPlayer p3 = new MostSymmetricPlayer("harry"); MostSymmetricPlayer p4 = new MostSymmetricPlayer("miles"); server.AddPlayer(p1, "blue"); server.AddPlayer(p2, "green"); server.AddPlayer(p3, "red"); server.AddPlayer(p4, "hotpink"); }
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]); } } }
public void TestLegalPlayBoardUndo() { Server server = new Server(); MostSymmetricPlayer p1 = new MostSymmetricPlayer("john"); server.AddPlayer(p1, "blue"); Tile testTile1 = new Tile(1, new List <int>(8) { 0, 1, 2, 3, 4, 5, 6, 7, }); Tile testTile2 = new Tile(2, new List <int>(8) { 0, 1, 2, 3, 4, 5, 6, 7, }); Tile testTile3 = new Tile(3, new List <int>(8) { 0, 5, 1, 4, 2, 7, 3, 6, }); Player p_1 = server.alive[0]; var origClass = p_1.iplayer.GetType(); server.board.AddPlayerToken("blue", new Position(4, 6, 0)); p_1.Hand = new List <Tile> { testTile1, testTile2, testTile3 }; server.gameState = Server.State.loop; Boolean legalPlay = server.LegalPlay(p_1, server.board, testTile1); Assert.AreNotEqual(origClass, server.alive[0].iplayer.GetType()); Assert.IsFalse(legalPlay); for (int i = 0; i < 6; i++) { for (int j = 0; j < 6; j++) { Assert.IsNull(server.board.tiles[i][j]); } } }
public void TestLegalPlayCheckLastPossibleMoveNotUndone() { Server server = new Server(); MostSymmetricPlayer p1 = new MostSymmetricPlayer("john"); server.AddPlayer(p1, "blue"); Tile testTile1 = new Tile(1, new List <int>(8) { 0, 1, 2, 3, 4, 5, 6, 7, }); Tile testTile2 = new Tile(2, new List <int>(8) { 0, 1, 2, 3, 4, 5, 6, 7, }); Tile testTile3 = new Tile(3, new List <int>(8) { 0, 5, 1, 4, 2, 7, 3, 6, }); Player p_1 = server.alive[0]; server.board.AddPlayerToken("blue", new Position(4, 6, 0)); p_1.Hand = new List <Tile> { testTile1, testTile2, testTile3 }; server.gameState = Server.State.loop; Boolean legalPlay = server.LegalPlay(p_1, server.board, testTile1); Assert.IsFalse(legalPlay); Assert.AreEqual(3, p_1.Hand.Count); for (int i = 1; i < 4; i++) { Assert.AreEqual(i, p_1.Hand[i - 1].id); } }