Example #1
0
        public void CanMovePawnJumpOverFigureTest()//Попытка пешки перепрыгнуть через фигуру, если она стоит на старте
        {
            Board Board = new Board("rnbqkbnr/pppppppp/P......./......../......../p......./PPPPPPPP/RNBQKBNR");
            Moves Moves = new Moves(Board);

            FigureMoving Fm = new FigureMoving(Board);

            Fm.GetCellsAndFigures("Pa2a4");//Белыми
            Assert.IsFalse(Moves.CanMove(Fm));

            Fm.GetCellsAndFigures("pa7a5");//Черными
            Assert.IsFalse(Moves.CanMove(Fm));
        }
Example #2
0
        public void CanMoveLikeRookRightMoveTest()//Перемещение ферзя, выполняя ход как ладья
        {
            Board Board = new Board("rnbqkbnr/pppppppp/......../......../......../Q......./.PPPPPPP/RNB.KBNR");
            Moves Moves = new Moves(Board);

            FigureMoving Fm = new FigureMoving(Board);

            Fm.GetCellsAndFigures("Qa3a4");//По вертикали
            Assert.IsTrue(Moves.CanMove(Fm));

            Fm.GetCellsAndFigures("Qa3b3");//По горизонтали
            Assert.IsTrue(Moves.CanMove(Fm));
        }
Example #3
0
        public void CanMoveLikeRookBeatFigureTest()//Атака вражеских фигур ферзем, выполняя ход как ладья
        {
            Board Board = new Board("rnbqkbnr/pppppppp/......../......../......../Q....p../.PPPPPPP/RNB.KBNR");
            Moves Moves = new Moves(Board);

            FigureMoving Fm = new FigureMoving(Board);

            Fm.GetCellsAndFigures("Qa3a7");//По вертикали
            Assert.IsTrue(Moves.CanMove(Fm));

            Fm.GetCellsAndFigures("Qa3f3");//По горизонтали
            Assert.IsTrue(Moves.CanMove(Fm));
        }
Example #4
0
        public void CanMoveLikeRookJumpOverFigureTest()//Попытка ферзя перепрыгнуть через фигуры, выполняя ход как ладья
        {
            Board Board = new Board("rnbqkbnr/pppppppp/......../p......./Q....p../......../PPPPPPPP/RNB.KBNR");
            Moves Moves = new Moves(Board);

            FigureMoving Fm = new FigureMoving(Board);

            Fm.GetCellsAndFigures("Qa4a6");//По вертикали
            Assert.IsFalse(Moves.CanMove(Fm));

            Fm.GetCellsAndFigures("Qa4g4");//По горизонтали
            Assert.IsFalse(Moves.CanMove(Fm));
        }
Example #5
0
        public void CanMoveRightMoveWhiteOneStepTest()//Правильное перемещение белых
        {
            Board Board = new Board(Fen);
            Moves Moves = new Moves(Board);

            FigureMoving Fm = new FigureMoving(Board);

            Fm.GetCellsAndFigures("Pa2a3");//На 1 ход вперед
            Assert.IsTrue(Moves.CanMove(Fm));

            Fm.GetCellsAndFigures("Pa2a4");//На 2 хода вперед
            Assert.IsTrue(Moves.CanMove(Fm));
        }
Example #6
0
        public void CanMoveRookBeatFigureTest()//Атака ладьи
        {
            Board Board = new Board("rnbqkbnr/pppppppp/......../......../......../R....p../.PPPPPPP/.NBQKBNR");
            Moves Moves = new Moves(Board);

            FigureMoving Fm = new FigureMoving(Board);

            Fm.GetCellsAndFigures("Ra3a7");//По вертикали
            Assert.IsTrue(Moves.CanMove(Fm));

            Fm.GetCellsAndFigures("Ra3f3");//По горизонтали
            Assert.IsTrue(Moves.CanMove(Fm));
        }
Example #7
0
        public void CanMoveRightMoveBlackOneStepTest()//Правильное перещение черных
        {
            Board Board = new Board(Fen);
            Moves Moves = new Moves(Board);

            FigureMoving Fm = new FigureMoving(Board);

            Fm.GetCellsAndFigures("pa7a6");//На 1 ход вперед
            Assert.IsTrue(Moves.CanMove(Fm));

            Fm.GetCellsAndFigures("pa7a5");//На 2 хода вперед
            Assert.IsTrue(Moves.CanMove(Fm));
        }
Example #8
0
        public void CanMoveBeatFigureTest()//Атака фигуры
        {
            Board Board = new Board("rnbqkbnr/pppppppp/......../p.p...../.P....../......../PPPPPPPP/RNBQKBNR");
            Moves Moves = new Moves(Board);

            FigureMoving Fm = new FigureMoving(Board);

            Fm.GetCellsAndFigures("Pb4a5");//Налево
            Assert.IsTrue(Moves.CanMove(Fm));

            Fm.GetCellsAndFigures("Pb4c5");//Направо
            Assert.IsTrue(Moves.CanMove(Fm));
        }
Example #9
0
        public void CanMoveRookJumpOverFigureTest() //Попытка ладьи перепрыгнуть через фигуры
        {
            Board Board = new Board("rnbqkbnr/pppppppp/......../p......./R....p../......../PPPPPPPP/.NBQKBNR");
            Moves Moves = new Moves(Board);

            FigureMoving Fm = new FigureMoving(Board);

            Fm.GetCellsAndFigures("Ra4a6");//По вертикали
            Assert.IsFalse(Moves.CanMove(Fm));

            Fm.GetCellsAndFigures("Ra4g4");//По горизонтали
            Assert.IsFalse(Moves.CanMove(Fm));
        }
Example #10
0
        public void CanMoveBeatFriendlyFigureTest()//Атака дружественных фигур
        {
            Board Board = new Board("rnbqkbnr/pppppppp/......../R.Q...../.P....../......../PPPPPPPP/RNBQKBNR");
            Moves Moves = new Moves(Board);

            FigureMoving Fm = new FigureMoving(Board);

            Fm.GetCellsAndFigures("Pb4a5");//Налево
            Assert.IsFalse(Moves.CanMove(Fm));

            Fm.GetCellsAndFigures("Pb4c5");//Направо
            Assert.IsFalse(Moves.CanMove(Fm));
        }
Example #11
0
        private static IEnumerable <FigureMoving> AllKnightMoves(FigureMoving fm)
        {
            fm.GetCellsAndFigures("Nc4a5");//Влево-Вверх
            yield return(fm);

            fm.GetCellsAndFigures("Nc4a3");//Влево-Вниз
            yield return(fm);

            fm.GetCellsAndFigures("Nc4b6");//Вверх-Влево
            yield return(fm);

            fm.GetCellsAndFigures("Nc4d6");//Вверх-Вправо
            yield return(fm);

            fm.GetCellsAndFigures("Nc4e5");//Вправо-Вверх
            yield return(fm);

            fm.GetCellsAndFigures("Nc4e3");//Вправо-Вниз
            yield return(fm);

            fm.GetCellsAndFigures("Nc4b2");//Вниз-Влево
            yield return(fm);

            fm.GetCellsAndFigures("Nc4d2");//Вниз-Вправо
            yield return(fm);
        }
Example #12
0
        private static IEnumerable <FigureMoving> AllBishopMovesForQueen(FigureMoving fm)
        {
            fm.GetCellsAndFigures("Qd4b6");//Влево-Вверх
            yield return(fm);

            fm.GetCellsAndFigures("Qd4f6");//Влево-Вниз
            yield return(fm);

            fm.GetCellsAndFigures("Qd4b2");//Вверх-Влево
            yield return(fm);

            fm.GetCellsAndFigures("Qd4f6");//Вверх-Вправо
            yield return(fm);
        }
Example #13
0
        private static IEnumerable <FigureMoving> AllKingMoves(FigureMoving fm)
        {
            fm.GetCellsAndFigures("Ke5e6");
            yield return(fm);

            fm.GetCellsAndFigures("Ke5f6");
            yield return(fm);

            fm.GetCellsAndFigures("Ke5f5");
            yield return(fm);

            fm.GetCellsAndFigures("Ke5f4");
            yield return(fm);

            fm.GetCellsAndFigures("Ke5e4");
            yield return(fm);

            fm.GetCellsAndFigures("Ke5d4");
            yield return(fm);

            fm.GetCellsAndFigures("Ke5d5");
            yield return(fm);

            fm.GetCellsAndFigures("Ke5d6");
            yield return(fm);
        }
Example #14
0
        public void CanMoveKingBeatFriendlyFigureTest()//Атака дружественных фигур
        {
            Board Board = new Board("rnbqkbnr/pppppppp/PPPPPPPP/PPPPKPPP/PPPPPPPP/PPPPPPPP/PPPPPPPP/RNBQPBNR");
            Moves Moves = new Moves(Board);

            FigureMoving Fm = new FigureMoving(Board);

            Fm.GetCellsAndFigures("Ke5e6");
            Assert.IsFalse(Moves.CanMove(Fm));

            Fm.GetCellsAndFigures("Ke5f6");
            Assert.IsFalse(Moves.CanMove(Fm));

            Fm.GetCellsAndFigures("Ke5f5");
            Assert.IsFalse(Moves.CanMove(Fm));

            Fm.GetCellsAndFigures("Ke5f4");
            Assert.IsFalse(Moves.CanMove(Fm));

            Fm.GetCellsAndFigures("Ke5e4");
            Assert.IsFalse(Moves.CanMove(Fm));

            Fm.GetCellsAndFigures("Ke5d4");
            Assert.IsFalse(Moves.CanMove(Fm));

            Fm.GetCellsAndFigures("Ke5d5");
            Assert.IsFalse(Moves.CanMove(Fm));

            Fm.GetCellsAndFigures("Ke5d6");
            Assert.IsFalse(Moves.CanMove(Fm));
        }
Example #15
0
        public void CanMoveRookRightMoveTest()//Перемещение ладьи
        {
            Board Board = new Board("rnbqkbnr/pppppppp/......../......../......../R......./.PPPPPPP/.NBQKBNR");
            Moves Moves = new Moves(Board);

            FigureMoving Fm = new FigureMoving(Board);

            Fm.GetCellsAndFigures("Ra3a4");//По вертикали
            Assert.IsTrue(Moves.CanMove(Fm));

            Fm.GetCellsAndFigures("Ra3b3");//По горизонтали
            Assert.IsTrue(Moves.CanMove(Fm));

            Fm.GetCellsAndFigures("Ra3b4");//По диагонали
            Assert.IsFalse(Moves.CanMove(Fm));
        }
Example #16
0
        public void GetCellAndFigureWrongYAndXTest()//Отсутствие координаты X и Y на поле
        {
            Board Board = new Board(Fen);

            FigureMoving Fm = new FigureMoving(Board);

            Assert.ThrowsException <ArgumentException>(() => Fm.GetCellsAndFigures("nb9a9"));
        }
Example #17
0
        public void GetCellAndFigureNoFigureTest()//Отсутствие фигуры в параметре, параметр меньше 5 символов
        {
            Board Board = new Board(Fen);

            FigureMoving Fm = new FigureMoving(Board);

            Assert.ThrowsException <ArgumentException>(() => Fm.GetCellsAndFigures("a1a2"));
        }
Example #18
0
        public void GetCellAndFigureWrongFigureTest()//Неправильная фигура на начальной клетке
        {
            Board Board = new Board(Fen);

            FigureMoving Fm = new FigureMoving(Board);

            Assert.ThrowsException <ArgumentException>(() => Fm.GetCellsAndFigures("ra1a2"));
        }
Example #19
0
        public void GetCellAndFigureNoFigureAndNegativeCoordinateYTest()//Отсутствие фигуры и отрицательная координата, но зато 5 символов
        {
            Board Board = new Board(Fen);

            FigureMoving Fm = new FigureMoving(Board);

            Assert.ThrowsException <ArgumentException>(() => Fm.GetCellsAndFigures("b1a-2"));
        }
Example #20
0
        public void GetCellAndFigureSymbolsMoreThan5Test()//Параметр имеет больше 5 символов
        {
            Board Board = new Board(Fen);

            FigureMoving Fm = new FigureMoving(Board);

            Assert.ThrowsException <ArgumentException>(() => Fm.GetCellsAndFigures("nb-1a2"));
        }
Example #21
0
        public void CanMoveRookBeatFriendlyFigureTest()//Попытка ладьи атаковать дружеские фигуры
        {
            Board Board = new Board(Fen);
            Moves Moves = new Moves(Board);

            FigureMoving Fm = new FigureMoving(Board);

            Fm.GetCellsAndFigures("Ra1a2");
            Assert.IsFalse(Moves.CanMove(Fm));
        }
Example #22
0
        public void CanMoveLikeRookBeatFriendlyFigureTest()//Попытка ферзя атаковать дружеские фигуры, выполняя ход как ладья
        {
            Board Board = new Board(Fen);
            Moves Moves = new Moves(Board);

            FigureMoving Fm = new FigureMoving(Board);

            Fm.GetCellsAndFigures("Qd1d2");
            Assert.IsFalse(Moves.CanMove(Fm));
        }
Example #23
0
        public void CanMoveWrongMoveTest() //Невозможное перемещение пешки
        {
            Board Board = new Board(Fen);
            Moves Moves = new Moves(Board);

            FigureMoving Fm = new FigureMoving(Board);

            Fm.GetCellsAndFigures("Pa2a5");
            Assert.IsFalse(Moves.CanMove(Fm));
        }
Example #24
0
        public void CanMoveLikeBishopBeatFigureTest()//Атака вражеских фигур ферзем, выполняя ход как слон
        {
            Board Board = new Board("rnbqkbnr/......../......../pppppppp/...Q..../pppppppp/......../RNBQKBNR");
            Moves Moves = new Moves(Board);

            FigureMoving Fm = new FigureMoving(Board);

            Fm.GetCellsAndFigures("Qd4c5");//Вверх-влево по диагонали
            Assert.IsTrue(Moves.CanMove(Fm));

            Fm.GetCellsAndFigures("Qd4e5");//Вверх-вправо по диагонали
            Assert.IsTrue(Moves.CanMove(Fm));

            Fm.GetCellsAndFigures("Qd4c3");//Вниз-влево по диагонали
            Assert.IsTrue(Moves.CanMove(Fm));

            Fm.GetCellsAndFigures("Qd4e5");//Вниз-вправо по диагонали
            Assert.IsTrue(Moves.CanMove(Fm));
        }
Example #25
0
        public void MoveBlackTest()
        {
            Board Board = new Board(Fen);

            FigureMoving Fm = new FigureMoving(Board);

            Fm.GetCellsAndFigures("nb8c6");

            Board NewBoard = Board.Move(Fm);                                                       //Делаем ход

            Board.Fen = "r.bqkbnr/pppppppp/..n...../......../......../......../PPPPPPPP/RNBQKBNR"; //Поле которое нужно получить

            Assert.AreEqual(NewBoard.Fen, Board.Fen);                                              //Сравниваем поля
        }
Example #26
0
        public void GetCellAndFigureBlackTest()//Правильное получение черной фигуры
        {
            Board Board = new Board(Fen);

            FigureMoving Fm         = new FigureMoving(Board);
            FigureMoving FmExpected = Fm;

            Cell ExpectedCellX = new Cell(0, 6, Figure.BlackPawn); //Ожидаем черную пешку на a7
            Cell ExpectedCellY = new Cell(0, 4, Figure.None);      //Не ожидаем фигуру на a5

            FmExpected.From = ExpectedCellX;
            FmExpected.To   = ExpectedCellY;

            Fm.GetCellsAndFigures("pa7a5");
            Assert.AreEqual(FmExpected, Fm);
        }
Example #27
0
        public void GetCellAndFigureWhiteTest()//Правильное получение белой фигуры
        {
            Board Board = new Board(Fen);

            FigureMoving Fm         = new FigureMoving(Board);
            FigureMoving FmExpected = Fm;

            Cell ExpectedCellX = new Cell(0, 1, Figure.WhitePawn); //Ожидаем пешку на a2
            Cell ExpectedCellY = new Cell(0, 3, Figure.None);      //Не ожидаем фигуру на a4

            FmExpected.From = ExpectedCellX;
            FmExpected.To   = ExpectedCellY;

            Fm.GetCellsAndFigures("Pa2a4");
            Assert.AreEqual(FmExpected, Fm);
        }