A chess puzzle trainer implemented in Effekt, a research programming language that supports algebraic effects and handlers.
- Find a puzzle better than 90 and select one randomly.
- Parse FEN Notation
- Display Board as ASCII
- User Input Validation (Accept user moves in algebraic notation)
- Check if the user’s move matches the correct solution.
- if yes: the opponent moves
- if no: get 3 chances
- Better way to see the current state of the board / better way to input his move.
- Filter by Rating (difficulty)
- Progression system: Like you start by only being able to do simple puzzles; if you solve 10, you unlock harder puzzles, and so on.
- Online Multiplayer
- AI Opponent
- Advanced Chess Analytics/Feedback
-
InvalidMove
-
InvalidPuzzle
-
PuzzleWon
-
PuzzleLost
-
IOError
-
OutOfBounds
- string - String manipulation
- option - Optional values
- list - List operations
- io - File operations
- exception - Error handling
- Chess puzzles from Lichess
- Install Effekt following the official instructions
- Clone this repository
# Run game
effekt src/main.effekt
# Run tests
effekt src/test.effekt
- Simple Viewer:
- View board from both white and black's perspective
- Show the last move from the enemie
- Put in your move with algebraic notation.
- Progress System:
- Unlock harder puzzles by solving easier ones
- Lose progress when failing puzzles
- Settings:
- Remove already played puzzles.
- Hardcore Mode ( One chance per move ) / Nomal mode, you get a tipp after you make a mistake
- Effect-based Error Handling:
- Invalid puzzle handling
- Move validation
- Game state management
Chess puzzles are from lichess.org and are available under the Creative Commons CC0 license.