# Awesome Chess [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome)

A curated list of assets availible on the Internet related to chess.

*Inspired by the [awesome](https://github.com/sindresorhus/awesome) list thing. You might want to read the complete [awesome](https://github.com/sindresorhus/awesome) list.*

### Contributing
Kindly go through [Contribution Guidelines](https://github.com/hkirat/awesome-chess/blob/master/CONTRIBUTING.md#contribution-guidelines) first.

Content
---
 - [Books](#books)
 - [FEN Parsers](#fen-parsers)
 - [Move Validators](#move-validators)
 - [Bots](#bots)
 - [Websites](#websites)
 - [Boards](#boards)
 - [Board Notations](#board-notations)
 - [Pieces](#pieces)
 - [Talks](#talks)

Books
---
*Books to read on chess.*

 - [Chess Problems](https://kairavacademydotcom.files.wordpress.com/2013/06/john-thursby-75-chess-problems.pdf) - Collection of chess puzzles.
 - [Chess strategy](http://www.gutenberg.org/cache/epub/5614/pg5614-images.html) - HTML version of chess strategy by Edward Lasker.
 - [Sicilian Dragon](http://www.chesscity.com/PDF/Sicilian_Dragon_Black_Attacks_ssd.pdf) - Attacking plans for black.

FEN Parsers
---
*Forsyth–Edwards Notation (FEN) is a standard notation for describing a particular board position of a chess game.*

 - [fenparser by tlehman](https://github.com/tlehman/fenparser) - A parser for Forsyth-Edwards Notation wriitten in Python.
 - [fen by ucarion](https://github.com/ucarion/fen) - A Rust Forsyth-Edwards notation parser with proper error handling.
 - [fen-diagram by andyherbert](https://github.com/andyherbert/fen-diagram) - JavaScript for generating chess diagrams using Forsyth-Edwards notation.

Bots
---
*Bots are algorithms involving artificial intelligence to play against a user.*

 - [latrunculorum](https://github.com/benwr/latrunculorum) - A simple chess bot in Python.
 - [Chessbot](https://github.com/jfabeel/Chessbot) - Bot written in Java.

Move Validators
---
*Validators are tools for checking authenticity of a move.*

 - [chess.js](https://github.com/jhlywa/chess.js) - chess.js, Structured code for chess authentication.
 - [npm chess package](https://www.npmjs.com/package/chess) - An algebraic notation driven chess engine that can validate board position and produce a list of viable moves.
 - [Chessnut](https://github.com/cgearhart/Chessnut.git) - Chessnut is a simple chess board model written in Python. It provides functionality of parsing FEN and generating a list of legal moves for each FEN representation.

Websites
---
*Websites include platforms for people to play chess.*

 - [multiplayerchess.com](http://multiplayerchess.com) - A simple single page chess playing application facilitating the play of chess.
 - [lichess.org](http://en.lichess.org/) - One of the most mature platforms for playing chess on the internet. It is open source too. It is equipped with daily puzzles and an TV to spectate other matches.
 - [chess24.com](https://chess24.com/en/play/chess) - Play as well as learn chess from chess24 with the best of tutorials.
 - [chessbase.com](http://play.chessbase.com/js/apps/playchess/) - Lucrative, single page application for playing chess. 
 - [chess.com](http://www.chess.com/) - Learn and play chess with over 5 million other users.
 - [chesscademy.com](https://www.chesscademy.com/) - Watch videos, solve puzzles, and play games. All for free. (Works similar to Khan Academy.)
 - [chesstempo.com](http://chesstempo.com) - Online chess tactics training site.
 - [chessprogramming.wikispaces.com](https://chessprogramming.wikispaces.com/) - Repository of information about programming computers to play chess.
 - [freechess.org](http://freechess.org/) - The 'Free Internet Chess Server' (FICS) is one of the oldest Internet chess servers. There are lots of client applications for almost every device, operation system or webbrowser available.

Boards
---
*Boards are tools for encapsulating the process of rendering a board.*

 - [Chessboard.js](https://github.com/oakmac/chessboardjs/) - chessboard.js is a standalone JavaScript chess board.
 - [chess-board](https://github.com/laat/chess-board) - A web component for displaying chess positions. It takes FEN string as input and renders the board as output.
 - [jchess](https://github.com/bmarini/jchess) - A jQuery based JavaScript library for parsing and displaying chess games. Currently takes FEN and PGN as inputs.
 - [Chessboard-js](https://github.com/caustique/chessboard-js) - A responsive mobile-first JavaScript chessboard library.

Board Notations
---
*Notations are a way of expressing the properties of the board in textual format. [Tutorial on Chess Notations](http://chess.eusa.ed.ac.uk/Chess/Rules/notation.html).*

 - [FEN](https://en.wikipedia.org/wiki/Forsyth%E2%80%93Edwards_Notation) - A FEN "record" defines a particular game position, all in one text line and using only the ASCII character set.
 - [PNG](http://www6.chessclub.com/help/PGN-spec) - PGN is structured "for easy reading and writing by human users and for easy parsing and generation by computer programs." 
 - Other Notations
 	- [Algebraic Chess Notation](https://en.wikipedia.org/wiki/Algebraic_notation_(chess))
 	- [ICCF numeric notation](https://en.wikipedia.org/wiki/ICCF_numeric_notation) - Official chess game notation for all International Correspondence Chess Federation games.
 	- [Smith Chess Notation](http://www6.chessclub.com/chessviewer/smith.html)
 	- [Descriptive Notation](https://en.wikipedia.org/wiki/Descriptive_notation)

Pieces
---
*This includes the tools for getting artwork for various pieces of chess.*

 - [Spiral Pieces in 3-D](https://www.thingiverse.com/thing:470700)
 - [Pieces on Wikipedia](https://commons.wikimedia.org/wiki/Category:PNG_chess_pieces/Standard_transparent)
 - [Chess Pieces in Unicode](https://en.wikipedia.org/wiki/Chess_symbols_in_Unicode)
 - [Icons on flaticons](http://www.flaticon.com/search/chess)
 - [Icons on thenounproject](https://thenounproject.com/search/?q=chess)

Talks
---
*Talks on chess.*
 
 - [Understanding Chess Mastery](https://www.youtube.com/watch?v=fPopQaY7Og4) -Talk on understanding chess mastery by Jennifer Shahade.
 - [How Chess Can Revolutionize Learning](https://www.youtube.com/watch?v=A3yDvM8aplY) - Talk on how chess can revolutionize learning by Cody Pomeranz.
 - [Working backward to solve problems](https://www.youtube.com/watch?v=v34NqCbAA1c) - Talk on working backward to solve problems by Maurice Ashley
 - [Chess Life](https://www.youtube.com/watch?v=lgCSo1Txw3c)
 - [Why Chess is Boring ](https://www.youtube.com/watch?v=7EuxVOgrEig) - Talk on why chess is boring by Bobby Fischer
 - [Chess Peeps](https://www.youtube.com/watch?v=p027ysBt0_M)
