JAVA MINI PROJECT
CHESS BOARD
BL.SC.U4AIE24046 - Samarth C Gowda
BL.SC.U4AIE24040 - Abitej Reddy
BL.SC.U4AIE24004 – Aditya Kundu
BL.SC.U4AIE24028 – Nachiket Pravin Saonerkar
Overview of our
hat is Chess and how we implemented it in our project
Presentation
2. UML Diagram
3. OOPS concepts being used in our
project
4. GUI design of our code and
the results.
Contributions
Nachiket: GUI & Core InfrastructureMenu system implementationBoard rendering and themingCoordinate display
toggleTimer system integrationUI event handling
Aditya: Game Logic & ValidationChess piece movement rulesCheck/checkmate detectionMove history and
undo/redoPawn promotion handlingStalemate detection
Samarth: AI & Advanced FeaturesRandom move AI implementationHint system developmentChess960
initializationMove highlightingStatus message updates
Abitej: Persistence & ConfigurationGame save/load functionalityBoard state serializationTimer configuration
dialogError handling for I/OAbout/help documentation
What is Chess?
o Chess is a two-player strategy game played on an 8×8 board where each player controls 16 pieces
(king, queen, rooks, bishops, knights, and pawns).
o The goal is to checkmate your opponent’s king, meaning the king is under attack and can't escape
capture.
o It’s a game of tactics, planning, and foresight — often called the "game of kings" because it mixes
logic, creativity, and strategy
How We Implemented Chess in Our Project?
o Use classes for pieces and extend them for different types like King, Queen, and Pawn.
o Create a Board class with a 2D array of Piece objects to represent the chessboard.
o Implement movement logic within each piece class to validate their moves.
o Create a Game Manager class to handle turns, move validation, and check/checkmate detection.
o Build a simple user interface to print the board and update it after each move.
UML DIAGRAM
USE DIAGRAM
OOPS concepts being used in the code
Encapsulation
• Piece class bundles color and type together and hides internal setup.
• setIcon method controls how board pieces are updated instead of allowing direct access.
Abstraction
• getImageIcon method hides the complexity of mapping pieces to images.
• initiateBoard method abstracts the detailed setup of the initial chessboard.
Inheritance
• ButtonListener class inherits behavior from the ActionListener interface.
• GUI components like JPanel and JButton inherit properties from AWT/Swing hierarchy.
Polymorphism
• actionPerformed method behaves differently based on which button triggers it.
• getImageIcon method behaves differently depending on the piece type it receives.
GUI Design Of Our Code
Challenges And What We Learned From Code.
•Implementing Complex Rules (e.g., Castling, Pawn Promotion)
•Efficient Move Validation
•Handling Special Chess Scenarios (Checkmate, Stalemate)
Final Outcome:
The final outcome is a fully functional chess game in Java with correct piece movement,
special moves, turn management, check/checkmate detection, and either a console or GUI
interface for player interaction.