https://github.com/noamfav/frisia
Frisian Draughts – A modern JavaFX-based take on the classic board game, featuring smart AI, multiplayer capabilities, tutorials, and customizable themes.
https://github.com/noamfav/frisia
ai board-game checker desktop-app draughts frisian game-development java javafx maven multiplayer open-source strategy-game tutorial
Last synced: 6 months ago
JSON representation
Frisian Draughts – A modern JavaFX-based take on the classic board game, featuring smart AI, multiplayer capabilities, tutorials, and customizable themes.
- Host: GitHub
- URL: https://github.com/noamfav/frisia
- Owner: NoamFav
- License: mit
- Created: 2024-09-05T08:51:21.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-07-20T18:16:19.000Z (7 months ago)
- Last Synced: 2025-07-20T20:26:32.994Z (7 months ago)
- Topics: ai, board-game, checker, desktop-app, draughts, frisian, game-development, java, javafx, maven, multiplayer, open-source, strategy-game, tutorial
- Language: Java
- Homepage:
- Size: 60.9 MB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
README
# 🌟 Frisian Draughts Game 🌟
[](https://www.oracle.com/java/)
[](https://openjfx.io/)
[](https://maven.apache.org/)
[](https://opensource.org/licenses/MIT)

A modern implementation of the classic Frisian Draughts board game with advanced AI, multiplayer capabilities, and a beautiful interface.
[Installation](#-installation-guide) •
[Features](#-key-features) •
[Game Rules](#-game-rules) •
[How to Play](#-how-to-play)
---
## 🎮 Overview
Welcome to **Frisian Draughts**, an exciting modern twist on the classic board game! Built with **JavaFX**, it offers immersive gameplay, smart AI opponents, multiplayer capabilities, and a beautifully designed interface. Whether you're a beginner or a draughts pro, Frisian Draughts provides a challenging and rewarding experience!
---
## 🛠️ Prerequisites
Before jumping into the action, make sure your system is ready to run Frisian Draughts:
| Requirement | Version | Notes |
|-------------|---------|-------|
| **Java** | 23 or later | [Installation Guide](https://www.oracle.com/java/technologies/downloads/#java23) |
| **Maven** | 3.8+ | [Installation Guide](https://maven.apache.org/install.html) |
| **JavaFX** | 23 | Already included in project dependencies |
| **Graphics** | - | OpenGL 2.1+ compatible graphics card |
| **Storage** | - | 100MB free disk space |
---
## 🌱 Installation Guide
Quick Start
Follow these simple steps to set up the game:
1. **Clone the repository:**
```bash
git clone https://github.com/NoamFav/frisian-draught.git
cd frisian-draught
```
2. **Build and run the game:**
```bash
mvn clean javafx:run
```
That's it! The game will launch automatically. 🚀
---
## 🎮 How to Play
Package for Standalone Use
Easily create an installer and play Frisian Draughts natively on your system.
**Windows:**
```bash
mvn clean package -Djpackage.type=exe
```
**macOS:**
```bash
mvn clean package -Djpackage.type=dmg
```
**Linux:**
```bash
mvn clean package -Djpackage.type=deb
# OR
mvn clean package -Djpackage.type=rpm
```
Your game will be installed with a simple click! 💾
Running in an IDE
You can also run the game from your favorite IDE (IntelliJ IDEA, Eclipse, etc.) by executing the `Launcher` class.
**IntelliJ IDEA:**
1. Open the project
2. Navigate to `src/main/java/com/frisiandraught/Launcher.java`
3. Right-click and select "Run Launcher.main()"
**Eclipse:**
1. Import the project as a Maven project
2. Find the Launcher class
3. Right-click and select "Run As > Java Application"
Game Controls
- **Mouse**: Click to select and move pieces
- **Esc**: Open game menu
- **M**: Toggle sound on/off
- **T**: Switch theme (Light/Dark)
- **R**: Restart current game
- **H**: Show hint (where available)
- **Space**: Pause AI thinking (in AI matches)
---
## 📺 Key Features
🌈 Beautiful UI
Choose between Light and Dark mode themes for an enhanced visual experience that's easy on the eyes. The interface adapts to your system preferences by default.
🎤 Dynamic Sound Effects
Immerse yourself with exciting audio feedback for moves, captures, and game events. All sounds can be toggled on/off at any time.
🤖 Advanced AI
Test your skills against multiple difficulty levels of AI opponents, or watch bots battle each other as you learn strategies!
👥 Multiplayer Mode
Enjoy a proof-of-concept multiplayer experience to test your skills online against other players around the world.
🎓 Interactive Tutorials
Master the game through five detailed interactive lessons that guide you through basic moves to advanced strategies.
🏡 Customization
Adjust sound settings, theme preferences, and board styles to create your perfect playing environment.
---
## 🛠️ Planned Features
💪 Enhanced Multiplayer
Fully functional online matchmaking with player rankings and tournaments.
🎮 Live Watch Mode
Spectate ongoing games between top players to learn advanced strategies.
💨 Visual Improvements
Additional animations and visual enhancements for a more immersive experience.
🌀 Enhanced AI
More sophisticated AI algorithms for even tougher single-player challenges.
🎉 Expanded Tutorials
More comprehensive learning resources for players of all skill levels.
📱 Mobile Support
Cross-platform support for mobile devices to play on the go.
---
## 🌟 Game Rules
Basic Rules
**1. Board Setup:**
- Played on a **10x10 board**, dark squares only.
- Each player starts with **20 pieces**, and white moves first.
**2. Moves:**
- Pawns move diagonally forward one square.
- Kings move diagonally or orthogonally across multiple squares.
**3. Capturing:**
- Mandatory captures with multi-jump sequences.
- Can capture in any direction, vertically and horizontally as well.
**4. Win Conditions:**
- Win by eliminating all opponent pieces or blocking their moves.
**5. Special Rules:**
- King promotion occurs upon reaching the opponent's back row.
- Capture priority is given to moves with the highest piece value.
---
## 🎧 Sound & Music
- **Move Sound Effect:** [Creative Commons 0](https://freesound.org/s/371352/)
- **Background Music:** [Uppbeat](https://uppbeat.io/t/pecan-pie/important-to-you)
- License code: `0V6UVBKUHDBDI1XW`
---
## 👨💻 Technical Details
Architecture
The game is built using a Model-View-Controller (MVC) architecture:
- **Model**: Game logic, board state, and AI algorithms
- **View**: JavaFX UI components and animations
- **Controller**: User input handling and game flow management
Key technologies:
- **JavaFX**: UI framework
- **FXML**: Layout definition
- **CSS**: Styling and theming
- **Minimax Algorithm**: Core of the AI decision-making process
Performance Optimizations
- **Alpha-beta pruning**: Enhances AI decision speed
- **Move caching**: Reduces redundant calculations
- **Lazy loading**: Improves startup time
- **Responsive design**: Adapts to various screen sizes
---
## 🤝 Contributing
We welcome contributions to make Frisian Draughts even better! Whether it's adding new features, fixing bugs, or improving documentation, your help is appreciated.
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
Please make sure to update tests as appropriate and adhere to the code style guidelines.
---
## 🌟 Thank You!
We appreciate your support and feedback! 🎉 Stay tuned for more updates and exciting features.
Have questions or suggestions? Feel free to submit an issue on our [GitHub Issues page](https://github.com/NoamFav/frisian-draught/issues).
### Let the games begin! 🏆