Tuesday, November 29, 2011

ChessKISS 1.4

 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