Difference between revisions of "ChessCore"
GerdIsenberg (talk | contribs) |
GerdIsenberg (talk | contribs) |
||
Line 5: | Line 5: | ||
'''ChessCore''', (ChessBin.com)<br/> | '''ChessCore''', (ChessBin.com)<br/> | ||
a chess engine by [[Adam Berent]], written in [[C sharp|C#]]. | a chess engine by [[Adam Berent]], written in [[C sharp|C#]]. | ||
− | The ''ChessBin.com'' chess engine was documented in a blog format, and has been converted to cross-platform [https://en.wikipedia.org/wiki/.NET_Core .NET Core] dubbed '''ChessCore''', [[:Category:Open Source|open source]] under the [[Massachusetts Institute of Technology#License|MIT License]] published on [https://en.wikipedia.org/wiki/GitHub GitHub] <ref>[https://github.com/3583Bytes/ChessCore GitHub - 3583Bytes/ChessCore: Chess Engine Implemented in .net core]</ref>. | + | The ''ChessBin.com'' chess engine was documented in a blog format <ref>[[Adam Berent]] ('''2014'''). ''Guide to Programming a Chess Engine''. [https://www.adamberent.com/wp-content/uploads/2019/02/GuideToProgrammingChessEngine.pdf pdf]</ref>, and has been converted to cross-platform [https://en.wikipedia.org/wiki/.NET_Core .NET Core] dubbed '''ChessCore''', [[:Category:Open Source|open source]] under the [[Massachusetts Institute of Technology#License|MIT License]] published on [https://en.wikipedia.org/wiki/GitHub GitHub] <ref>[https://github.com/3583Bytes/ChessCore GitHub - 3583Bytes/ChessCore: Chess Engine Implemented in .net core]</ref>. |
The program makes heavy use of the .NET Core [https://en.wikipedia.org/wiki/Garbage_collection_(computer_science) garbage collector] (GC) | The program makes heavy use of the .NET Core [https://en.wikipedia.org/wiki/Garbage_collection_(computer_science) garbage collector] (GC) | ||
<ref>[https://www.tutorialspoint.com/dotnet_core/dotnet_core_garbage_collection.htm .NET Core - Garbage Collection - Tutorialspoint]</ref> and is mentioned as buggy in [[Ron Murawski|Ron Murawski's]] engine list <ref>[http://computer-chess.org/doku.php?id=computer_chess:wiki:lists:chess_engine_list Chess Engine List] from [[Ron Murawski|Ron Murawski's]] [http://computer-chess.org/doku.php?id=home Computer-Chess Wiki]</ref>. | <ref>[https://www.tutorialspoint.com/dotnet_core/dotnet_core_garbage_collection.htm .NET Core - Garbage Collection - Tutorialspoint]</ref> and is mentioned as buggy in [[Ron Murawski|Ron Murawski's]] engine list <ref>[http://computer-chess.org/doku.php?id=computer_chess:wiki:lists:chess_engine_list Chess Engine List] from [[Ron Murawski|Ron Murawski's]] [http://computer-chess.org/doku.php?id=home Computer-Chess Wiki]</ref>. | ||
Line 28: | Line 28: | ||
} | } | ||
</pre> | </pre> | ||
+ | =Publications= | ||
+ | * [[Adam Berent]] ('''2014'''). ''Guide to Programming a Chess Engine''. [https://www.adamberent.com/wp-content/uploads/2019/02/GuideToProgrammingChessEngine.pdf pdf] | ||
+ | |||
=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=2&t=29027 New Member Introduction] by [[Adam Berent]], [[CCC]], July 19, 2009 |
Revision as of 23:37, 29 March 2020
ChessCore, (ChessBin.com)
a chess engine by Adam Berent, written in C#.
The ChessBin.com chess engine was documented in a blog format [2], and has been converted to cross-platform .NET Core dubbed ChessCore, open source under the MIT License published on GitHub [3].
The program makes heavy use of the .NET Core garbage collector (GC)
[4] and is mentioned as buggy in Ron Murawski's engine list [5].
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) [6], and allocates the move list and each generated move on the heap [7]: 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; }
Publications
- Adam Berent (2014). Guide to Programming a Chess Engine. pdf
Forum Posts
- New Member Introduction by Adam Berent, CCC, July 19, 2009
- I need help, performance wall! by Adam Berent, CCC, October 21, 2009
- ChessBin 00.59 by Harun Taner, CCC, December 28, 2009
External Links
- GitHub - 3583Bytes/ChessCore: Chess Engine Implemented in .net core
- Chess – Adam Berent
- Computer Chess – Adam Berent
- Computer Chess Information and Resources (Wayback Machine)
References
- ↑ Computer Chess Information and Resources (Wayback Machine)
- ↑ Adam Berent (2014). Guide to Programming a Chess Engine. pdf
- ↑ GitHub - 3583Bytes/ChessCore: Chess Engine Implemented in .net core
- ↑ .NET Core - Garbage Collection - Tutorialspoint
- ↑ Chess Engine List from Ron Murawski's Computer-Chess Wiki
- ↑ Re: I need help, performance wall! by Sven Schüle, CCC, October 21, 2009
- ↑ ChessCore/Search.cs at master · 3583Bytes/ChessCore · GitHub - private static List<Position> EvaluateMoves(Board examineBoard, byte depth)