All Versions
11
Latest Version
Avg Release Cycle
8 days
Latest Release
1347 days ago

Changelog History
Page 1

  • v2.5.2

    September 22, 2016

    🛠 Fixes

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

    August 18, 2016

    🛠 Fixes

    • Swift 3 preview 6 and Xcode 8 beta 6 compatibility
  • v2.5.0

    August 17, 2016

    🆕 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

    August 08, 2016

    🛠 Fixes

    • Swift 3 preview 4 and Xcode 8 beta 4 compatibility
  • v2.4.0

    August 06, 2016

    🆕 New Features

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

    ✨ 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

    August 01, 2016

    🆕 New Features

    • ➕ Added captureForLastMove to Game
  • v2.2.0

    July 30, 2016

    🆕 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

    July 24, 2016

    🆕 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

    July 21, 2016

    🛠 Fixes

    • 🛠 Fixed Xcode 8 beta 3 warnings for guard statements
  • v2.0.0

    July 17, 2016

    ✨ 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