コード例 #1
0
ファイル: Board.cs プロジェクト: karlbaker02/ChessApp
        public void AddPiece(Piece piece, BoardCoordinate moveCoordinate)
        {
            if (!moveCoordinate.IsCoordinateValidForBoardSize(Boardsize))
                throw new ArgumentException("moveTarget");

            _pieces[moveCoordinate.X, moveCoordinate.Y] = piece;
        }
コード例 #2
0
ファイル: Pawn.cs プロジェクト: karlbaker02/ChessApp
        public override IEnumerable<BoardCoordinate> GetMovesFrom(BoardCoordinate moveCoordinate, int boardSize)
        {
            yield return new BoardCoordinate(moveCoordinate.X, moveCoordinate.Y + 1);

            if (!HasMoved)
                yield return new BoardCoordinate(moveCoordinate.X, moveCoordinate.Y + 2);
        }
コード例 #3
0
ファイル: Rook.cs プロジェクト: karlbaker02/ChessApp
        public override IEnumerable<BoardCoordinate> GetMovesFrom(BoardCoordinate moveCoordinate, int boardSize)
        {
            for (var i = 1; i <= boardSize; i++)
            {
                if (i != moveCoordinate.X)
                    yield return new BoardCoordinate(i, moveCoordinate.Y);

                if (i != moveCoordinate.Y)
                    yield return new BoardCoordinate(moveCoordinate.X, i);
            }
        }
コード例 #4
0
ファイル: Piece.cs プロジェクト: karlbaker02/ChessApp
 public abstract IEnumerable<BoardCoordinate> GetMovesFrom(BoardCoordinate moveCoordinate, int boardSize);
コード例 #5
0
ファイル: Bishop.cs プロジェクト: karlbaker02/ChessApp
 public override IEnumerable<BoardCoordinate> GetMovesFrom(BoardCoordinate moveCoordinate, int boardSize)
 {
     throw new System.NotImplementedException();
 }
コード例 #6
0
ファイル: Board.cs プロジェクト: karlbaker02/ChessApp
 public Piece GetPiece(BoardCoordinate coordinates)
 {
     return _pieces[coordinates.X, coordinates.Y];
 }