π΅π± Polski | π¬π§ English
Project description in English goes here.
An interactive, low-level programming project implemented entirely in C, featuring modular architecture, dynamic memory management, robust error handling, and a graphical user interface (GUI). This project complies with the specific academic requirements for a grade of 5.0, including structured and clear coding practices, effective use of pointers, structures, dynamic data structures, and file-based operations.
- Start Date: April 2, 2025
- End Date: June 15, 2025
Due Date: April 23, 2025
- Define detailed project specification and functional requirements (#Issue 1)
- Set up repository structure and initial modular framework in C (#Issue 2)
- Configure Makefile and compilation settings (#Issue 3)
- Design and implement initial data structures (structs, pointers) (#Issue 4)
Due Date: May 14, 2025
- Implement the main game logic (move validation, game rules enforcement) (#Issue 5)
- Integrate dynamic memory management (linked lists, dynamic arrays, trees) for game state handling (#Issue 6)
- Develop file operations for game states, logs, and player statistics (saving/loading mechanisms) (#Issue 7)
- Perform rigorous debugging, memory-leak checking (valgrind), and preliminary testing (#Issue 8)
Due Date: June 11, 2025
- Implement graphical user interface using libraries like Allegro, SFML, or SDL (#Issue 9)
- Introduce cursor-based interaction and graphical constraints on valid moves (#Issue 10)
- Comprehensive error handling (input validation, memory safety, exception handling) (#Issue 11)
- Integration, functional, and usability testing of GUI and core gameplay mechanics (#Issue 12)
Due Date: June 15, 2025
- Refactor, finalize codebase for readability, maintainability, and efficiency (#Issue 13)
- Finalize documentation, commenting, and README updates (#Issue 14)
- Project submission via ekursy platform (#Issue 15)
your_project/
βββ assets/
β βββ images/
βββ docs/
β βββ project_specification.md
β βββ user_manual.md
βββ include/
β βββ game_logic.h
β βββ gui.h
β βββ file_operations.h
βββ src/
β βββ game_logic.c
β βββ gui.c
β βββ file_operations.c
β βββ main.c
βββ logs/
βββ saves/
βββ tests/
β βββ test_logic.c
β βββ test_gui.c
βββ Makefile
βββ .gitignore
βββ README.md
Clearly defined issues for efficient project tracking:
- Specification and Requirements Documentation
- Repository and Modular Architecture Setup
- Makefile and Compilation Configuration
- Initial Dynamic Structures (e.g., structs, pointers)
- Implementation of Game Logic and Rule Enforcement
- Dynamic Data Structures for Game State Management
- File Operations (Saving/Loading, Logging)
- Debugging and Memory Management Validation (valgrind)
- GUI Implementation using Allegro/SFML/SDL
- Cursor and Gameplay Interaction Improvements
- Robust Error Handling and Input Validation
- GUI and Core Integration Tests
- Final Code Refactoring and Optimization
- Final Documentation and README Preparation
- Submission
This project explicitly aligns with requirements for obtaining a 5.0 grade:
- Logical modularity for ease of maintenance and scalability.
- Advanced use of pointers and dynamic structures to manage memory explicitly and efficiently.
- Robust file-based functionality to store game state and logs.
- Comprehensive GUI ensuring intuitive, interactive gameplay.
- Detailed error handling to produce resilient, secure software.
- Clear and descriptive variable/function naming for readability.
- Modular implementation: each C file represents a specific module.
- Regular commits and pull requests, referencing specific issues (e.g.,
#3 Modular architecture implemented
). - Thorough documentation and inline comments.