Skip to content

mihaid11/JChess

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JChess

A fully functional, object-oriented 2D Chess application built in Java with Swing. It provides a complete graphical interface, user authentication, match history, and save-state capabilities.

Why JChess?

JChess started as a university project to explore advanced Object-Oriented Programming (OOP) principles and Software Design Patterns. It aims to build a clean, decoupled architecture where the mathematical game logic is completely separated from the visual presentation layer.

Key features

  • Advanced OOP & Design Patterns: Heavily utilizes the Factory Pattern for dynamic piece generation and the Strategy Pattern for encapsulating the unique movement rules of each piece.
  • Custom GUI Navigation: A responsive graphical interface built with Java Swing, using CardLayout for seamless navigation between views .
  • Data Persistence: User accounts, match histories, and active game states are serialized and stored locally using JSON.

Technologies

  • Language: Java 21
  • UI framework: Java Swing (AWT)
  • Build tool: Apache Maven
  • Data serialization: json-simple

Build and Run

This project uses Maven, making it IDE-agnostic and easy to compile from any terminal.

  1. Clone the repository:
git clone https://github.com/mihaid11/JChess.git
cd JChess
  1. Compile the project and fetch dependencies:
mvn clean compile
  1. Launch the application:
mvn exec:java

Screenshots

mainMenu gamePage

Demo Login

For quick testing without registration, you can use the pre-configured guest account:

  • Username: guest
  • Password: password

About

A fully functional, object-oriented 2D Chess desktop application built in Java 21 and Swing.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages