Wisielec - konsolowa implementacja gry w C++

Oto projekt gry "Wisielec", który zrealizowałam w ramach zadania semestralnego z programowania obiektowego w C++. Poniżej znajduje się wideo prezentujące działanie gry, skrócona dokumentacja projektu oraz kod programu.

Kod programu:

Kod programu

Zadanie, które program ma realizować

Program "Wisielec" to gra polegająca na odgadywaniu słów. Celem gry jest odgadnięcie słowa przed wyczerpaniem limitu siedmiu prób. Program oferuje trzy tryby gry: gra jednoosobowa, gra dla dwóch graczy i gra z komputerem.

Lista opcji do wyboru z krótkim opisem każdej z nich

W Menu gry, do wyboru jest 6 opcji:

1. Wyświetl instrukcje i zasady gry – program wyświetla w konsoli instrukcje i zasady gry.

2. Gra jednoosobowa – program uruchamia nową grę w trybie dla jednego gracza.

3. Gra dla dwóch graczy - program uruchamia nową grę w trybie dla dwóch graczy.

4. Gra z komputerem - program uruchamia nową grę w trybie gry z komputerem.

5. Wyświetl wyniki graczy – program wyświetla w konsoli wyniki graczy.

6. Zakończ działanie programu – kończenie pracy programu.

Numer opcji odpowiada numerowi, jaki użytkownik musi wprowadzić, by wywołać daną czynność. W przypadku wprowadzenia litery bądź znaku specjalnego, program wyświetla komunikat o błędnych danych i umożliwia ponowne ich wprowadzenie. W przypadku wprowadzenia liczby spoza zakresu 1-6, program będzie oczekiwał na ponowne wprowadzenie poprawnych danych.

Nick gracza może składać się wyłącznie z małych liter. W przypadku wprowadzenia znaku, który nie jest literą (bądź jest polskim znakiem), program prosi o ponowne wprowadzenie poprawnych danych. W przypadku wprowadzenia nazwy z dużymi literami, program sam zamienia litery na małe. Ta kontrola danych dotyczy również słowa do odgadnięcia wprowadzanego przez gracza w trybie gry dla dwóch graczy i z komputerem.

Gracz nie jest w stanie nadpisać wyniku Komputera w rankingu wyników. Wynika to z faktu, iż nick „Komputer” jest zawsze pisany z dużej litery, a gracz nie jest w stanie wprowadzić dużych liter w nicku. Nick „komputer” (pisany z małej litery) będzie traktowany jako kolejny gracz w tablicy wyników.

Zgadywana litera musi być pojedynczą literą, nie może być polskim znakiem, znakiem specjalnym bądź cyfrą. W przypadku wprowadzenia błędnych danych program informuje o tym i oczekuje na wprowadzenie poprawnych danych. W przypadku wprowadzenia dużej litery, program zamienia ją na małą. W przypadku ponownego wprowadzenia użytej już wcześniej litery, program wyświetla krótki komunikat. Za taki ruch nie jest zmniejszana ilość prób. Gracz zgaduje literę dopóki zgadnie słowo lub wyczerpie ilość możliwych prób.

Po pojedynczej turze gry, wyniki zostają zaktualizowane. Gracz ma możliwość zobaczenia wyników wybierając w Menu opcję nr. 5.

Nietypowe zachowania programu

Przyznawanie punktów graczom wygląda następująco: 0 punktów, jeśli gracz nie zgadł słowa i 1 punkt, gdy gracz zgadł słowo, niezależnie od ilości wykorzystanych prób. Ponadto gra została rozszerzona o różne tryby w tym o tryb gry z komputerem, gdzie to komputer zgaduje wprowadzone przez gracza słowo.

Niezgodności z założeniami przekazanymi w treści zadania

Brak.

Struktura plików, typy danych przechowywane w poszczególnych polach pliku

Plik o nazwie instrukcja.txt zawiera instrukcje i zasady gry, które użytkownik może wyświetlić w konsoli wybierając odpowiednią opcję.

Plik o nazwie slowa.txt w każdym kolejnym wierszu zawiera jedno słowo. Słowa są wczytywane podczas gry i w zależności od trybu, program losuje słowo do odgadnięcia.

Plik o nazwie wyniki.txt zawiera wyniki graczy. W każdym wierszu jest nick gracza i zdobyte dotychczas przez niego punkty. Program po rundzie gry aktualizuje plik o zdobyte punkty.

Plik o nazwie log.txt zawiera informacje o wykonanej interakcji wraz z dokładną datą.

Struktura katalogów niezbędna dla poprawnego działania programu

Plik main.cpp jako główny plik kodu źródłowego

Pliki źródłowe i pliki nagłówkowe: klasy.cpp, funkcje.cpp, kolory.cpp, klasy.h, funkcje.h, funkcje.h.

Pliki tekstowe: instrukcja.txt, slowa.txt, wyniki.txt, log.txt.

Lista plików z kodem źródłowym wchodzących w skład programu

Plik main.cpp – główny plik kodu źródłowego, zawierający funkcję main() i logikę wyboru trybu gry oraz zapisy logów.

Plik klasy.h – plik nagłówkowy zawierający deklarację klasy bazowej Wisielec i klas po niej dziedziczących: GraJednoosobowa, GraDwuosobowa,GraZKomputerem.

Plik klasy.cpp – plik źródłowy zawierający implementacje metod klas: Wisielec, GraJednoosobowa, GraDwuosobowa,GraZKomputerem.

Plik funkcje.h – plik nagłówkowy zawierający deklaracje funkcji pomocniczych m.in. do wyświetlania menu, wyników i instrukcji, obsługi wprowadzanych danych od użytkownika oraz sprawdzania aktualnej godziny.

Plik funkcje.cpp – plik źródłowy zawierający implementację funkcji pomocniczych.

Plik kolory.h – plik nagłówkowy zawierający deklaracje manipulatorów kolorów tekstu.

Plik kolory.cpp – plik źródłowy zawierający implementację manipulatorów kolorów tekstu.

Diagram klas

Diagram klas
Ostatnia aktualizacja: 04.06.2023 r.