-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
209 changed files
with
54,904 additions
and
1,560 deletions.
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,44 +1,59 @@ | ||
cmake_minimum_required(VERSION 3.29) | ||
project(MemoryGame) | ||
|
||
set(CMAKE_CXX_STANDARD 20) | ||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static-libstdc++ -static-libgcc -finput-charset=UTF-8 -fexec-charset=UTF-8 --static") | ||
|
||
# Pobranie nlohmann/json | ||
include(FetchContent) | ||
|
||
FetchContent_Declare( | ||
json | ||
URL https://github.com/nlohmann/json/releases/download/v3.11.3/json.tar.xz | ||
) | ||
FetchContent_MakeAvailable(json) | ||
|
||
# Dodanie wszystkich plików Ÿród³owych do projektu | ||
add_executable(MemoryGame | ||
main.cpp | ||
game/user/User.cpp | ||
game/user/UserManager.cpp | ||
game/user/User.h | ||
game/user/UserManager.h | ||
game/board/BoardManager.h | ||
game/board/BoardManager.cpp | ||
game/board/card/Card.cpp | ||
game/board/card/Card.h | ||
game/board/Board.cpp | ||
game/board/Board.h | ||
game/board/difficulty/Difficulty.h | ||
game/board/card/CardTypeService.h | ||
game/board/difficulty/DifficultyProvider.h | ||
game/user/UserProvider.cpp | ||
game/user/UserProvider.h | ||
game/board/queue/TurnQueue.cpp | ||
game/board/queue/TurnQueue.h | ||
game/Game.cpp | ||
game/Game.h | ||
game/board/SizeProvider.h | ||
game/backup/BackupService.cpp | ||
game/backup/BackupService.h | ||
) | ||
|
||
# Linkowanie biblioteki nlohmann_json do projektu | ||
target_link_libraries(MemoryGame PRIVATE nlohmann_json::nlohmann_json) | ||
cmake_minimum_required(VERSION 3.29) | ||
project(MemoryGame) | ||
|
||
set(CMAKE_CXX_STANDARD 20) | ||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static-libstdc++ -static-libgcc -finput-charset=UTF-8 -fexec-charset=UTF-8 --static") | ||
|
||
include(FetchContent) | ||
|
||
FetchContent_Declare( | ||
json | ||
URL https://github.com/nlohmann/json/releases/download/v3.11.3/json.tar.xz | ||
) | ||
FetchContent_MakeAvailable(json) | ||
|
||
add_executable(MemoryGame | ||
src/main.cpp | ||
src/game/user/User.cpp | ||
src/game/user/UserManager.cpp | ||
src/game/user/User.h | ||
src/game/user/UserManager.h | ||
src/game/board/BoardManager.h | ||
src/game/board/BoardManager.cpp | ||
src/game/board/card/Card.cpp | ||
src/game/board/card/Card.h | ||
src/game/board/Board.cpp | ||
src/game/board/Board.h | ||
src/game/board/difficulty/Difficulty.h | ||
src/game/board/card/CardTypeService.h | ||
src/game/board/difficulty/DifficultyProvider.h | ||
src/game/user/UserProvider.cpp | ||
src/game/user/UserProvider.h | ||
src/game/board/queue/TurnQueue.cpp | ||
src/game/board/queue/TurnQueue.h | ||
src/game/Game.cpp | ||
src/game/Game.h | ||
src/game/board/SizeProvider.h | ||
src/game/backup/BackupService.cpp | ||
src/game/backup/BackupService.h | ||
src/game/backup/LoadHandler.h | ||
src/game/backup/LoadHandler.cpp | ||
src/game/user/UserRepository.cpp | ||
src/game/user/UserRepository.h | ||
src/game/user/UserStatistics.h | ||
src/game/user/UserStatistics.cpp | ||
src/game/GameState.h | ||
src/game/CardSelector.h | ||
src/game/score/ScoreManager.h | ||
src/game/CardSelector.cpp | ||
src/game/GameState.cpp | ||
src/game/score/ScoreManager.cpp | ||
src/game/achievement/Achievement.h | ||
src/game/achievement/AchievementManager.h | ||
src/game/user/UserGameStats.cpp | ||
src/game/user/UserGameStats.h | ||
src/game/Menu.cpp | ||
src/game/Menu.h | ||
) | ||
|
||
target_link_libraries(MemoryGame PRIVATE nlohmann_json::nlohmann_json) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
# Jak zaimplementować projekt? | ||
Aplikacja została napisana w środowisku **CLion** i zaleca się jej uruchamianie bezpośrednio w tym środowisku. Aplikacja implementuje jedną bibliotekę: [nlohmann/json](https://github.com/nlohmann/json), która jest dodana w pliku ```CMakeLists.txt```. | ||
|
||
## Jak uruchomić projekt? | ||
Należy utworzyć pusty folder, w którym będzie znajdować się plik wykonywalny. Następnie wystarczy uruchomić plik wykonywalny ```.exe``` (zaleca się korzystanie z aplikacji w trybie pełnoekranowym). | ||
|
||
## Opis aplikacji | ||
Po uruchomieniu gry użytkownikowi wyświetla się menu główne, w którym może wybrać jedną z pięciu opcji: | ||
1. Nowa gra - rozpoczęcie nowej gry. | ||
2. Wczytaj grę - wczytanie zapisanej gry. | ||
3. Statystyki graczy - wyświetlenie statystyk graczy oraz odblokowanych przez nich osiągnięć. **Pojawią się tam tylko użytkownicy zapisani - tacy, którzy zagrali już w grę.** | ||
4. Osiągnięcia - wyświetlenie wszystkich osiągnięć wraz z ich opisem. | ||
5. Wyjście - wyjście z gry. | ||
|
||
## Funkcjonalność | ||
Do gry dodano kilka dodatkowych funkcji, które urozmaicają rozgrywkę: | ||
1. Odblokowywanie osiągnięć. | ||
2. Gra z komputerem - włącza się automatycznie, gdy wprowadzony zostanie tylko jeden gracz. | ||
3. Zapisywanie użytkowników wraz z ich osiągnięciami i statystykami. | ||
4. Poziomy trudności - gracz może wybrać poziom trudności, na którym chce grać. | ||
5. Wyświetlanie statystyk graczy. | ||
6. Wyświetlanie osiągnięć. | ||
7. Możliwość wyboru rozmiaru planszy. | ||
8. Możliwość grania w trybie hot-seat, aż do 10 graczy. | ||
9. Zapisywanie gry w dowolnym momencie poprzez wpisanie ```!zapisz```. Grę można wczytać w menu głównym. Gra obsługuję wiele zapisów, które są zapisywane w folderze ```resources```. | ||
|
||
## Dodatkowe informacje | ||
- Aplikacja sama generuje folder ```resources``` w katalogu, w którym została uruchomiona gra. | ||
- Cała gra jest napisana w języku C++ z wykorzystaniem biblioteki ```JSON``` do zapisu danych. | ||
- Aplikacja zawiera 3200 linii kodu, a jej napisanie zajęło prawie 27 godzin. | ||
|
||
## Autor | ||
- **Autorem aplikacji jest Karol Dronia.** |
Oops, something went wrong.