Example #1
0
        public void CalculatePointsFromDiscarded8CardsTest()
        {
            GameRoom gameRoom = new GameRoom(0, "test", null);

            gameRoom.CurrentRoomState.CurrentGameState            = new GameState();
            gameRoom.CurrentRoomState.CurrentGameState.Players[0] = new PlayerEntity {
                PlayerId = "p1", Rank = 0, Team = GameTeam.VerticalTeam
            };
            gameRoom.CurrentRoomState.CurrentGameState.Players[1] = new PlayerEntity {
                PlayerId = "p2", Rank = 0, Team = GameTeam.HorizonTeam
            };
            gameRoom.CurrentRoomState.CurrentGameState.Players[2] = new PlayerEntity {
                PlayerId = "p3", Rank = 0, Team = GameTeam.VerticalTeam
            };
            gameRoom.CurrentRoomState.CurrentGameState.Players[3] = new PlayerEntity {
                PlayerId = "p4", Rank = 0, Team = GameTeam.HorizonTeam
            };

            gameRoom.CurrentRoomState.CurrentHandState.Starter        = "p1";
            gameRoom.CurrentRoomState.CurrentHandState.Trump          = Suit.Spade;
            gameRoom.CurrentRoomState.CurrentHandState.Rank           = 2;
            gameRoom.CurrentRoomState.CurrentHandState.LeftCardsCount = 0;
            //底牌10分
            gameRoom.CurrentRoomState.CurrentHandState.DiscardedCards = new int[] { 1, 2, 9, 4, 5, 6, 7, 8 };

            gameRoom.CurrentRoomState.CurrentTrickState.Learder = "p1";
            gameRoom.CurrentRoomState.CurrentTrickState.Winner  = "p2";

            //带一对敲低,但领出牌中没有对子,所以底牌分最终为:20
            gameRoom.CurrentRoomState.CurrentHandState.Score = 0;
            gameRoom.CurrentRoomState.CurrentHandState.ScoreLast8CardsBase = 0;
            gameRoom.CurrentRoomState.CurrentTrickState.ShowedCards["p1"]  = new List <int>()
            {
                12, 11, 10
            };
            gameRoom.CurrentRoomState.CurrentTrickState.ShowedCards["p2"] = new List <int>()
            {
                25, 25, 24
            };
            gameRoom.CurrentRoomState.CurrentTrickState.ShowedCards["p3"] = new List <int>()
            {
                1, 2, 3
            };
            gameRoom.CurrentRoomState.CurrentTrickState.ShowedCards["p4"] = new List <int>()
            {
                4, 5, 6
            };
            gameRoom.CalculatePointsFromDiscarded8Cards();
            Assert.AreEqual(20, gameRoom.CurrentRoomState.CurrentHandState.Score);

            //带一对敲低,且领出牌中有对子,所以底牌分最终为:40
            gameRoom.CurrentRoomState.CurrentHandState.Score = 0;
            gameRoom.CurrentRoomState.CurrentHandState.ScoreLast8CardsBase = 0;
            gameRoom.CurrentRoomState.CurrentTrickState.ShowedCards["p1"]  = new List <int>()
            {
                12, 12, 11
            };
            gameRoom.CurrentRoomState.CurrentTrickState.ShowedCards["p2"] = new List <int>()
            {
                25, 25, 24
            };
            gameRoom.CurrentRoomState.CurrentTrickState.ShowedCards["p3"] = new List <int>()
            {
                1, 2, 3
            };
            gameRoom.CurrentRoomState.CurrentTrickState.ShowedCards["p4"] = new List <int>()
            {
                4, 5, 6
            };
            gameRoom.CalculatePointsFromDiscarded8Cards();
            Assert.AreEqual(40, gameRoom.CurrentRoomState.CurrentHandState.Score);

            //带2对拖拉机敲低,且自己为领出,底牌分最终为:160
            gameRoom.CurrentRoomState.CurrentHandState.Score = 0;
            gameRoom.CurrentRoomState.CurrentHandState.ScoreLast8CardsBase = 0;
            gameRoom.CurrentRoomState.CurrentTrickState.Learder            = "p2";
            gameRoom.CurrentRoomState.CurrentTrickState.ShowedCards["p1"]  = new List <int>()
            {
                12, 12, 11, 10
            };
            gameRoom.CurrentRoomState.CurrentTrickState.ShowedCards["p2"] = new List <int>()
            {
                25, 25, 24, 24
            };
            gameRoom.CurrentRoomState.CurrentTrickState.ShowedCards["p3"] = new List <int>()
            {
                1, 2, 3, 4
            };
            gameRoom.CurrentRoomState.CurrentTrickState.ShowedCards["p4"] = new List <int>()
            {
                4, 5, 6, 7
            };
            gameRoom.CalculatePointsFromDiscarded8Cards();
            Assert.AreEqual(160, gameRoom.CurrentRoomState.CurrentHandState.Score);

            //带3对拖拉机敲低,且自己为领出,底牌分最终为:640
            gameRoom.CurrentRoomState.CurrentHandState.Score = 0;
            gameRoom.CurrentRoomState.CurrentHandState.ScoreLast8CardsBase = 0;
            gameRoom.CurrentRoomState.CurrentTrickState.Learder            = "p2";
            gameRoom.CurrentRoomState.CurrentTrickState.ShowedCards["p1"]  = new List <int>()
            {
                12, 12, 11, 10, 9, 8
            };
            gameRoom.CurrentRoomState.CurrentTrickState.ShowedCards["p2"] = new List <int>()
            {
                25, 25, 24, 24, 23, 23
            };
            gameRoom.CurrentRoomState.CurrentTrickState.ShowedCards["p3"] = new List <int>()
            {
                1, 2, 3, 4, 5, 6
            };
            gameRoom.CurrentRoomState.CurrentTrickState.ShowedCards["p4"] = new List <int>()
            {
                4, 5, 6, 7, 8, 9
            };
            gameRoom.CalculatePointsFromDiscarded8Cards();
            Assert.AreEqual(640, gameRoom.CurrentRoomState.CurrentHandState.Score);
        }