Пример #1
0
        public void FourPlayerAddDistanceTest()
        {
            PlayerOrderManager orderManager = new PlayerOrderManager(new List <PlayerColor> {
                PlayerColor.Yellow, PlayerColor.Red, PlayerColor.Green, PlayerColor.Blue
            }, GameStage.First);

            //green steps 4, which means he steps over red and yellow, total movement 6
            orderManager.AddDistance(PlayerColor.Green, 4);
            Assert.Equal(22, orderManager.Properties[PlayerColor.Green].PlaceValue);
            List <PlayerColor> expectedOrder = new List <PlayerColor> {
                PlayerColor.Green, PlayerColor.Yellow, PlayerColor.Red, PlayerColor.Blue
            };

            Assert.Equal(expectedOrder, orderManager.GetOrder());

            //blue steps 10, which means he steps over everyone else (3 players), total movement 13
            orderManager.AddDistance(PlayerColor.Blue, 10);
            Assert.Equal(27, orderManager.Properties[PlayerColor.Blue].PlaceValue);
            expectedOrder = new List <PlayerColor> {
                PlayerColor.Blue, PlayerColor.Green, PlayerColor.Yellow, PlayerColor.Red
            };
            Assert.Equal(expectedOrder, orderManager.GetOrder());

            //green steps -5, which means he steps over yellow and red, total movement -7
            orderManager.AddDistance(PlayerColor.Green, -5);
            Assert.Equal(15, orderManager.Properties[PlayerColor.Green].PlaceValue);
            expectedOrder = new List <PlayerColor> {
                PlayerColor.Blue, PlayerColor.Yellow, PlayerColor.Red, PlayerColor.Green
            };
            Assert.Equal(expectedOrder, orderManager.GetOrder());
        }
Пример #2
0
        public void TwoPlayerAddDistanceTest()
        {
            //create a PlayerOrderManager with yellow - red initial order in the first stage
            PlayerOrderManager orderManager = new PlayerOrderManager(new List <PlayerColor> {
                PlayerColor.Yellow, PlayerColor.Red
            }, GameStage.First);

            //stepping 5 with red, given that red stepped over yellow, that means the total distance increases to 6
            orderManager.AddDistance(PlayerColor.Red, 5);
            Assert.Equal(24, orderManager.Properties[PlayerColor.Red].PlaceValue);
            List <PlayerColor> expectedOrder = new List <PlayerColor> {
                PlayerColor.Red, PlayerColor.Yellow
            };

            Assert.Equal(expectedOrder, orderManager.GetOrder());

            //stepping another 5 with red, no step over, so total distance is 5
            orderManager.AddDistance(PlayerColor.Red, 5);
            Assert.Equal(29, orderManager.Properties[PlayerColor.Red].PlaceValue);

            //stepping 9 with yellow - would land on red's tile, so steps another one, landing at 30
            orderManager.AddDistance(PlayerColor.Yellow, 9);
            Assert.Equal(30, orderManager.Properties[PlayerColor.Yellow].PlaceValue);
            expectedOrder = new List <PlayerColor> {
                PlayerColor.Yellow, PlayerColor.Red
            };
            Assert.Equal(expectedOrder, orderManager.GetOrder());

            //stepping -5 with yellow - steps over yellow, so total distance is -6
            orderManager.AddDistance(PlayerColor.Yellow, -5);
            Assert.Equal(24, orderManager.Properties[PlayerColor.Yellow].PlaceValue);
            expectedOrder = new List <PlayerColor> {
                PlayerColor.Red, PlayerColor.Yellow
            };
            Assert.Equal(expectedOrder, orderManager.GetOrder());

            //stepping 4 with yellow - this means no step over
            orderManager.AddDistance(PlayerColor.Yellow, 4);
            Assert.Equal(28, orderManager.Properties[PlayerColor.Yellow].PlaceValue);
            Assert.Equal(expectedOrder, orderManager.GetOrder());
        }