Exemple #1
0
        public void TestSinglePlayerGame()
        {
            LeastSymmetricPlayer player = new LeastSymmetricPlayer("john");

            server.AddPlayer(player, "blue");
            server.InitPlayerPositions();
        }
Exemple #2
0
        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
                }),
            };
        }
Exemple #3
0
        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
                }),
            };
        }
Exemple #4
0
 public void TestConstructorLeastSymmetricPlayer()
 {
     for (int i = 0; i < Constants.colors.Count; i++)
     {
         LeastSymmetricPlayer player = new LeastSymmetricPlayer("john");
         Player p = new Player(player, Constants.colors[i]);
     }
 }
Exemple #5
0
        void AddTwoPlayers()
        {
            LeastSymmetricPlayer p1 = new LeastSymmetricPlayer("john");
            RandomPlayer         p2 = new RandomPlayer("john");

            server.AddPlayer(p1, "blue");
            server.AddPlayer(p2, "green");
        }
Exemple #6
0
        public void TestReplacePlayer()
        {
            RandomPlayer         mPlayer1    = new RandomPlayer("john");
            LeastSymmetricPlayer replacement = new LeastSymmetricPlayer("adam");

            Player player = new Player(mPlayer1, "blue");

            player.ReplaceMPlayer(replacement);
            Assert.AreEqual("adam", player.iplayer.GetName());
        }
Exemple #7
0
        public void TestLeastSymmetricPlayerPlayTurnMultiLegalHandFirstFlipped()
        {
            LeastSymmetricPlayer mPlayer      = new LeastSymmetricPlayer("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, legal
            Tile testTile4 = new Tile(4, new List <int>(8)
            {
                0, 5, 1, 3, 2, 6, 4, 7
            });
            // symmetricity of 4, legal
            Tile testTile5 = new Tile(5, new List <int>(8)
            {
                0, 2, 1, 4, 3, 7, 5, 6
            });

            player.AddTiletoHand(testTile5);
            player.AddTiletoHand(testTile4);

            server.gameState    = Server.State.safe;
            mPlayer.playerState = LeastSymmetricPlayer.State.loop;
            Tile tobePlayed = player.iplayer.PlayTurn(server.board, player.Hand, 32);

            // same symmetricity, both 4 and 5 legal. But 4 was added to  hand first so it should be 4
            Assert.IsTrue(testTile5.CompareByPath(tobePlayed));

            for (int i = 0; i < 6; i++)
            {
                for (int j = 0; j < 6; j++)
                {
                    Assert.IsNull(server.board.tiles[i][j]);
                }
            }
        }
Exemple #8
0
        public void TestLeastSymmetricPlayerPlayTurnNoLegalHand()
        {
            LeastSymmetricPlayer mPlayer      = new LeastSymmetricPlayer("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.loop;
            mPlayer.playerState = LeastSymmetricPlayer.State.loop;
            Tile tobePlayed = player.iplayer.PlayTurn(server.board, player.Hand, 33);

            Assert.IsTrue(testTile4.CompareByPath(tobePlayed));
        }
Exemple #9
0
        public void TestLeastSymmetricPlayerPlayTurnOneLegalHand()
        {
            LeastSymmetricPlayer mPlayer      = new LeastSymmetricPlayer("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;
            mPlayer.playerState = LeastSymmetricPlayer.State.loop;
            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]);
                }
            }
        }