All releases of Sage adhere to Semantic Versioning.
v2.5.2 (2016-09-21)
- Fixes issue regarding legal move generation for king in check due to error in moves available for the attacking piece
v2.5.1 (2016-08-17)
- Swift 3 preview 6 and Xcode 8 beta 6 compatibility
v2.5.0 (2016-08-17)
-
Added pinned(for:) method to Board
-
Added
between(_:)
,isBetween(start:end:)
andline(with:)
methods to Square -
Added
hasMoreThanOne
to Bitboard
- Made legal move generation/checking faster for king pieces
- Fixed conditions for castling so that a king cannot castle in check and it can't castle through squares that are being attacked
v2.4.1 (2016-08-06)
- Swift 3 preview 4 and Xcode 8 beta 4 compatibility
v2.4.0 (2016-08-06)
- Added
init(position:whitePlayer:blackPlayer:variant:)
toGame
-
Greatly improved performance of
attackers(to:color:)
method forBoard
-
Improved performance for
pieceCount(for:)
forBoard
-
Improved performance for
contains(_:)
forBitboard
v2.3.0 (2016-07-31)
- Added
captureForLastMove
to Game
v2.2.0 (2016-07-30)
-
Added
execute(uncheckedMove:)
family of methods toGame
-
Added initializer with moves array to Game
- Improved performance for
bitboard(for color: Color)
method forBoard
v2.1.0 (2016-07-24)
-
Added static
white
,black
,kingside
, andqueenside
constants toCastlingRights
andCastlingRights.Right
-
Added
canCastle(for:)
methods toCastlingRights
that take aColor
orBoard.Side
-
Added
init(color:)
andinit(side:)
toCastlingRights
v2.0.1 (2016-07-21)
- Fixed Xcode 8 beta 3 warnings for guard statements
v2.0.0 (2016-07-17)
- Performance greatly improved when performing operations with
Board
-
Most significant bit operations to
Bitboard
:-
Properties:
msb
,msbIndex
,msbSquare
-
Methods:
popMSB()
,popMSBIndex()
,popMSBSquare()
-
-
Board
initializer from arrays of piece charactersBoard(pieces: [["r", "n", "b", "q", "k", "b", "n", "r"], ["p", "p", "p", "p", "p", "p", "p", "p"], [" ", " ", " ", " ", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", " ", " "], [" ", " ", " ", " ", " ", " ", " ", " "], ["P", "P", "P", "P", "P", "P", "P", "P"], ["R", "N", "B", "Q", "K", "B", "N", "R"]])
-
Parsing PGN string data with
PGN(parse:)
-
Exporting PGN string data with
exported()
-
New
Player
struct
-
Piece
has been changed to a struct type with nested aKind
type- Values such as
isKing
andrelativeValue
now belong toKind
- Values such as
-
The argument-less
bitboard()
method forBoard
has been changed tooccupiedSpaces
-
Replaced
Game.Mode
with twoPlayer
instances for a game
-
Calling
redoMove()
would sometimes cause a crash if theGame
instance had no available moves (e.g. was over). -
The
Board
playground view for iOS and tvOS was flipped vertically -
canPromote(_:)
forPiece
didn't take king into account -
Castling rights weren't restored in
undoMove()
-
execute(move:)
didn't check the promotion piece's kind
v1.0.0 (2016-07-03)
Initial release