Skip to content

Conversation

@ezekielelvis
Copy link
Contributor

This pull request introduces major new features and improvements to the chess game server, focusing on adding multiplayer chat functionality, AI move selection, and board utilities. It also includes some project structure and build script updates. The most important changes are grouped below:

New Features

  • Added a ChatApi web service in chess/ChatApi.x that provides RESTful endpoints for sending and retrieving chat messages in multiplayer chess games, including message validation, room/player checks, and support for polling recent messages.
  • Implemented a simple AI opponent in chess/ChessAI.x using heuristic-based move selection for the Black player, scoring moves based on captures, center control, and pawn promotion.
  • Created a BoardUtils service in chess/BoardUtils.x with utilities for board manipulation, algebraic notation parsing, and square validation, to support chess logic and AI.

API and Module Definitions

  • Added the main server module definition in chess.x, including REST API response/request types for chat, and static content serving for the web client.

Build and Project Structure

  • Updated the Gradle build script to use new source paths for modules and removed the now-unneeded logic module from the build process. [1] [2]
  • Added a .gitignore file to exclude IDE/editor files and temporary artifacts from version control.

- Added gradle-wrapper.jar to enable Gradle wrapper functionality.
- Created gradle-wrapper.properties to specify distribution URL and settings.
- Added gradlew shell script for Unix-based systems to facilitate Gradle execution.
- Introduced gradlew.bat for Windows users to run Gradle commands easily.
- Deleted ChessGame.x, ChessPieces.x, OnlineChess.x, chess.x, chessLogic.x modules.
- Removed all associated game logic, piece validation, online multiplayer handling, and API services.
- This cleanup prepares the codebase for a new architecture or implementation.
- Added last move highlighting and valid move indicators.
- Improved layout and styling for better responsiveness.
- Introduced collapsible panels for game details and chat.
- Implemented chat feature for multiplayer mode with message history and polling.
- Refined button styles and typography for a modern look.
- Adjusted padding and margins for a cleaner interface.
- Introduced CSS variables for consistent theming
- Implemented reset and base styles for a clean layout
- Designed mode tabs for single and multiplayer modes
- Created styles for game container, status bar, and board
- Enhanced toolbar and button styles for better user interaction
- Developed responsive design adjustments for mobile devices
- Added styles for chat functionality and info popovers
- Included animations for interactive elements like buttons and status indicators
@ezekielelvis ezekielelvis requested a review from ggleyzer January 18, 2026 17:20
@ezekielelvis ezekielelvis self-assigned this Jan 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants