Difference between revisions of "ChessCore"

From Chessprogramming wiki
Jump to: navigation, search
(Created page with "'''Home * Engines * ChessCore''' FILE:OnlineChessSmall.jpg|border|right|thumb|link=https://web.archive.org/web/20120105083121/http://www.chessbin.com/| Ch...")
 
Line 10: Line 10:
  
 
=Evaluate Moves=
 
=Evaluate Moves=
One sample of ChessCore's extensive GC usage demonstrates its [[Alpha-Beta]] search - at each [[Node|node]], it allocates the [[Move List|move list]] and each generated [[Moves|move]] on the [[Data#Dynamic Data|heap]] <ref>[https://github.com/3583Bytes/ChessCore/blob/master/ChessCoreEngine/Search.cs#L406 ChessCore/Search.cs at master · 3583Bytes/ChessCore · GitHub - private static List<Position> EvaluateMoves(Board examineBoard, byte depth)]</ref>:
+
One sample of ChessCore's extensive GC usage demonstrates its [[Alpha-Beta]] search - at each [[Node|node]] it [[Move Generation|generates]] and sorts all moves (or [[Captures|captures]] in [[Quiescence Search|quiescence]]) <ref>[http://www.talkchess.com/forum3/viewtopic.php?f=7&t=30265&start=4 Re: I need help, performance wall!] by [[Sven Schüle]], [[CCC]], October 21, 2009</ref>, and allocates the [[Move List|move list]] and each generated [[Moves|move]] on the [[Data#Dynamic Data|heap]] <ref>[https://github.com/3583Bytes/ChessCore/blob/master/ChessCoreEngine/Search.cs#L406 ChessCore/Search.cs at master · 3583Bytes/ChessCore · GitHub - private static List<Position> EvaluateMoves(Board examineBoard, byte depth)]</ref>:
 
For some reason, internal class ''position'' encapsulates the move.   
 
For some reason, internal class ''position'' encapsulates the move.   
 
<pre>
 
<pre>
Line 29: Line 29:
 
</pre>
 
</pre>
 
=Forum Posts=
 
=Forum Posts=
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=29027 New Member Introduction] by [[Adam Berent]], [[CCC]], July 19, 2009
 +
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=30265 I need help, performance wall!] by [[Adam Berent]], [[CCC]], October 21, 2009
 
* [http://www.talkchess.com/forum3/viewtopic.php?f=6&t=31312 ChessBin 00.59] by [[Harun Taner]], [[CCC]], December 28, 2009  
 
* [http://www.talkchess.com/forum3/viewtopic.php?f=6&t=31312 ChessBin 00.59] by [[Harun Taner]], [[CCC]], December 28, 2009  
  

Revision as of 23:14, 29 March 2020

Home * Engines * ChessCore

ChessBin.com chess [1]

ChessCore, (ChessBin.com)
a chess engine by Adam Berent, written in C#. The ChessBin.com chess engine was documented in a blog format, and has been converted to cross-platform .NET Core dubbed ChessCore, open source under the MIT License published on GitHub [2]. The program makes heavy use of the .NET Core garbage collector (GC) [3] and is mentioned as buggy in Ron Murawski's engine list [4].

Evaluate Moves

One sample of ChessCore's extensive GC usage demonstrates its Alpha-Beta search - at each node it generates and sorts all moves (or captures in quiescence) [5], and allocates the move list and each generated move on the heap [6]: For some reason, internal class position encapsulates the move.

private static List<Position> EvaluateMoves(Board examineBoard, byte depth) {
  ...
  List<Position> positions = new List<Position>();
  for (byte x = 0; x < 64; x++) { ...
    Piece piece = examineBoard.Squares[x].Piece;
    ... continue if empty or opponent piece
    foreach (byte dst in piece.ValidMoves) { ...
      Position move = new Position(x, dst);
      ... Score move, killers, etc ..
      positions.Add(move); 
    }
  }
  return positions;
}

Forum Posts

External Links

References

Up one level