示例#1
0
文件: PawnSpecs.cs 项目: lafsar/Chess
 public void _01_white_pawn_capture_black_pawn_at_row_5_col_2()
 {
     _chessBoard.AddReplace(_pawn2, 5, 2);
     _chessBoard.AddReplace(_pawn1, 6, 1);
     _pawn1.Move(5, 2);
     Assert.That(_pawn1.Row, Is.EqualTo(5));
     Assert.That(_pawn1.Column, Is.EqualTo(2));
     Assert.That(_chessBoard.GetPiece(5, 2), Is.EqualTo(_pawn1));
 }
示例#2
0
        public virtual bool Move(int row, int column)
        {
            var destination = new Tuple <int, int>(row, column);
            var origin      = new Tuple <int, int>(Row, Column);
            var moveSet     = MoveStrategy.GetMoveSet(Row, Column, OpposingColor);
            var canMove     = !destination.Equals(origin) &&
                              moveSet.Any(t => t.Equals(destination)) &&
                              !ChessBoard.IsCheckedState(this, destination);

            if (canMove)
            {
                BeforeMove(destination);
                ChessBoard.Remove(Row, Column);
                HandleCapture(destination);
                MoveCount++;
                AfterMove();
                ChessBoard.AddReplace(this, destination.Item1, destination.Item2);
            }
            return(canMove);
        }
示例#3
0
文件: PawnSpecs.cs 项目: lafsar/Chess
 public void _01_placing_the_black_pawn_on_Row_equals_1_and_Column_equals_3_should_place_the_black_pawn_on_that_place_on_the_board()
 {
     _chessBoard.AddReplace(_pawn, 1, 3);
     Assert.That(_pawn.Row, Is.EqualTo(1));
     Assert.That(_pawn.Column, Is.EqualTo(3));
 }