public void MakeMoveModifier_Modify()
        {
            _modifier = new MakeMoveModifier(_board.Object) { From = new Point3d() { X = 0, Y = 0 }, To = new Point3d() { X = 1, Y = 1 } };

            _modifier.Modify();

            _cell1.VerifySet(c1 => c1.State = PolygonState.Empty);
            _cell1.Object.Coordintes.X.Should().Be(0);
            _cell1.Object.Coordintes.Y.Should().Be(0);
            _cell1.Object.Coordintes.Z.Should().Be(0);

            _cell2.VerifySet(c2 => c2.State = PolygonState.Filled);
            _cell2.Object.Coordintes.X.Should().Be(1);
            _cell2.Object.Coordintes.Y.Should().Be(1);
            _cell2.Object.Coordintes.Z.Should().Be(0);
        }
Ejemplo n.º 2
0
        public void StandardRules_AdviseMoveCorrectlyHorizontallyFrontGameInProgress_Test()
        {
            var cellToFill = _board.Object.Cells.Where(c => c.Coordintes.X == 1 && c.Coordintes.Y == 2).First();

            cellToFill.State = PolygonState.Filled;

            var modifier = new MakeMoveModifier(_board.Object) { From = new Point3d() { X = 1, Y = 2 }, To = new Point3d() { X = 3, Y = 2 } };

            var scenario = _rules.Advise(modifier);

            scenario.Modifiers.Count.Should().Be(2);

            scenario.Modifiers[0].Should().Be(modifier);
            (scenario.Modifiers[1] as EmptyCellModifier).Should().NotBe(null);
            (scenario.Modifiers[1] as EmptyCellModifier).Target.Coordintes.X.Should().Be(2);
            (scenario.Modifiers[1] as EmptyCellModifier).Target.Coordintes.Y.Should().Be(2);
            (scenario.Modifiers[1] as EmptyCellModifier).Target.Coordintes.Z.Should().Be(0);
        }
Ejemplo n.º 3
0
        private IScenario MoveScenario(MakeMoveModifier moveModifier)
        {
            CheckMoveCoordiantes(moveModifier.From, moveModifier.To);

            var cell = GetMiddleCell(moveModifier.From, moveModifier.To);

            var emptyModifier = new EmptyCellModifier(cell) { Source = this };

            var scenario = new SimpleScenario();

            scenario.Modifiers.Add(moveModifier);
            scenario.Modifiers.Add(emptyModifier);

            return scenario;
        }
Ejemplo n.º 4
0
        public void StandardRules_AdviseMoveCorrectlyOutsideBoard_Test()
        {
            var cellToFill = _board.Object.Cells.Where(c => c.Coordintes.X == 6 && c.Coordintes.Y == 3).First();
            cellToFill.State = PolygonState.Filled;

            cellToFill = _board.Object.Cells.Where(c => c.Coordintes.X == 5 && c.Coordintes.Y == 3).First();
            cellToFill.State = PolygonState.Filled;

            var modifier = new MakeMoveModifier(_board.Object) { From = new Point3d() { X = 5, Y = 3 }, To = new Point3d() { X = 7, Y = 0 } };

            var scenario = _rules.Advise(modifier);
        }
Ejemplo n.º 5
0
        public void StandardRules_AdviseMoveOnNeighbourCellDiagonallyNW_Test()
        {
            var modifier = new MakeMoveModifier(_board.Object) { From = new Point3d() { X = 2, Y = 2 }, To = new Point3d() { X = 1, Y = 1 } };

            var scenario = _rules.Advise(modifier);
        }
Ejemplo n.º 6
0
        public void StandardRules_AdviseMoveOnNeighbourCellHorizontallyFront_Test()
        {
            var modifier = new MakeMoveModifier(_board.Object) { From = new Point3d() { X = 2, Y = 1 }, To = new Point3d() { X = 3, Y = 1 } };

            var scenario = _rules.Advise(modifier);
        }