19 Commits

Author SHA1 Message Date
Kieran Kihn
592ae1ad23 refactor(ui): update Slint UI paths and update CMakeList.txt accordingly 2025-12-09 20:17:12 +08:00
Kieran Kihn
7bb302a672 chore: include PlayerAction and GameUI in build targets 2025-12-09 20:06:22 +08:00
Kieran Kihn
095a34af1c chore: integrate Slint UI framework and update build configuration
- Added Slint as a required dependency in the CMake configuration.
- Integrated Slint sources into `uno-game-lib`.
- Modified Windows debug build to create a GUI executable.
2025-12-09 20:05:35 +08:00
Kieran Kihn
a136e309e6 chore: include Session.cpp in build configuration 2025-12-04 16:40:03 +08:00
Kieran Kihn
535e62c852 feat(server): add argument parsing for server port
- Integrated `argparse` to parse command-line arguments for setting the server port.
- Default port set to `10001`.
2025-12-04 10:22:37 +08:00
Kieran Kihn
5f3a4083fd chore: update CMake library visibility for dependencies
- Changed `uno-game-lib` dependencies to `PUBLIC` visibility for `ftxui` components, `nlohmann_json`, and `asio`.
- Modified `uno-game-test` to use `PRIVATE` visibility for `uno-game-lib`.
2025-12-02 12:31:01 +08:00
Kieran Kihn
a650b61610 chore: split client and server executables
- Added `uno-client` and `uno-server` executables.
- Updated `CMakeLists.txt` to reflect new structure.
- Removed duplicate requirement for `ftxui`.
2025-12-01 23:34:22 +08:00
Kieran Kihn
a8ed0f6397 chore: Removed /utf-8 option from ftxui compile options for Clang to improve compatibility. 2025-12-01 15:07:22 +08:00
Kieran Kihn
042ab95dda feat(network): add NetworkClient for TCP communication
- Introduced `NetworkClient` class for client-side TCP communication.
- Implemented `connect`, `send`, and `read` methods for message handling.
- Updated `CMakeLists.txt` to include `NetworkClient.cpp` in the build configuration.
2025-11-28 22:22:03 +08:00
Kieran Kihn
84c470859b feat(network): add NetworkServer for managing player sessions and communication
- Implemented `NetworkServer` and `Session` classes for handling TCP communication with players.
- Added `NetworkServer.cpp` and `NetworkServer.h` to the project.
- Integrated `asio` library into the build configuration in `CMakeLists.txt`.
2025-11-28 20:40:14 +08:00
Kieran Kihn
6ea7ad71c2 feat(network): add MessageSerializer for message serialization/deserialization
- Implemented `MessageSerializer` class to handle JSON serialization and deserialization of game messages and payloads.
- Added `MessageSerializer.cpp` and `MessageSerializer.h` to `CMakeLists.txt`.
- Linked `nlohmann_json` library to the project.
2025-11-21 22:50:31 +08:00
Kieran Kihn
820358e0a3 feat(network): add Message class with payload types
- Introduced `Message` class in `src/network` for handling game-related message payloads (e.g., `JOIN_GAME`, `START_GAME`, etc.).
- Added `Message.cpp` and `Message.h` to `CMakeLists.txt`.
2025-11-21 22:49:23 +08:00
Kieran Kihn
6393a5b311 chore: update CMakeList.txt
- link `uno-game-lib` to `uno-game` instead of add sources to `uno-game`
- styled `CMakedList.txt` and `test/CMakeList.txt`
2025-11-20 13:32:15 +08:00
Kieran Kihn
5ad5dabcfc chore: updated CMakeList.txt 2025-11-16 20:57:01 +08:00
Kieran Kihn
8dbdbb395c feat(game): add PlayerState and GameState 2025-11-16 20:22:19 +08:00
Kieran Kihn
1b9ff0b413 feat(game): add Player 2025-11-16 19:52:09 +08:00
Kieran Kihn
1e49f5ffbb test(game): add test cases for Card 2025-11-16 11:47:26 +08:00
Kieran Kihn
acd0cae705 chore: updated CMakeList.txt 2025-11-16 11:44:33 +08:00
Kieran Kihn
9ebf366637 initial commit 2025-11-14 17:43:58 +08:00