From readme:
-General
The engine do not longer return TMoves but PMoves (this increases the internal speed)
Some functions inlined
All references to int64 changed to UInt64
-Bitboards
New unit
Some new constans to help
-Board
New PlayFast(), StaticExchangeEvaluation() now uses it
MovesToSquare() changed to PMoves
Flip() implemented again to find symmetric issues
HasPiecesInCol() removed
PawnIsPassed() improved
New endings KBKKK, KRKR, KQKQ, KNKNN, KNNK
GetPieceType(side, type) split in GetXXX(side)
GetPieceCount(side, type) split in GetXXXCount(side)
Started to use bitboards
Backup is not longer a TStack<T> but a simple ping pong array
New functions AsBitboard()
Attacks[] removed, now using a precalculated bitboard per piece
Fixed strange bugs when promoting in PieceMovingToSquare()
FindPiece() now uses IsValidMove() internally which makes the selection of moves more robust
Some functions now return TScore rather than a simple integer
Finally TPiece class replaced by a simple composed integer, this increases the overall speed
New IndicesToPieceLists[] that helps to find out the index in the related piece list.
Indices/Pieces list removed
Play/AddPiece/DeletePiece/UpdateSquare updated in accordance with piece changes
-Book
A new book has been generated
Handle book code rewritten
Book for the moment does not longer uses scores
-Cache
Pawn cache now handles TScore based values
Clear() optimized
-Definitions
Removed TCaptures
Removed PDirArray
Removed Colors[]
Removed NotMine[]
Bishop and knight ending values changed
-EndGame
New ending KBKP (previously the engine was doing a bad job)
-Engine
Evaluate() now handled TScore Evaluation
-Evaluation
All scores use now TScore and only one interpolation is done at the end
Fixed another stupid overflow error in chain panws (-1 when col 1)
TrappedPieces() now handle all kind of trapped pieces
Again another silly error, don't use -f() when f() can return +-, uses always +f()...
EvalConnectedRooks() optimized a bit
Generate attacks optimized and tuned a bit (not finished)
Added piece threats and removed hungs
Added pawn adjustment to bishop eval
Bitboards used in some parts
Changed the passers bonus values
Changed the values of rook open files
Changes the tempo values
Changed the value of bishop pairs
-Killers
Removed backups
-History
Removed backups
-MoveGenerator
King was not using its position score (thanks for the non warning mr. compiler...)
Fixed a symmetric bug in the passed pawn chain
Fixed a symmetric bug in the rook eval B8 = C8
Very much improved with PMoves
New GetMoves() (generation functions do not longer return movements)
Changed the order that moves are generated
GenerateEvassions() now cleans the king moves
Pawns, knights and king fully uses bitboards (sliders next, thinking the best way wiuthout copy-pasting...)
-MovePicker
mcQuiescenseCheck removed, instread the normal mcCheck is used
Improved with PMoves
RemoveNonChecks() removed
Fixed a serious bug when in check and singular is applied
In some cases the Singular phase could return more than one move
Sort functions are executed even with only one move has to be sorted (since they can be discarded)
Class simplified, only GetMove() is public, one must call the function until move = NO_MOVE
First capturing score is not longer based on See() but on MVVLVA()
-Piece
New unit
Evaluate() now returns TScore
Created EvalXXX() so evaluation can call them directly
New class TPieceHelper with all static methods for helping unpack TPiece data
-Pieces
GetColMask() removed
New TPieces.Asbitboard()
-Scores
New unit
-Search
Added some debug defines
PV removed (I can't see improves, most probably because I'm using it wrong...)
Stats only counted in debug mode
Configuration handled better
NextStack() only called one per depth
"Singular" extension removed, silly approach...
History Reduction removed
Reorganized a bit for new picker behaviour
-Utils
Interpolate() removed, stuff goes to TScore
No comments:
Post a Comment