Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ssoudan/hschess
A minimax-based chess AI with a GUI in FRP.
https://github.com/ssoudan/hschess
chess haskell minimax reactive-programming
Last synced: 4 days ago
JSON representation
A minimax-based chess AI with a GUI in FRP.
- Host: GitHub
- URL: https://github.com/ssoudan/hschess
- Owner: ssoudan
- License: apache-2.0
- Created: 2014-04-26T14:10:07.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2015-11-03T17:16:08.000Z (about 9 years ago)
- Last Synced: 2023-03-29T13:41:38.682Z (almost 2 years ago)
- Topics: chess, haskell, minimax, reactive-programming
- Language: Haskell
- Homepage:
- Size: 1.06 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
hsChess
=======@ssoudan
This is a basic implementation of a chess playing program in Haskell.
# Description
- based on a minimax with Alpha-Beta pruning AI
- UI is in reactive-banana-wx# Build instructions
You'll need to install reactive-banana-wx and wxhaskell. Once that is done, cabal build will do the rest and build a Mac OSX app in dist/build/hsChess.app/ with all the dependencies included.
# TODO
- [x] add manual strategy
- [x] improve UX
- [x] Mac packaging
- [x] store the history in the State rather than the latest state (using DList)
- [x] add castling moves
- [x] web UI or GUI
- [x] check detection and move selection
- [x] mate detection
- [x] show possible moves
- [x] parallelize the evaluation of the options
- [x] async computation of moves and push notification on completion
- [x] enter moves with DnD
- [ ] split the current turn into each player turn so we can show the move of real player more quickly and pave the way to PvP
- [ ] show when the soft is busy computing a move and disable interactions
- [ ] stalemate detection
- [ ] test moves (shows best response moves of each player up to the horizon for a given option)
- [ ] non-linear game history with bookmarks
- [ ] pawn conversion
- [ ] save/restore games
- [ ] start from predefined states
- [ ] gamification: Achievements to learn chess# License
This program is distributed under APLv2. Check the LICENSE file for more details.