@timmyrs timmyrs released this Sep 28, 2018 · 4 commits to master since this release

Assets 3
  • Replaced PieceType.getDisplayChar(Language) and PieceType.getNotationChar(Language) with PieceType.getChar(Language)
  • Renamed Square.getCharacter(Language) to Square.getChar(Language)

@timmyrs timmyrs released this Sep 15, 2018 · 5 commits to master since this release

Assets 3
  • Added Game.toUCI() which will return the list of played moves in UCI format
  • Improved the performance of Game.copy() and Game.toString() a bit
  • Fixed typo

@timmyrs timmyrs released this Sep 14, 2018 · 6 commits to master since this release

Assets 3
  • Removed Piece and replaced it with Square.pieceColor and Square.pieceType
  • Added Game.setPiece(Square, Color, PieceType), and Game.unsetPiece(Square)
  • Added Game.getPieces(Color), Game.getPieces(Color, PieceType), and Game.getPieces(PieceType)
  • Game.getSquaresControlledBy(Piece) has been replaced by Game.getSquaresControlledBy(Square)
  • Invalid promotions will no longer fail instantly due to InvalidMoveException but the move is illegal
  • Removed PieceType.scoreValue
  • Renamed PieceType.value to PieceType.materialValue
  • The King now has a material value of 0 instead of 1
  • Square.index() is now public

@timmyrs timmyrs released this Sep 10, 2018 · 7 commits to master since this release

Assets 3
  • Improved UCI Engine Interface (Breaking!)
2.6

@timmyrs timmyrs released this Sep 5, 2018 · 8 commits to master since this release

Assets 3
  • Added Language enum with piece characters for 17 languages including English and modified everything accordingly
  • Renamed CountryCode to Country
  • Improved SVG Export
2.5

@timmyrs timmyrs released this Sep 2, 2018 · 9 commits to master since this release

Assets 3
  • Removed Game.getScore, Move.getScore, Game.getScoreOf, Game.getBestMove, and BuiltInEngine to keep CompactChess compact while I'm developing the engine privately until it's good enough for the public
  • Added Color.opposite()
  • Added CountryCode.name
  • Implemented PGN Annotation Tags
  • Replaced Move.annotation with Move.annotations ArrayList which can be written to using Move.annotate(String) and retrieved as annotation string using Move.getAnnotation(boolean noTags = false)
  • Added Move.hasAnnotation(boolean noTags = false)

@timmyrs timmyrs released this Sep 2, 2018 · 10 commits to master since this release

Assets 3
  • Improved functions related to time control
  • Improved Game.fromPGN
2.4

@timmyrs timmyrs released this Sep 1, 2018 · 11 commits to master since this release

Assets 3
  • Added CountryCode enum to aid in the creation of proper Site tags
  • Added CGNVersion enum
  • Added optional CGNVersion argument to Game.fromCGN and Game.toCGN which defaults to the latest CGN version
  • Added support for CGN Version 2
  • Improved PGN Importing & Exporting
  • Fixed FEN being exported to CGN when not needed
2.3

@timmyrs timmyrs released this Aug 22, 2018 · 12 commits to master since this release

Assets 3
  • Added Engine.copy() which will do the same as EngineBuilder.build()
  • Removed deprecated EndReason.isDraw() — use EndReason.isDraw instead
  • Removed deprecated Game.anMove(String) — use Game.move(String) instead
  • Removed deprecated Piece.getControlledSquares(Game) — use Game.getSquaresControlledBy(Piece) instead
  • Removed EngineBuilder.setMoveOverhead(int) & EngineBuilder.ponder(boolean)
  • Removed Game.allowAllCastling() & Game.disallowAllCastling()
  • Game.toPGN & Game.toCGN will now throw ChessException if export will not make sense, e.g. if Game.insertPiece(), Game.opponentToMove(), etc. has been called
  • Game.setUnlimitedTime() & Game.setTimed() will no longer throw a ChessException if the game has already started but running these functions will not affect export if the game has already started
2.2

@timmyrs timmyrs released this Aug 17, 2018 · 13 commits to master since this release

Assets 3
  • Added Game.canDrawBeClaimed() and Game.claimDraw()
  • 50 move rule draws now have to be claimed
  • Implemented 75 move rule
  • Implemented threefold repetition which has to be claimed and fivefold repetition which results in an automatic draw
  • Added Game.agreeToDraw()
  • Renamed EndReason.pgn_name to EndReason.pgnName
  • Replaced EndReason.isDraw() with EndReason.isDraw
  • Fixed King+Bishop+Knight VS King endgame resulting in an automatic draw by insufficient material
  • Improved Game.toSVG's representation of castling in Chess960 some more