alpha
Login
Join now
gearsco.de
/
starfish
Star
Starred
Star
2
Something went wrong. Try again.
Fork
0
Eye filled
Watch
Watching
Watch
A chess library for Gleam
Star
Starred
Star
2
Something went wrong. Try again.
Fork
0
Eye filled
Watch
Watching
Watch
Overview
Overview
Issues
Issues
Pulls
Pulls
Pipelines
Pipelines
Gleam
97%
JavaScript
3%
Erlang
<1%
main
Branches
main
fix-checkmate-detection
Tags
No tags found
View all branches
View all tags
73
2
0
Code
Clone this repository
Use permalink
HTTPS
https://next.tangled.org/gearsco.de/starfish
SSH
git@tangled.org:gearsco.de/starfish
For self-hosted knots, clone URLs may differ based on your setup.
tar.gz
.zip
.github
1y ago
dev
1y ago
src
1y ago
test
1y ago
.gitignore
1y ago
gen.js
1y ago
gleam.toml
1y ago
LICENSE
1mo ago
manifest.toml
1y ago
README.md
1y ago
Commits
73
Add LICENSE
f57e48f9
Gears
·
1mo ago
Use stockfish piece values
b9573cb3
Gears
·
1y ago
Remove birl dependency and use manual bindings
22b9ea12
Gears
·
1y ago
Remove unused parameter
133a87ee
Gears
·
1y ago
Use stockfish piece-square tables
7f621f01
Gears
·
1y ago
Reorganise modules and edit API
44589d47
Gears
·
1y ago
Properly recalculate piece tables with updated game phase
9cd014b3
Gears
·
1y ago
Store more information in moves to make move.apply and search easier
24372f92
Gears
·
1y ago
Ensure earliest checkmate is detected
7d543702
Gears
·
1y ago
Fix insufficient material detection
209d916a
GearsDatapacks
·
1y ago
Branches
2
main
·
1mo ago
Default
fix-checkmate-detection
·
1y ago
Compare
README.md
Starfish
#
A chess library for Gleam!
TODO list
#
Implement full legal move generation
Implement basic minimax search
Use zobrist hashing to cache positions when searching
Use piece tables to give more weight to certain squares in evaluation
Implement a system to test the performance of the generated moves
Maybe have some way to perform a search using iterative deepening?
Order moves before searching via heuristics to improve alpha-beta pruning
Continue searching past regular depth when captures are available (
https://www.chessprogramming.org/Quiescence_Search
)
Incrementally update game information such as zobrist hash, material count, and other evaluation information
Improve endgame play by encouraging the king to the centre of the board and encouraging pawns to promote
Search deeper for certain "more interesting" moves:
https://www.chessprogramming.org/Extensions
Improve static evaluation using pawn structure
Use an opening database to improve opening play
Cache transposition table across searches
Precalculate various pieces of data to avoid calculations when searching or evaluating (e.g. distance to edge)
Use bitboards for efficient calculations
Use null move pruning to reduce search space:
https://www.chessprogramming.org/Null_Move_Pruning
Use late move reductions to reduce search space:
https://www.chessprogramming.org/Late_Move_Reductions