{"id":29745985,"url":"https://github.com/noamfav/frisia","last_synced_at":"2025-07-26T06:36:23.246Z","repository":{"id":273934512,"uuid":"852691643","full_name":"NoamFav/Frisia","owner":"NoamFav","description":"Frisian Draughts – A modern JavaFX-based take on the classic board game, featuring smart AI, multiplayer capabilities, tutorials, and customizable themes.","archived":false,"fork":false,"pushed_at":"2025-07-20T18:16:19.000Z","size":63825,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-20T20:26:32.994Z","etag":null,"topics":["ai","board-game","checker","desktop-app","draughts","frisian","game-development","java","javafx","maven","multiplayer","open-source","strategy-game","tutorial"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NoamFav.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-09-05T08:51:21.000Z","updated_at":"2025-07-20T18:28:08.000Z","dependencies_parsed_at":"2025-07-20T20:31:18.019Z","dependency_job_id":null,"html_url":"https://github.com/NoamFav/Frisia","commit_stats":null,"previous_names":["noamfav/frisian-draught"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/NoamFav/Frisia","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NoamFav%2FFrisia","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NoamFav%2FFrisia/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NoamFav%2FFrisia/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NoamFav%2FFrisia/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NoamFav","download_url":"https://codeload.github.com/NoamFav/Frisia/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NoamFav%2FFrisia/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267130913,"owners_count":24040517,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-26T02:00:08.937Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","board-game","checker","desktop-app","draughts","frisian","game-development","java","javafx","maven","multiplayer","open-source","strategy-game","tutorial"],"created_at":"2025-07-26T06:36:18.510Z","updated_at":"2025-07-26T06:36:23.218Z","avatar_url":"https://github.com/NoamFav.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# 🌟 Frisian Draughts Game 🌟\n\n[![Java](https://img.shields.io/badge/Java-23-orange.svg)](https://www.oracle.com/java/)\n[![JavaFX](https://img.shields.io/badge/JavaFX-23-blue.svg)](https://openjfx.io/)\n[![Maven](https://img.shields.io/badge/Maven-3.9-red.svg)](https://maven.apache.org/)\n[![License](https://img.shields.io/badge/license-MIT-green.svg)](https://opensource.org/licenses/MIT)\n\n\u003cimg src=\"https://github.com/NoamFav/frisian-draught/raw/main/src/main/resources/icons/Icon-linux.png\" width=\"250\" alt=\"Frisian Draughts Logo\"/\u003e\n\nA modern implementation of the classic Frisian Draughts board game with advanced AI, multiplayer capabilities, and a beautiful interface.\n\n[Installation](#-installation-guide) • \n[Features](#-key-features) • \n[Game Rules](#-game-rules) • \n[How to Play](#-how-to-play)\n\n\u003c/div\u003e\n\n---\n\n## 🎮 Overview\n\nWelcome 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!\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/NoamFav/frisian-draught/raw/main/src/main/resources/gameplay.png\" width=\"600\" alt=\"Frisian Draughts Gameplay\"/\u003e\n\u003c/div\u003e\n\n---\n\n## 🛠️ Prerequisites\n\nBefore jumping into the action, make sure your system is ready to run Frisian Draughts:\n\n| Requirement | Version | Notes |\n|-------------|---------|-------|\n| **Java** | 23 or later | [Installation Guide](https://www.oracle.com/java/technologies/downloads/#java23) |\n| **Maven** | 3.8+ | [Installation Guide](https://maven.apache.org/install.html) |\n| **JavaFX** | 23 | Already included in project dependencies |\n| **Graphics** | - | OpenGL 2.1+ compatible graphics card |\n| **Storage** | - | 100MB free disk space |\n\n---\n\n## 🌱 Installation Guide\n\n\u003cdetails open\u003e\n\u003csummary\u003e\u003cb\u003eQuick Start\u003c/b\u003e\u003c/summary\u003e\n\nFollow these simple steps to set up the game:\n\n1. **Clone the repository:**\n   ```bash\n   git clone https://github.com/NoamFav/frisian-draught.git\n   cd frisian-draught\n   ```\n\n2. **Build and run the game:**\n   ```bash\n   mvn clean javafx:run\n   ```\n\nThat's it! The game will launch automatically. 🚀\n\n\u003c/details\u003e\n\n---\n\n## 🎮 How to Play\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003ePackage for Standalone Use\u003c/b\u003e\u003c/summary\u003e\n\nEasily create an installer and play Frisian Draughts natively on your system.\n\n**Windows:**\n```bash\nmvn clean package -Djpackage.type=exe\n```\n\n**macOS:**\n```bash\nmvn clean package -Djpackage.type=dmg\n```\n\n**Linux:**\n```bash\nmvn clean package -Djpackage.type=deb\n# OR\nmvn clean package -Djpackage.type=rpm\n```\n\nYour game will be installed with a simple click! 💾\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eRunning in an IDE\u003c/b\u003e\u003c/summary\u003e\n\nYou can also run the game from your favorite IDE (IntelliJ IDEA, Eclipse, etc.) by executing the `Launcher` class.\n\n**IntelliJ IDEA:**\n1. Open the project\n2. Navigate to `src/main/java/com/frisiandraught/Launcher.java`\n3. Right-click and select \"Run Launcher.main()\"\n\n**Eclipse:**\n1. Import the project as a Maven project\n2. Find the Launcher class\n3. Right-click and select \"Run As \u003e Java Application\"\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eGame Controls\u003c/b\u003e\u003c/summary\u003e\n\n- **Mouse**: Click to select and move pieces\n- **Esc**: Open game menu\n- **M**: Toggle sound on/off\n- **T**: Switch theme (Light/Dark)\n- **R**: Restart current game\n- **H**: Show hint (where available)\n- **Space**: Pause AI thinking (in AI matches)\n\n\u003c/details\u003e\n\n---\n\n## 📺 Key Features\n\n\u003cdiv style=\"display: flex; flex-wrap: wrap;\"\u003e\n\n\u003cdiv style=\"flex: 1; min-width: 250px; padding: 10px;\"\u003e\n\u003ch3\u003e🌈 Beautiful UI\u003c/h3\u003e\n\u003cp\u003eChoose 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.\u003c/p\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"flex: 1; min-width: 250px; padding: 10px;\"\u003e\n\u003ch3\u003e🎤 Dynamic Sound Effects\u003c/h3\u003e\n\u003cp\u003eImmerse yourself with exciting audio feedback for moves, captures, and game events. All sounds can be toggled on/off at any time.\u003c/p\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"flex: 1; min-width: 250px; padding: 10px;\"\u003e\n\u003ch3\u003e🤖 Advanced AI\u003c/h3\u003e\n\u003cp\u003eTest your skills against multiple difficulty levels of AI opponents, or watch bots battle each other as you learn strategies!\u003c/p\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"flex: 1; min-width: 250px; padding: 10px;\"\u003e\n\u003ch3\u003e👥 Multiplayer Mode\u003c/h3\u003e\n\u003cp\u003eEnjoy a proof-of-concept multiplayer experience to test your skills online against other players around the world.\u003c/p\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"flex: 1; min-width: 250px; padding: 10px;\"\u003e\n\u003ch3\u003e🎓 Interactive Tutorials\u003c/h3\u003e\n\u003cp\u003eMaster the game through five detailed interactive lessons that guide you through basic moves to advanced strategies.\u003c/p\u003e\n\u003c/div\u003e\n\n\u003cdiv style=\"flex: 1; min-width: 250px; padding: 10px;\"\u003e\n\u003ch3\u003e🏡 Customization\u003c/h3\u003e\n\u003cp\u003eAdjust sound settings, theme preferences, and board styles to create your perfect playing environment.\u003c/p\u003e\n\u003c/div\u003e\n\n\u003c/div\u003e\n\n---\n\n## 🛠️ Planned Features\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd width=\"33%\"\u003e\n\u003ch3\u003e💪 Enhanced Multiplayer\u003c/h3\u003e\n\u003cp\u003eFully functional online matchmaking with player rankings and tournaments.\u003c/p\u003e\n\u003c/td\u003e\n\u003ctd width=\"33%\"\u003e\n\u003ch3\u003e🎮 Live Watch Mode\u003c/h3\u003e\n\u003cp\u003eSpectate ongoing games between top players to learn advanced strategies.\u003c/p\u003e\n\u003c/td\u003e\n\u003ctd width=\"33%\"\u003e\n\u003ch3\u003e💨 Visual Improvements\u003c/h3\u003e\n\u003cp\u003eAdditional animations and visual enhancements for a more immersive experience.\u003c/p\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd width=\"33%\"\u003e\n\u003ch3\u003e🌀 Enhanced AI\u003c/h3\u003e\n\u003cp\u003eMore sophisticated AI algorithms for even tougher single-player challenges.\u003c/p\u003e\n\u003c/td\u003e\n\u003ctd width=\"33%\"\u003e\n\u003ch3\u003e🎉 Expanded Tutorials\u003c/h3\u003e\n\u003cp\u003eMore comprehensive learning resources for players of all skill levels.\u003c/p\u003e\n\u003c/td\u003e\n\u003ctd width=\"33%\"\u003e\n\u003ch3\u003e📱 Mobile Support\u003c/h3\u003e\n\u003cp\u003eCross-platform support for mobile devices to play on the go.\u003c/p\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n---\n\n## 🌟 Game Rules\n\n\u003cdetails open\u003e\n\u003csummary\u003e\u003cb\u003eBasic Rules\u003c/b\u003e\u003c/summary\u003e\n\n**1. Board Setup:**\n- Played on a **10x10 board**, dark squares only.\n- Each player starts with **20 pieces**, and white moves first.\n\n**2. Moves:**\n- Pawns move diagonally forward one square.\n- Kings move diagonally or orthogonally across multiple squares.\n\n**3. Capturing:**\n- Mandatory captures with multi-jump sequences.\n- Can capture in any direction, vertically and horizontally as well.\n\n**4. Win Conditions:**\n- Win by eliminating all opponent pieces or blocking their moves.\n\n**5. Special Rules:**\n- King promotion occurs upon reaching the opponent's back row.\n- Capture priority is given to moves with the highest piece value.\n\n\u003c/details\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/NoamFav/frisian-draught/raw/main/src/main/resources/images/board_setup.png\" width=\"400\" alt=\"Board Setup\"/\u003e\n\u003c/div\u003e\n\n---\n\n## 🎧 Sound \u0026 Music\n\n- **Move Sound Effect:** [Creative Commons 0](https://freesound.org/s/371352/)\n- **Background Music:** [Uppbeat](https://uppbeat.io/t/pecan-pie/important-to-you)\n  - License code: `0V6UVBKUHDBDI1XW`\n\n---\n\n## 👨‍💻 Technical Details\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eArchitecture\u003c/b\u003e\u003c/summary\u003e\n\nThe game is built using a Model-View-Controller (MVC) architecture:\n- **Model**: Game logic, board state, and AI algorithms\n- **View**: JavaFX UI components and animations\n- **Controller**: User input handling and game flow management\n\nKey technologies:\n- **JavaFX**: UI framework\n- **FXML**: Layout definition\n- **CSS**: Styling and theming\n- **Minimax Algorithm**: Core of the AI decision-making process\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003ePerformance Optimizations\u003c/b\u003e\u003c/summary\u003e\n\n- **Alpha-beta pruning**: Enhances AI decision speed\n- **Move caching**: Reduces redundant calculations\n- **Lazy loading**: Improves startup time\n- **Responsive design**: Adapts to various screen sizes\n\n\u003c/details\u003e\n\n---\n\n## 🤝 Contributing\n\nWe welcome contributions to make Frisian Draughts even better! Whether it's adding new features, fixing bugs, or improving documentation, your help is appreciated.\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add some amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\nPlease make sure to update tests as appropriate and adhere to the code style guidelines.\n\n---\n\n## 🌟 Thank You!\n\nWe appreciate your support and feedback! 🎉 Stay tuned for more updates and exciting features.\n\nHave questions or suggestions? Feel free to submit an issue on our [GitHub Issues page](https://github.com/NoamFav/frisian-draught/issues).\n\n\u003cdiv align=\"center\"\u003e\n\n### Let the games begin! 🏆\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnoamfav%2Ffrisia","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnoamfav%2Ffrisia","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnoamfav%2Ffrisia/lists"}