Skip to content

Releases: nvzqz/Sage

v2.5.2

22 Sep 01:46
v2.5.2
Compare
Choose a tag to compare

Release Notes

Fixes

  • Fixes issue regarding legal move generation for king in check due to error in moves available for the attacking piece

v2.5.1

18 Aug 01:09
v2.5.1
Compare
Choose a tag to compare

Release Notes

Fixes

  • Swift 3 preview 6 and Xcode 8 beta 6 compatibility

v2.5.0

17 Aug 22:04
v2.5.0
Compare
Choose a tag to compare

Release Notes

New Features

  • Added pinned(for:) method to Board
  • Added between(_:), isBetween(start:end:) and line(with:) methods to Square
  • Added hasMoreThanOne to Bitboard

Enhancements

  • Made legal move generation/checking faster for king pieces

Fixes

  • 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

08 Aug 10:29
v2.4.1
Compare
Choose a tag to compare

Release Notes

Fixes

  • Swift 3 preview 4 and Xcode 8 beta 4 compatibility

v2.4.0

06 Aug 22:43
v2.4.0
Compare
Choose a tag to compare

Release Notes

New Features

  • Added init(position:whitePlayer:blackPlayer:variant:) to Game #7

Enhancements

  • Greatly improved performance of attackers(to:color:) method for Board
  • Improved performance for pieceCount(for:) for Board
  • Improved performance for contains(_:) for Bitboard

v2.3.0

01 Aug 02:54
v2.3.0
Compare
Choose a tag to compare

Release Notes

New Features

  • Added captureForLastMove to Game #6

v2.2.0

30 Jul 23:33
v2.2.0
Compare
Choose a tag to compare

Release Notes

New Features

  • Added execute(uncheckedMove:) family of methods to Game
  • Added initializer with moves array to Game

Enhancements

  • Improved performance for bitboard(for color: Color) method for Board

v2.1.0

24 Jul 17:09
v2.1.0
Compare
Choose a tag to compare

Release Notes

New Features

  • Added static white, black, kingside, and queenside constants to CastlingRights and CastlingRights.Right
  • Added canCastle(for:) methods to CastlingRights that take a Color or Board.Side
  • Added init(color:) and init(side:) to CastlingRights

v2.0.1

21 Jul 05:43
v2.0.1
Compare
Choose a tag to compare

Release Notes

Fixes

  • Fixed Xcode 8 beta 3 warnings for guard statements

v2.0.0

17 Jul 04:50
v2.0.0
Compare
Choose a tag to compare

Release Notes

Enhancements

  • Performance greatly improved when performing operations with Board

New Features

  • Most significant bit operations to Bitboard:

    • Properties: msb, msbIndex, msbSquare
    • Methods: popMSB(), popMSBIndex(), popMSBSquare()
  • Board initializer from arrays of piece characters

    Board(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

Breaking Changes

  • Piece has been changed to a struct type with nested a Kind type
    • Values such as isKing and relativeValue now belong to Kind
  • The argument-less bitboard() method for Board has been changed to occupiedSpaces
  • Replaced Game.Mode with two Player instances for a game

Fixes

  • Calling redoMove() would sometimes cause a crash if the Game instance had no available moves (e.g. was over).
  • The Board playground view for iOS and tvOS was flipped vertically
  • canPromote(_:) for Piece didn't take king into account
  • Castling rights weren't restored in undoMove()
  • execute(move:) didn't check the promotion piece's kind