Skip to content

Releases: dechristopher/octad

Octad v1.0.10

22 Aug 14:06
fcd98d2
Compare
Choose a tag to compare

This release bumps the go version of the module to 1.19 and upgrades the svgo dependency.

Octad v1.0.9

06 Jul 22:10
Compare
Choose a tag to compare

This release fixes a small issue with PGN encoding in which spaces were missing after each move number.

Before:

1.d2 a3 2.d3+ Kc3 3.c2 a2+ 4.Kxa2 b3+

Fixed:

1. d2 a3 2. d3+ Kc3 3. c2 a2+ 4. Kxa2 b3+

Octad v1.0.8

15 Mar 17:34
Compare
Choose a tag to compare

This release fixes a small issue with game outcome and outcome method state propagation when calling UndoMove. If the last move resulted in a change to outcome and outcome method, the UndoMove call was not rolling them back to NoOutcome and NoMethod respectively.

This is an important fix to allow engines to properly search the move tree.

Octad v1.0.7

12 Mar 22:04
Compare
Choose a tag to compare

This release cleans up some chess-oriented rules to make them more suitable for Octad.

  • Seventy-five and fifty move rules have been removed.
  • Twenty-five move rule has been added leading to automatic draws. This is more realistic for Octad.
  • Fivefold repetition has been removed and threefold repetition draws have become automatic.

Octad v1.0.6

11 Mar 21:05
Compare
Choose a tag to compare

This release adds a new function UndoMove() to the Game type. It can be used to undo the last move that was played. This is useful for analysis, move take-backs, and engine search.

Octad v1.0.5

07 Mar 22:10
Compare
Choose a tag to compare

This release fixes #1 causing invalid move capabilities for knights on the A3 square. It was caused by an incorrect bitboard being pre-calculated for knight moves on the A3 square. The old bitboard was uint16 16946 and the new one is 16898 where the LSB is the D4 square. This is illustrated below:

16946:
0  0  1  0
N  0  1  1 <- two invalid destination squares
0  0  1  0
0  1  0  0

16898:
0  0  1  0
N  0  0  0 <- all better
0  0  1  0
0  1  0  0

Octad v1.0.4

05 Mar 13:14
Compare
Choose a tag to compare

This release fixes a bug introduced in f40294a causing black to not lose close pawn castling rights when the B pawn was moved. This results in spontaneous creation of a pawn on C4 when the king is able to close pawn castle with a nonexistent pawn on B4.

Octad v1.0.3

03 Mar 02:39
Compare
Choose a tag to compare

This release fixes a regression caused by the attempted castling fix in the 1.0.2 version. King position squares weren't being updated properly after far pawn castling resulting in funky move generation allowing for the king to capture defended pieces or even move beside the opposing king.

Octad v1.0.2

03 Mar 00:24
Compare
Choose a tag to compare

This release contains a fix to a bug that was making far pawn castling impossible to do over UOI notation. The library was treating far pawn castling and Kc1 as white or Kb4 as black as the same move. Far pawn castling should have been recognized under the hood as Kd1 as white or Ka4 as black. With this fix, far pawn castling will work properly and the integrated engine will be able to perform more accurate move depth calculations since we weren't losing bunches of far pawn castling possibilities.

Octad v1.0.1

02 Mar 03:02
Compare
Choose a tag to compare

This release adds two new convenience functions to the Position type.

func (p *Position) InCheck() bool - returns whether or not a king is in check in the current position
func (p *Position) CheckSquare() Square - returns the square containing the checked king, if any