Giter VIP home page Giter VIP logo

i7n3 / stratchess Goto Github PK

View Code? Open in Web Editor NEW
2.0 0.0 0.0 20.15 MB

StartChess is a PvP chess game as a web application. Built using Vaadin and Spring Boot. Chess engine implemented from the ground using Java. StartChess is a proof of concept (POC).

License: The Unlicense

Java 95.55% CSS 3.06% JavaScript 1.39%
chess chess-game java lombok vaadin14 vaadin spring spring-boot algorithms data-structures chess-engine pvp long-polling monolithic

stratchess's Introduction

StartChess ♟️️

Introduction 📖

Welcome to StartChess! This player-versus-player chess game combines Vaadin's engaging UI with Spring Boot's powerful backend, offering an immersive experience for chess fans and learners alike. It's more than just a game; it's a showcase of modern web technologies in a classic, strategic context.

Overview 🌐

At the heart of StartChess is a commitment to simplicity and clean object-oriented programming principles. The game engine, developed in Java, utilizes a traditional 8x8 matrix to represent the chessboard, and games are managed using the FEN notation notation. This setup is perfect for those looking to understand the intersection of classic game theory and modern programming practices.

Application Architecture

Application architecture The architecture diagram above illustrates the modular design of StartChess.

Prerequisites 🛠️

Before diving into StartChess, ensure you have:

  • Java (preferably JDK 11 or newer) installed.
  • Maven for managing project dependencies and builds.
  • An IDE of your choice (optional) for editing and running the application.

Testing and Validation 🧪

Tehre are a series of unit tests to ensure the reliability and accuracy of the game mechanics:

  • Figure Move Validation: Tests each chess piece's movement according to the rules.
  • Board State Validation: Ensures the board accurately reflects the current game state.
  • Game Rules Validation: Verifies that standard chess rules are enforced throughout gameplay.

To run tests, use mvn test.

Preparing for Production 🚀

  • Enable Production Mode: Set vaadin.productionMode to true in pom.xml.
  • Build Frontend: Execute `mvn vaadin:build-frontend`` to prepare the front-end assets.
  • Create Executable Jar: Generate chess-1.0-SNAPSHOT.jar with mvn clean package -Pproduction

Running the Application:

  • Locate the application jar at ./target/chess-1.0-SNAPSHOT.jar.
  • Launch it using java -jar chess-1.0-SNAPSHOT.jar.

For enhanced execution and logging:

 #!/bin/bash
nohup java -jar chess-1.0-SNAPSHOT.jar > chess.log 2>&1 & echo $! > save_pid.txt

Contributing and Further Development 💡

Contributions are warmly welcomed! Feel free to submit PRs for bug fixes, feature enhancements, or aesthetic improvements.

Current TODOs:

  • Implement additional endgame scenarios.
  • Refine UI/UX for an enhanced gameplay experience.

Have Fun and Good Luck! 🎉

Dive in, explore the game, and contribute. Your insights and improvements are vital in evolving this educational tool!

GLHF!

stratchess's People

Contributors

dependabot[bot] avatar i7n3 avatar

Stargazers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.