Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

#include <time.

h>
#include <stdlib.h>
#include <stdio.h>

struct equipment{
char bow;
char arrows;
char spear;
char map;
char groundweapon;
};

void decisiontoend(int* state) {


printf("1-tak, 0-nie : ");
scanf_s("%d", state);
if (!((int)*state == 0 || (int)*state == 1)) {
printf("Dozwolone opcje: 0,1 . \n");
decisiontoend(state);
}
}

void decision(int* playerdecision) {


printf("1-tak, 0-nie : ");
scanf_s("%d", playerdecision);
if (!((int)*playerdecision == 0 || (int)*playerdecision == 1)) {
printf("Dozwolone opcje: 0, 1. \n");
decision(playerdecision);
}
}

int random(int numberofoptions) {


return (rand() % numberofoptions);
}

void checkxp(int xp, int *state) {


if (xp >= 0) {
*state = 1;
}
else {
printf("Twoje xp jest na minusie! Umierasz");
*state = 0;
printf("KONIEC GRY");
}
}

void gnomattack(int* xp, int* state) {


int gnomattackpossible = random(2);
if (gnomattackpossible) {
printf("Co za pech, zostajesz zaatakowany przez leśne gnomy -5xp\n");
xp -= 5;
checkxp(*xp, state);
};
}

int main() {
struct equipment eq;
eq.bow = 0;
eq.arrows = 0;
eq.spear = 0;
eq.map = 0;
eq.groundweapon = 0;
int state = 0;
int xp = 0;
char name[50];
int playerdecision;
srand(time(NULL)); //generuje losowy numer

printf("LAS TAJEMNIC\n");
printf("Naciśnij 1, aby rozpocząć grę\n");
scanf_s("%d", &state);

if (state == 1) {
printf("Podaj swoje imię: ");
scanf_s("%s", name, sizeof(name));
printf("Witaj %s! Twoja wędrówka przyprowadziła cię na skraj lasu tajemnic, w którym ukryty został skarb. By go zdobyć musisz stawić czoła czyhającym na ciebie wyzwaniom. Las zamieszkają fantastyczne stworzenia, które znasz z
bajek i legend, tutaj stają się one rzeczywistością. Najinteligentniejsze z nich - elfy, zadbały o to, by skarb schowany został tak, by trafił w właściwe ręce. Od ponad 100 lat żadnemu ze śmiałków nie udało się wrócić z lasu żywym. Wytęż
więc swoje zmysły, zadbaj o odpowiedni ekwipunek i ruszaj w drogę. W dojściu do celu pomogą ci zdobywane po drodze punkty hp, podnoszące sprawność, strzeż się gnomów, które uwielbiają robić ludziom psikusy.\nA więc czy podejmujesz się
wyzwania?\n", name);
decisiontoend(&state);
if (state == 0) goto end;
printf("Zdecydowałeś się więc spróbować swoich sił w poszukiwaniach, zyskujesz 10 xp za odwagę. Otacza cię gęsty, ciemny, wysoki las, panuje w nim atmosfera grozy, adrenalina i strach towarzyszą ci już od pierwszych chwil. Nagle
słyszysz ogromny huk, a twoje serce zamiera na chwilę. Zaczynasz wątpić w słuszność swojej decyzji. Zastanawiasz się nad powrotem, póki jeszcze masz taką możliwość. Czy chcesz kontynuowac?\n");
decisiontoend(&state);
if (state == 0) {
goto end;
}
else {
xp += 10;
}
printf("A więc myślisz, że jesteś na tyle przebiegły, by znaleźć skarb? Podchodzisz do drzewa, które przewróciło się na drogę, by je zbadać. Znajdujesz za nim tajemniczą skrzynkę. Wzbudza twoją ciekawość, jednak obawiasz się jej
zawartości. Czy decydujesz się ją otworzyć? \n");
decision(&playerdecision);
if (playerdecision == 1) {
printf("Znajdujesz swoja pierwsza broń i otrzymujesz +10xp za odwagę! Jest to: ");
xp+=10;
switch (random(4)) {
case 0:
printf("miecz. znalazłeś broń idealną do obrony przed naziemnymi zagrożeniami\n");
eq.groundweapon++;
break;
case 1:
printf("łuk. broń idealna do zagrożeń z powietrza\n");
eq.bow++;
break;
case 2:
printf("włócznia. broń idealna do walki jeden na jeden\n");
eq.spear++;
break;
case 3:
printf("nóż. słaba broń, ale nadaje się do walki kontaktowej\n");
eq.groundweapon++;
break;
}
}
else {
printf("skrzynia nie otworzona\n");
}
gnomattack(&xp, &state);
printf("Im dalej w las, tym ciemniej i mroczniej, uważasz na każdy swój krok. Nagle drogę zagradza ci ogr. Słaby w walce ze względu na swoją masę i brak zwinności. Czy odważysz się stawić mu czoła?\n");
decision(&playerdecision);
if (playerdecision == 1 && xp > 10) {
printf("Pierwszy potwór pokonany! +20xp \n");
xp += 20;
}
if(playerdecision==1 && xp<=10) {
printf("Ogr cię pokonał, nie miałeś nic do ochrony od jego obrażeń. umierasz. Koniec gry.\n");
goto end;
};
printf("Wędrujesz dalej, teren staje się coraz bardziej górzysty. Zauważasz coś świecącego przy drodze. Okazuje się być kolejną skrzynką. Czy chcesz ją otworzyć?\n");
decision(&playerdecision);
if (playerdecision == 1) {
printf("schylasz się, by ją otworzyć, a tam: ");
switch (random(3)) {
case 0:
printf("hełm. świetnie chroni głowę +10xp\n");
xp += 10;
break;
case 1:
printf("tarcza. idealna w walce jeden na jeden +20xp\n");
xp += 20;
break;
case 2:
printf("niestety nic, tym razem nie udało ci się powiększyć swoich szans na przezycie +0xp\n");
break;
}
}
else {
printf("skrzynia nie otworzona\n");
};
printf("Twoja podróż trwa już dłuższą chwile, zaczynasz odczuwać głód i pragnienie. Dostrzegasz za drzewami niewielki potok.\n Czy chcesz zboczyć ze ścieżki, by się napić?\n");
decision(&playerdecision);
if (playerdecision == 1) {
printf("Podchodzisz do potoku, rześka woda ostudza emocje, masz czas na chwilę odprężenia. Po chwili zaczynasz źle się czuć, niestet y woda była zatruta. Tutaj kończy się twoja przygoda.\n");
goto end;
}
else {
printf("Dobra decyzja, potok zgodnie z twoimi obawami był zatruty. Jednak kontynuujesz swoją podróż spragniony -5xp. \n");
};
gnomattack(&xp, &state);
switch (random(3)) {
case 0:
printf("Spotykasz leśne skrzaty, które oferują ci pomóc - otrzymujesz wodę i jagody. Regenerujesz swój organizm i masz siłę na dalszą podróż. Skrzaty życzą ci powodzenia - +10xp\n");
xp += 10;
break;
case 1:
printf("Dalsza droga przebiega spokojnie, choć masz już coraz mniej sił.\n");
break;
case 2:
printf("Spotykasz kolejną przeszkodę - wilki, nie masz jednak wystarczająco sił, by przed nimi uciec, tu kończy się twoja przygoda.\n");
goto end;
}
printf("Niespodziewanie ścieżka się kończy i musisz z niej zboczyć. Tu las staje się mniej gęsty, aż w końcu znajdujesz się na polanie. \n");
switch (random(3)) {
case 0:
printf("Znajdujesz martwe ciało, prawdopodobnie jednego z Twoich poprzedników. Czy decydujesz się zajrzeć do torby leżącej u jego boku ?\n");
decision(&playerdecision);
if (playerdecision == 1) {
printf("Znajdujesz w niej tajemniczą mapę, z czerwonym krzyżykiem - prawdopodobnie miejscem znajdywania się skarbu.\n");
printf("Czy decydujesz się podążyć wyznaczoną tam drogą?\n");
decision(&playerdecision);
if (playerdecision == 1) {
printf("Świetna decyzja +10 xp za inteligencję kontynuujesz drogę zgodnie ze wskazówkami\n");
eq.map ++;
xp+=10;
}
break;
}
else {
break;
}
case 1:
printf("Zostajesz staranowany przez stado łosi, nie masz czasu na reakcje i obronę - umierasz.\n");
goto end;
case 2:
printf("Znajdujesz na swojej drodze kolejną tajemnicza skrzynkę.Czy chcesz ją otworzyć ? \n");
decision(&playerdecision);
if (playerdecision == 1 && eq.bow== 1) {
printf("Znajdujesz w środku strzały do łuku. Świetnie twój łuk jest gotowy do użycia. +10xp \n");
xp += 10;
eq.arrows++;
}
else if (playerdecision == 1 && eq.bow== 0) {
printf("Znajdujesz w środku strzały do łuku. Niestety bez łuku strzały mogą okazać się nieprzydatne…\n");
eq.arrows++;
}
else {
printf("Kontynuujesz podróż bez ulepszania ekwipunku.\n");
};
break;
}
if (eq.map == 1) {
printf("Kroczysz ścieżką wyznaczoną na mapie bez zagrożeń.\n");
}
else {
printf("Kontynuujesz wędrówkę lekko osłabiony i nagle spotykasz kolejnego przeciwnika - skrzydłonoga\n");
if (eq.groundweapon) { //mamy bron do walki z ziemi
printf("Pokonujesz skrzydłonoga, lecz z ogromnym trudem. Gdybys mial bron do walki z powetrza, na pewno byloby prosciej -25xp\n");
xp -= 25;
checkxp(xp, &state);
}
else if(!eq.bow && !eq.groundweapon && !eq.spear) { //nie mam zadnej broni
printf("Niestety nie masz broni by go pokonać.\n");
goto end;
}
else if(eq.bow && eq.arrows || eq.spear) { //mam wlocznie lub luk ze strzalami
printf("Pokonujesz skrzydłonoga bez większego wysiłku. +20xp\n");
xp += 20;
}
else if(eq.arrows && !eq.bow || !eq.arrows && eq.bow) { //mam sam luk lub same strazly
printf("By pokonac skrzydlonoga musisz miec wlucznie lub i luk i strzaly... Umierasz\n");
}
};
printf("Świetnie stawiasz czoła wyzwaniom, lecz zmęczenie wciąż ci towarzyszy.\n");
gnomattack(&xp, &state);
switch (random(2)) {
case 0:
printf("Spotykasz na swojej drodze elfa, który ostrzega cię przed ostatnim ze stworzeń czyhającym na ciebie tuż obok skarbu i oferuj e ci lecznicy napój. +25xp Regenerujesz siły i obmyślasz strategię pokonania przeciwnika.
esteś przygotowany na to co cię czeka, twoja pewność siebie wzrasta. W oddali widzisz już kolejną świecącą się skrzynkę i masz przeczucie iż jestes u celu. Wdrażasz w życie swój plan, jednakże czy okaże się on być wystarczająco
przebiegły, a Twoja sprawność i ekwipunek pokonają strażnika skarbu - smoka?\n");
xp += 25;
break;
case 1:
printf("Co za pech, zostajesz zaatakowany przez leśne duchy. -10xp Z niepokojem kroczysz na oślep ścieżką w nadziei, że uda ci się odnaleźć skarb. Zmęczenie przyćmiewa twój umysł, zaczynasz wątpić w swoje siły. - 5xp. Nagle za
drzewami widzisz kolejną, świecącą się skrzynkę, pewny siebie kroczysz naprzód nie spodziewając się kolejnego niebezpieczeństwa. Gdy już myślisz, że skarb masz w kieszeni, zza drzew wyłania się smok. Czy twoja przebiegłość, sprawność i
ekwipunek okażą się być wystarczające, by go pokonać?\n");
xp -= 10;
checkxp(xp, &state);
}
decisiontoend(&state);
if (state == 0) {
printf("Za chwilę zawachania w tym lesie przepłacasz życiem, smok zrobił pierwszy ruch i umierasz\n");
goto end;
}
else {
printf("Smoka pokona tylko wędrowiec z conajmniej 55xp. Twoja liczba xp: %d\n", xp);
if (xp >= 55) {
printf("Gratulacje udało ci się pokonać smoka, skarb jest Twój.\n");
}
else {
printf("Niestety, smok okazał się być silniejszy, giniesz.\n");
goto end;
}
}
}
end:
printf("KONIEC GRY");
return 0;
};

You might also like