🇵🇱 Polski | 🇬🇧 English
Opis projektu w języku polskim.
Projekt aplikacji interaktywnej w języku C, wykorzystującej programowanie niskopoziomowe, z modularną strukturą kodu, dynamicznym zarządzaniem pamięcią, kompleksową obsługą błędów oraz graficznym interfejsem użytkownika. Projekt spełnia wymagania zaliczenia na ocenę 5.0, w tym operacje na plikach, efektywne użycie wskaźników i struktur danych oraz intuicyjną obsługę graficzną.
- Data rozpoczęcia: 2 kwietnia 2025
- Termin zakończenia: 15 czerwca 2025
Termin: 23 kwietnia 2025
- Określenie szczegółowej specyfikacji i wymagań projektu (#Issue 1)
- Utworzenie struktury repozytorium oraz modularnego szkieletu w C (#Issue 2)
- Konfiguracja Makefile oraz ustawienia kompilacji (#Issue 3)
- Projektowanie oraz implementacja wstępnych struktur danych (struct, wskaźniki) (#Issue 4)
Termin: 14 maja 2025
- Implementacja logiki gry (walidacja ruchów, egzekwowanie zasad gry) (#Issue 5)
- Dynamiczne zarządzanie pamięcią (listy, drzewa, tablice dynamiczne) do przechowywania stanu gry (#Issue 6)
- Obsługa operacji na plikach (zapis/odczyt stanu gry, logowanie statystyk graczy) (#Issue 7)
- Intensywne debugowanie, sprawdzanie wycieków pamięci (valgrind), testowanie (#Issue 8)
Termin: 11 czerwca 2025
- Implementacja GUI przy użyciu biblioteki Allegro, SFML lub SDL (#Issue 9)
- Obsługa graficznej interakcji kursora z ograniczeniem ruchów do poprawnych pól (#Issue 10)
- Rozbudowana obsługa błędów (walidacja danych wejściowych, bezpieczeństwo pamięci) (#Issue 11)
- Testy integracyjne, funkcjonalne i użytkowe GUI i mechaniki gry (#Issue 12)
Termin: 15 czerwca 2025
- Refaktoryzacja oraz optymalizacja finalnego kodu (#Issue 13)
- Końcowa dokumentacja, komentarze w kodzie oraz aktualizacja README (#Issue 14)
- Oddanie projektu na platformie ekursy (#Issue 15)
twoj_projekt/
├── assets/
│ └── images/
├── docs/
│ ├── specyfikacja_projektu.md
│ └── instrukcja_uzytkownika.md
├── include/
│ ├── logika_gry.h
│ ├── gui.h
│ └── operacje_plikowe.h
├── src/
│ ├── logika_gry.c
│ ├── gui.c
│ ├── operacje_plikowe.c
│ └── main.c
├── logs/
├── saves/
├── tests/
│ ├── test_logiki.c
│ └── test_gui.c
├── Makefile
├── .gitignore
└── README.mdJasno określone zadania ułatwiające zarządzanie projektem:
- Dokumentacja specyfikacji i wymagań projektu
- Utworzenie repozytorium i modularnej architektury
- Konfiguracja Makefile oraz kompilacja projektu
- Wstępna implementacja dynamicznych struktur danych (struct, wskaźniki)
- Implementacja logiki i reguł gry
- Dynamiczne struktury danych do zarządzania stanem gry
- Operacje plikowe (zapisywanie/wczytywanie gry, logi)
- Debugowanie i zarządzanie pamięcią (walidacja valgrindem)
- Implementacja GUI (Allegro/SFML/SDL)
- Interakcja kursora i ograniczenia ruchów
- Obsługa błędów i walidacja danych wejściowych
- Testy integracyjne GUI oraz mechaniki gry
- Refaktoryzacja i optymalizacja końcowego kodu
- Końcowa dokumentacja oraz przygotowanie README
- Oddanie projektu
Projekt w pełni spełnia wymagania określone na ocenę 5.0, w tym:
- Modularność ułatwiającą utrzymanie i rozbudowę.
- Zaawansowane zarządzanie pamięcią dynamiczną (alokacja/dealokacja).
- Kompleksowe operacje na plikach (zapisywanie stanów gry i logów).
- Graficzny interfejs użytkownika dla intuicyjnej obsługi.
- Szczegółowa obsługa błędów i odporność na nieprawidłowe operacje użytkownika.
- Kod powinien być modularny, czytelny oraz poprawnie udokumentowany (komentarze).
- Commit powinien jasno odnosić się do konkretnego issue (np.
#3 Wdrożona modularna architektura). - Regularne Pull Requesty ułatwiające współpracę i kontrolę jakości kodu.
- Dokumentacja w formie plików tekstowych markdown.