W tej lekcji stworzymy prostą grę tekstową, w której gracz eksploruje loch, walczy z potworami i zdobywa skarby. Gra będzie wykorzystywać pętle (while
, for
) oraz instrukcje warunkowe (if
, switch-case
) do kontrolowania przebiegu rozgrywki.
1. Założenia gry
✅ Gracz ma punkty życia (HP) i złoto.
✅ Może walczyć z potworami, uciekać lub przeglądać ekwipunek.
✅ Jeśli HP spadnie do 0, gra się kończy.
✅ Gracz może znaleźć skarb, który zwiększa złoto.
✅ Gra działa w pętli, aż gracz zginie lub zdecyduje się wyjść.
2. Implementacja gry w C++
#include <iostream>
#include <cstdlib> // rand(), srand()
#include <ctime> // time()
using namespace std;
int main() {
srand(time(0)); // Inicjalizacja generatora liczb losowych
int hp = 100; // Punkty życia gracza
int gold = 0; // Ilość złota
char choice; // Wybór gracza
cout << "=== Przygoda w lochu ===\n";
while (hp > 0) {
cout << "\nTwoje statystyki: HP = " << hp << " | Złoto = " << gold << endl;
cout << "Wybierz działanie:\n";
cout << "1. Walcz z potworem\n";
cout << "2. Szukaj skarbu\n";
cout << "3. Uciekaj\n";
cout << "4. Wyjdź z gry\n";
cout << "Twój wybór: ";
cin >> choice;
switch (choice) {
case '1': { // Walka z potworem
int damage = rand() % 20 + 5; // Losowy atak potwora (5-25)
int loot = rand() % 20 + 10; // Losowa nagroda złota (10-30)
cout << "Stajesz do walki z potworem!\n";
cout << "Potwór zadaje ci " << damage << " obrażeń!\n";
hp -= damage;
if (hp > 0) {
cout << "Pokonałeś potwora i zdobywasz " << loot << " złota!\n";
gold += loot;
} else {
cout << "Zostałeś pokonany! Koniec gry.\n";
}
break;
}
case '2': { // Szukanie skarbu
int treasure = rand() % 50 + 10; // Losowa wartość skarbu (10-60)
cout << "Przeszukujesz loch i znajdujesz " << treasure << " złota!\n";
gold += treasure;
break;
}
case '3': { // Ucieczka
cout << "Uciekasz do bezpiecznego miejsca!\n";
break;
}
case '4': { // Wyjście z gry
cout << "Opuszczasz loch. Koniec gry.\n";
return 0;
}
default:
cout << "Niepoprawny wybór! Spróbuj ponownie.\n";
}
}
cout << "Dziękujemy za grę!\n";
return 0;
}
3. Jak działa gra?
🔹 Gracz podejmuje decyzje (walka, skarb, ucieczka, wyjście).
🔹 Pętla while (hp > 0)
sprawia, że gra trwa do momentu śmierci gracza.
🔹 switch-case
obsługuje wybory gracza.
🔹 Liczby losowe (rand()
) dodają element nieprzewidywalności.
4. Możliwe ulepszenia
✅ Dodanie ekwipunku i ulepszeń broni.
✅ Możliwość leczenia w lochu.
✅ Więcej rodzajów przeciwników i wydarzeń.
✅ Zapis statystyk gracza po zakończeniu gry.