A chess library for Gleam

Add TODO list to README

+19 -22
+19 -22
README.md
··· 1 - # starfish 1 + # Starfish 2 2 3 - [![Package Version](https://img.shields.io/hexpm/v/starfish)](https://hex.pm/packages/starfish) 4 - [![Hex Docs](https://img.shields.io/badge/hex-docs-ffaff3)](https://hexdocs.pm/starfish/) 3 + A chess library for Gleam! 5 4 6 - ```sh 7 - gleam add starfish@1 8 - ``` 9 - ```gleam 10 - import starfish 11 - 12 - pub fn main() -> Nil { 13 - // TODO: An example of the project in use 14 - } 15 - ``` 16 - 17 - Further documentation can be found at <https://hexdocs.pm/starfish>. 18 - 19 - ## Development 20 - 21 - ```sh 22 - gleam run # Run the project 23 - gleam test # Run the tests 24 - ``` 5 + ### TODO list 6 + - [x] Implement full legal move generation 7 + - [x] Implement basic minimax search 8 + - [x] Use zobrist hashing to cache positions when searching 9 + - [x] Use piece tables to give more weight to certain squares in evaluation 10 + - [ ] Continue searching past regular depth when captures are available (https://www.chessprogramming.org/Quiescence_Search) 11 + - [ ] Order moves before searching via heuristics to improve alpha-beta pruning 12 + - [ ] Improve static evaluation using pawn structure 13 + - [ ] Improve endgame play by encouraging the king to the centre of the board and encouraging pawns to promote 14 + - [ ] Incrementally update game information such as zobrist hash, material count, and other evaluation information 15 + - [ ] Implement a system to test the performance of the generated moves 16 + - [ ] Maybe have some way to perform a search using iterative deepening? 17 + - [ ] Use an opening database to improve opening play 18 + - [ ] Cache transposition table across searches 19 + - [ ] Search deeper for certain "more interesting" moves: https://www.chessprogramming.org/Extensions 20 + - [ ] Precalculate various pieces of data to avoid calculations when searching or evaluating (e.g. distance to edge) 21 + - [ ] Use bitboards for efficient calculations