Skip to content

Latest commit

 

History

History
60 lines (35 loc) · 4.19 KB

README.md

File metadata and controls

60 lines (35 loc) · 4.19 KB

DOI

chessJS: A GOFAI Chess Engine (2300+ ELO Rated*)

ChessJS: How to contribute to this repository

To contribute to this repository, follow the following steps:

  1. Fork this repository
  2. Clone the repository to your local machine
  3. Make necessary changes
  4. Commit the changes and add a branch pointing to this repository.
  5. Make a PR mentioning all the changes.
  6. If your PR makes a significant improvement and changes to the project without causing any break points the PR will be merged without any failure.

All we need is your contributions and patience.

Chess JS

Chess JS is a chess engine written in JavaScript. It works on Min-Max Searching in a tree, Min-Max is a Good Old Fashion Artificial Intelligence (GOFAI) algorithm. The algorithm is a naïve algorithm and for its optimization Alpha-beta pruning is incorporated.

Alpha-Beta pruning: This algorithm focuses in reducing the nodes visited in the depth-first search implementation used in the Min-Max Algorithm. Thus, without travelling the entire tree we make basic mathematical conclusions on the tree.

Rules of Chess: The Engine follows all rules of Chess specified by FIDE ( Fédération Internationale des Echecs : International Chess Federation), rules can be referred here.

UI and Styling Improvement: The styling of website till commit-6 (i.e. commit with heading Day 6) is based of simple HTML and CSS, all UI and UX Improvements made after this commit is based on Open Source Contributions from various communities.

Terms of Use:

All rules and regulations of Creative Commons Attribution-NonCommercial 4.0 International License, are applicable to use this repository.

FIDE prohibits use any engines or electronic device during any live or online rated/professional event, The owner holds no responsibility towards any such malpractices and restrains the use for only educational and training purposes.

For TL;DR conditions:

No part of this repository can be used without giving credits to the owner of this project and Bluefever Software.

The UI is copyrighted material of the owner and cannot be used without any written (handwritten or electronic) permission/approval from the owner.

Acknowledgement:

Special mention to Bluefever Software for putting an Informative walkthrough over his JavaScript chess engine and for a basic UI Implementation.

Special Thanks to Anshuman Pandey for being available to bug fixes to this project and drastically improving the styling of this project.

Special Thanks to Piyush Gupta for adding additional features to the website and providing valuable inputs in styling of this project.

This project wouldn't have been possible without referring additional websites and research papers from IBM DeepBlue, Deep Mind and Stockfish, Every details about the referred websites is smentioned in the references section.

*The Elo rating mentioned is an approximation based on a series of match conducted with varied difficulties of Stockfish conducted at Lichess.

References and Citations:

[1] D. E. Knuth and R. W. Moore, "An Analysis of Alpha-Beta Priming'," 1975.

[2] D. Silver et al., "A general reinforcement learning algorithm that masters chess, shogi and Go through self-play," 2018.

[3] M. Campbell, A. J. Hoane, and F. H. Hsu, "Deep Blue," Artif. Intell., 2002, doi: 10.1016/S0004-3702(01)00129-1.

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.