All Projects → rudzen → ChessLib

rudzen / ChessLib

Licence: MIT license
C# chess library containing a complete data structure and move generation.

Programming Languages

C#
18002 projects
HTML
75241 projects

Projects that are alternatives of or similar to ChessLib

chesslib
chess library for legal move generation, FEN/PGN parsing and more
Stars: ✭ 151 (+308.11%)
Mutual labels:  fen, chessboard, chess-library
magic-bits
A C++ header-only library for efficient move generation in Chess using "magic bitboards" technique
Stars: ✭ 26 (-29.73%)
Mutual labels:  chess, bitboard, magic-bitboards
stockfish-chess-web-gui
Responsive chess web GUI to play against the Stockfish 10 chess engine. Multiple web GUI implementations have also been included.
Stars: ✭ 21 (-43.24%)
Mutual labels:  chess, chessboard
php-chess
A chess library for PHP.
Stars: ✭ 42 (+13.51%)
Mutual labels:  chess, fen
Chess.NET
[No longer maintained] A .NET chess library, written in C#
Stars: ✭ 48 (+29.73%)
Mutual labels:  chess, chess-library
kokopu
A JavaScript/TypeScript library implementing the chess game rules and providing tools to read/write the standard chess file formats.
Stars: ✭ 18 (-51.35%)
Mutual labels:  chess, fen
ChessBoardScanner
Java based Chess Board Scanner, which converts 2D chess board image into a machine readable format a.k.a. Forsyth–Edwards Notation (FEN). It uses OpenCV and Deeplearning4j frameworks, complemented with some proprietary algorithms implemented for realizing the goal. It currently supports the chess board and pieces sets of the most common online c…
Stars: ✭ 32 (-13.51%)
Mutual labels:  chess, chessboard
Online-Chess
A chess website where people can play against each other online.
Stars: ✭ 28 (-24.32%)
Mutual labels:  chess, chessboard
FDChessboardView
An iOS / Mac view controller for chess boards
Stars: ✭ 75 (+102.7%)
Mutual labels:  chess, chessboard
chessboard-recognizer
Uses neural networks to extract chess positions from images
Stars: ✭ 59 (+59.46%)
Mutual labels:  chess, chessboard
chessops
Chess and chess variant rules and operations in TypeScript
Stars: ✭ 66 (+78.38%)
Mutual labels:  chess, fen
chess.com
Python wrapper for Chess.com Published-Data API
Stars: ✭ 34 (-8.11%)
Mutual labels:  chess
AlphaVantage.Net
.Net client library for Alpha Vantage API
Stars: ✭ 65 (+75.68%)
Mutual labels:  netcore
PlanningPoker
A demo application of AspNetCore and SignalR
Stars: ✭ 20 (-45.95%)
Mutual labels:  netcore
FluentAssertions.Web
FluentAssertions for HTTP APIs
Stars: ✭ 71 (+91.89%)
Mutual labels:  netcore
TrulyQuantumChess
A game of truly quantum chess, with interference, entanglement, etc.
Stars: ✭ 77 (+108.11%)
Mutual labels:  chess
Excel2Object
excel convert to .NET Object | Excel与.NET 对象进行转换,支持公式、多Sheet等功能
Stars: ✭ 35 (-5.41%)
Mutual labels:  netcore
coreipc
WCF-like service model API for communication over named pipes and TCP. .NET and node.js clients.
Stars: ✭ 22 (-40.54%)
Mutual labels:  netcore
shakmaty-syzygy
A Rust library to probe Syzygy endgame tablebases
Stars: ✭ 14 (-62.16%)
Mutual labels:  chess
AdventOfCodeBase
Template repository for solving Advent of Code puzzles, which automatically handles input retrieval and output.
Stars: ✭ 33 (-10.81%)
Mutual labels:  netcore

ChessLib

A C# chess data library with complete move generation and all needed custom types.

Build status

Requirements

  • .NET 6.0+

What is this for?

This library contains all the data, types and structures for which to create a piece of chess software. It does not contain any heuristics or search algorithms as these are meant to be implemented separately.

But why?

This library was developed during a course "Advanced C# and object oriented programming E17" at DTU (Danish Technical University) as part of a chess user interface, which will be released at a later stage when it is ready. Since the UI needs to handle legality, mate check etc., all these features are contained within the library.

Can I use this as a starting point for my chess software?

Yes you can, it is designed with that in mind.

Features

  • Custom perft application which uses the library to calculate and compare results from custom positions
  • Transposition Table
  • Complete move generation with legality check
  • Custom compact and very efficient types for Bitboard, Square, Piece, Move, Player, File, Rank and Direction with tons of operators and helper functionality
  • 100% Bitboard support with piece attacks for all types, including lots of helper functions
  • Lots of pre-calculated bitboard arrays to aid in the creation of an evaluation functionality
  • FEN handling with optional legality check
  • Magic bitboard implementation Copyright (C) 2007 Pradyumna Kannan. Converted to C#
  • FEN input and output supported
  • Chess960 support
  • Zobrist key support
  • Basic UCI structure
  • HiRes timer
  • Draw by repetition detection
  • Mate validation
  • Plenty of unit tests to see how it works
  • Notation generation for the following notation types: Fan, San, Lan, Ran, Uci
  • Benchmark project for perft
  • Custom MoveList data structure
  • Pawn blockage algorithm

Is it fast?

Yes. As far as C# goes it should be able to hold its own.

Perft console test program approximate timings to depth 6 for normal start position

  • AMD-FX 8350 = ~12.5 seconds. (without TT) (earlier version)
  • Intel i7-8086k = ~3.5 seconds

What is not included?

  • Evaluation
  • Search
  • Communication using e.i. UCI (base parameter struct supplied though)

Planned

  • Basic chess engine (search + evaluation) w. UCI support
  • As nuget package
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].