SHARE
TWEET

Untitled

a guest Apr 26th, 2019 95 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include "pch.h"
  2. #include <iostream>
  3. #include <string>
  4. #include <cstdlib>
  5. #include <conio.h>
  6. #include <stdlib.h>
  7. #include <ctime>
  8.  
  9. using namespace std;
  10. int punkty = 1;
  11. string ranga = "DUPA";
  12.  
  13. namespace kontrola_rozgrywki
  14. {
  15.     struct dane
  16.     {
  17.         int const liczba_tur = 5;
  18.         int const odleglosc = 25;
  19.     };
  20. }
  21.  
  22. //------------------------------------------------Zmienne----------------------------------------------------//
  23. int si = 1;
  24.  
  25. //-------------------------------------------------Klasy-----------------------------------------------------//
  26.  
  27. class umieranie {
  28.     string const wiadomosc1 = "-------------------------------------------PORAZKA-------------------------------------------------";
  29.     string const wiadomosc2 = "Niestety, udalo Ci sie dotrzec do oprawcow, jednak Twoja postać nie byla wystarczajaco";
  30.     string const wiadomosc3 = "dobrze przygotowana i polegla zanim dotarla do wrogiego wodza.";
  31.     string const wiadomosc4 = "Niestety, trucizna okazala sie szybsza... Twoja postać dreczona przez bardzo wysoka goraczka, umiera w mekach...";
  32. public:
  33.     string wypisz1() { return wiadomosc1; }
  34.     string wypisz2() { return wiadomosc2; }
  35.     string wypisz3() { return wiadomosc3; }
  36.     string wypisz4() { return wiadomosc4; }
  37.  
  38. };
  39.  
  40. class obsluga {
  41.     static umieranie* a;
  42. public:
  43.     static string wyslij1() { return a->wypisz1(); }
  44.     static string wyslij2() { return a->wypisz2(); }
  45.     static string wyslij3() { return a->wypisz3(); }
  46.     static string wyslij4() { return a->wypisz4(); }
  47.     static void stworz() { a = new umieranie; }
  48.     static void usun() { delete a; }
  49. };
  50.  
  51. class Player
  52. {
  53.  
  54.     string name;
  55.     string nick;
  56. public:
  57.     string getName()
  58.     {
  59.        
  60.         return name;
  61.  
  62.     }
  63.  
  64.     string getNick()
  65.     {
  66.         return nick;
  67.     }
  68.     void changeName(string new_name) {
  69.         name = new_name;
  70.     }
  71.     friend istream& operator>>(istream& in, Player*& B)
  72.     {
  73.         cout << "Wprowadz swoje imie: " << endl;
  74.         in >> B->name;
  75.         cout << "Wprowadz swoj pseudonim: " << endl;
  76.         in >> B->nick;
  77.         return in;
  78.  
  79.     }
  80.  
  81. };
  82.  
  83.  
  84. class bohater {
  85.     friend class Wynik;
  86.     class Wynik
  87.     {
  88.         friend class bohater;
  89.  
  90.     public:
  91.         int pkt;
  92.         string ran;
  93.         Wynik() :pkt(1), ran("") {}
  94.  
  95.         friend ostream& operator<<(ostream& out, Wynik& other)       //<<<>>>><<<>>..//
  96.         {
  97.             other.pkt = punkty;
  98.             other.ran = ranga;
  99.             out << "TWOJA RANGA: " << other.ran << endl << "TWOJE PUNKTY: " << other.pkt;
  100.  
  101.             return out;
  102.         }
  103.     };
  104.     Wynik* wynik = new Wynik;
  105. public:
  106.     int punkty_wytrzymalosci;
  107.     int punkty_many;
  108.     int punkty_akcji;
  109.     int zadawane_obrazenia;
  110.     friend class Wynik;
  111.  
  112.     void stworz_postac()
  113.     {
  114.         punkty_wytrzymalosci = 100;
  115.         punkty_many = 100;
  116.         punkty_akcji = 100;
  117.         zadawane_obrazenia = 25;
  118.     }
  119.  
  120.     Wynik* getWynik();
  121.  
  122.     static Player* player;
  123.  
  124.     static string zwroc() { return player->getName(); }
  125.  
  126.     static void stworz() { player = new Player; }
  127.  
  128.     static void usun() { delete player; }
  129. };
  130.  
  131.  
  132.  
  133.  
  134. bohater::Wynik* bohater::getWynik()
  135. {
  136.     return wynik;
  137. }
  138.  
  139. class ekwipunek {
  140. public:
  141.     bool helm;
  142.     bool zbroja;
  143.     bool olej_na_miecz;
  144.     bool buty;
  145.     int jedzenie;
  146.     int mikstura_many;
  147.     int zloto;
  148.  
  149.     void stworz_plecak()
  150.     {
  151.         helm = false;
  152.         zbroja = false;
  153.         olej_na_miecz = false;
  154.         buty = false;
  155.         jedzenie = 0;
  156.         mikstura_many = 0;
  157.         zloto = 30;
  158.     }
  159.  
  160. };
  161.  
  162. class czyczar {
  163. public:
  164.     bool kula_ognia;
  165.     bool blyskawica;
  166.     bool regeneracja_wytrzymalosci;
  167.  
  168.     void stworz_liste()
  169.     {
  170.         kula_ognia = false;
  171.         blyskawica = false;
  172.         regeneracja_wytrzymalosci = false;
  173.     }
  174. };
  175.  
  176.  
  177. class skills {
  178. public:
  179.  
  180.     string nazwa;
  181.     int cena;
  182.     int obrazenia;
  183.     int punkty_wtrzymalosci;
  184.     int punkty_many;
  185.  
  186.     skills(string n, int c, int o, int pw = 0, int pm = 0) :nazwa(n), cena(c), obrazenia(o), punkty_wtrzymalosci(pw), punkty_many(pm)
  187.     {
  188.     }
  189.     string getNazwa() {
  190.         return nazwa;
  191.     }
  192.     int getCena() {
  193.         return cena;
  194.     }
  195.     int getObrazenia() {
  196.         return obrazenia;
  197.     }
  198.     int getPW() {
  199.         return punkty_wtrzymalosci;
  200.     }
  201.     int getPM() {
  202.         return punkty_many;
  203.     }
  204. };
  205.  
  206.  
  207. class pojemnik {
  208.     skills* s;
  209.     int ilosc;
  210. public:
  211.     pojemnik() :s(NULL) {}
  212.     skills* getSkill() {
  213.         return s;
  214.     }
  215.     void changeSkill(skills* sk) {
  216.         s = sk;
  217.     }
  218. };
  219.  
  220. void stworz(pojemnik**& pudelko, int& size, skills& sk) {
  221.     pudelko = new pojemnik *[size];
  222.     for (auto i = 0; i < size; i++) {
  223.         pudelko[i] = new pojemnik;
  224.         pudelko[i]->changeSkill(&sk);
  225.     }
  226. }
  227. void usun(pojemnik**& pudelko) {
  228.     delete[] pudelko;
  229.     pudelko = nullptr;
  230. }
  231. void zwieksz(pojemnik**& pudelko, int& size, skills& sk) {
  232.     pojemnik** pomoc;
  233.     stworz(pomoc, size, sk);
  234.     for (auto i = 0; i < size; i++)
  235.     {
  236.         pomoc[i] = pudelko[i];
  237.     }
  238.     usun(pudelko);
  239.     size++;
  240.     stworz(pudelko, size, sk);
  241.     size--;
  242.     for (auto i = 0; i < size; i++)
  243.     {
  244.         pudelko[i] = pomoc[i];
  245.     }
  246.     usun(pomoc);
  247.     size++;
  248.  
  249. }
  250.  
  251. void zmniejsz(pojemnik**& pudelko, int& size, skills& sk) {
  252.     pojemnik** tmp = new pojemnik *[size];
  253.     for (auto i = 0; i < size; i++)
  254.     {
  255.         tmp[i] = new pojemnik;
  256.         tmp[i] = pudelko[i];
  257.     }
  258.     usun(pudelko);
  259.     size--;
  260.     stworz(pudelko, size, sk);
  261.  
  262.     for (auto i = 0; i < size; i++)
  263.         pudelko[i] = tmp[i];
  264.     usun(tmp);
  265.  
  266. }
  267. void wyswietl(pojemnik * *&pudelko, int& size)
  268. {
  269.     for (auto i = 0; i < size; i++) {
  270.         cout << "  []" << i + 1 << ". " << pudelko[i]->getSkill()->getNazwa() << "[]  ";
  271.     }
  272. }
  273. void dodajPunkty(pojemnik * &pudelko, bohater & b)
  274. {
  275.     b.zadawane_obrazenia += pudelko->getSkill()->getObrazenia();
  276. }
  277.  
  278.  
  279. class bandyta {
  280. public:
  281.     string const nazwa;
  282.     int const punkty_wytrzymalosci;
  283.     int const zadawane_obrazenia;
  284.  
  285.     bandyta() :nazwa("bandyta"), punkty_wytrzymalosci(30), zadawane_obrazenia(20)
  286.     {
  287.     }
  288.  
  289. };
  290.  
  291.  
  292. class Nekromanci {
  293.     int zycie;
  294.     mutable int ilosc_nieumarlych;
  295.     mutable int obrazenia;
  296.  
  297.     class Nieumarli {
  298.         int n_zycie;
  299.         const int n_obrazenia;
  300.     public:
  301.         Nieumarli() = default;
  302.         Nieumarli(int z, int o) :n_zycie(z), n_obrazenia(o) {}
  303.         friend class Nekromanci;
  304.  
  305.     };
  306.     Nieumarli** nieum;
  307. public:
  308.     friend class Bohater;
  309.     Nekromanci(int z, int in, int o) :zycie(z), ilosc_nieumarlych(in), obrazenia(o)
  310.     {
  311.         nieum = new Nieumarli *[ilosc_nieumarlych];
  312.         for (auto i = 0; i < ilosc_nieumarlych; i++)
  313.         {
  314.             nieum[i] = new Nieumarli(5, 3);
  315.         }
  316.     }
  317.     Nekromanci(const Nekromanci& inny) {
  318.         zycie = inny.zycie;
  319.         ilosc_nieumarlych = inny.ilosc_nieumarlych;
  320.         obrazenia = inny.obrazenia;
  321.  
  322.         nieum = new Nieumarli *[ilosc_nieumarlych];
  323.         for (auto i = 0; i < ilosc_nieumarlych; i++)
  324.         {
  325.             nieum[i] = new Nieumarli(5, 3);
  326.  
  327.         }
  328.  
  329.     }
  330.  
  331.  
  332.     Nekromanci& operator=(const Nekromanci&inny)   //<<<>>><<>>//
  333.     {
  334.         if (&inny != this)
  335.         {
  336.  
  337.            
  338.             this->zycie = inny.zycie;
  339.             this->ilosc_nieumarlych = inny.ilosc_nieumarlych;
  340.             this->obrazenia = inny.obrazenia;
  341.  
  342.             this->nieum = new Nieumarli *[ilosc_nieumarlych];
  343.             for (auto i = 0; i < ilosc_nieumarlych; i++)
  344.             {
  345.                 nieum[i] = new Nieumarli(5, 3);
  346.     }
  347.  
  348.             return *this;
  349.         }
  350.     }
  351.  
  352.     ~Nekromanci() {
  353.         delete[] nieum;
  354.         nieum = nullptr;
  355.     }
  356.     int atak() {
  357.         return obrazenia + ilosc_nieumarlych * nieum[0]->n_obrazenia;
  358.     }
  359. };
  360.  
  361. umieranie* obsluga::a;
  362.  
  363. void koniec_rozgrywki1()
  364. {
  365.     obsluga::stworz();
  366.     cout << obsluga::wyslij1() << endl;
  367.     cout << obsluga::wyslij2() << endl;
  368.     cout << obsluga::wyslij3() << endl;
  369.     cout << obsluga::wyslij1() << endl;
  370.     obsluga::usun();
  371. }
  372.  
  373. void koniec_rozgrywki2()
  374. {
  375.     obsluga::stworz();
  376.     cout << obsluga::wyslij1() << endl;
  377.     cout << obsluga::wyslij4() << endl;
  378.     cout << obsluga::wyslij1() << endl;
  379.     obsluga::usun();
  380. }
  381.  
  382. //-------------------------------------------------Systemy losowe----------------------------------------------//
  383.  
  384. int losowa_kostka()
  385. {
  386.     srand(int(time(NULL)));
  387.     int los = ((rand() % 6) + 1);
  388.     return los;
  389. }
  390.  
  391. int losowa_liczba()
  392. {
  393.     srand(int(time(NULL)));
  394.     int los = ((rand() % 10) + 1);
  395.     return los;
  396. }
  397.  
  398. int magiczna_kostka()
  399. {
  400.     srand(int(time(NULL)));
  401.     int los = ((rand() % 3) + 4);
  402.     return los;
  403. }
  404.  
  405.  
  406. //------------------------------------Przeladowanie funkcji----------------------------------------------//
  407.  
  408. int dodawanie(int a, int b, int c)
  409. {
  410.     return a + b + c;
  411. }
  412.  
  413. int dodawanie(int a, int b)
  414. {
  415.     return a + b;
  416. }
  417.  
  418. //------------------------------------zmiana rozmiaru tablicy----------------------------------------------//
  419.  
  420. void dodaj(int& ilosc_graczy, int*& gracze)
  421. {
  422.     int* temp;
  423.     temp = new int[ilosc_graczy + 1];
  424.     for (int i = 0; i < ilosc_graczy; i++)
  425.     {
  426.         temp[i] = gracze[i];
  427.     }
  428.     delete[] gracze;
  429.     gracze = new int[ilosc_graczy + 1];
  430.     for (int i = 0; i < ilosc_graczy; i++)
  431.     {
  432.         gracze[i] = temp[i];
  433.     }
  434.     ilosc_graczy++;
  435.     delete[] temp;
  436. }
  437.  
  438. //------------------------------------Funckje do zdarzeń losowych----------------------------------------------//
  439.  
  440. void otwieranie_skrzynki(bohater & postac, ekwipunek & plecak, czyczar & zaklecia)
  441. {
  442.     int liczba = losowa_liczba();
  443.     switch (liczba)
  444.     {
  445.     case 1:
  446.         if (plecak.helm == false)
  447.         {
  448.             cout << "Znalazles helm - otrzymujesz dodatkowe punkty wytrzymalosci" << endl;
  449.             postac.punkty_wytrzymalosci = postac.punkty_wytrzymalosci + 20;
  450.             plecak.helm = true;
  451.             break;
  452.         }
  453.         else
  454.         {
  455.             cout << "Znalazles helm - jako, iĹĽ posiadasz juĹĽ ten przedmiot, sprzedajesz go" << endl;
  456.             plecak.zloto = plecak.zloto + 15;
  457.             break;
  458.         }
  459.     case 2:
  460.         if (plecak.zbroja == false)
  461.         {
  462.             cout << "Znalazles zbroje - otrzymujesz dodatkowe punkty wytrzymalosci" << endl;
  463.             postac.punkty_wytrzymalosci = postac.punkty_wytrzymalosci + 40;
  464.             plecak.zbroja = true;
  465.             break;
  466.         }
  467.         else
  468.         {
  469.             cout << "Znalazles zbroje - jako, iĹĽ posiadasz juĹĽ ten przedmiot, sprzedajesz go" << endl;
  470.             plecak.zloto = plecak.zloto + 25;
  471.             break;
  472.         }
  473.     case 3:
  474.         if (plecak.olej_na_miecz == false)
  475.         {
  476.             cout << "Znalazles olej na miecz - ilosc zadawanych obrazen wzrosla" << endl;
  477.             postac.zadawane_obrazenia = postac.zadawane_obrazenia + 15;
  478.             plecak.olej_na_miecz = true;
  479.             break;
  480.         }
  481.         else
  482.         {
  483.             cout << "Znalazles olej na miecz - jako, iĹĽ posiadasz juĹĽ ten przedmiot, sprzedajesz go" << endl;
  484.             plecak.zloto = plecak.zloto + 10;
  485.             break;
  486.         }
  487.     case 4:
  488.         if (plecak.buty == false)
  489.         {
  490.             cout << "Znalazles buty - od nastepnej tury otrzymujesz dodatkowe punkty akcji" << endl;
  491.             postac.punkty_akcji = postac.punkty_akcji + 20;
  492.             plecak.buty = true;
  493.             break;
  494.         }
  495.         else
  496.         {
  497.             cout << "Znalazles buty - jako, iĹĽ posiadasz juĹĽ ten przedmiot, sprzedajesz go" << endl;
  498.             plecak.zloto = plecak.zloto + 10;
  499.             break;
  500.         }
  501.     case 5:
  502.         cout << "Znalazles porcje jedzenia - wzrastaja punkty wytrzymalosci" << endl;
  503.         plecak.jedzenie = plecak.jedzenie + 1;
  504.         postac.punkty_wytrzymalosci = postac.punkty_wytrzymalosci + 20;
  505.         break;
  506.     case 6:
  507.         cout << "Znalazles miksture many" << endl;
  508.         plecak.mikstura_many = plecak.mikstura_many + 1;
  509.         postac.punkty_many = postac.punkty_many + 30;
  510.         break;
  511.     case 7:
  512.         if (zaklecia.kula_ognia == false)
  513.         {
  514.             cout << "Znalazles zwoj z czarem 'kula ognia' - wzrastaja zadawane obrazenia i mana " << endl;
  515.             zaklecia.kula_ognia = true;
  516.             postac.punkty_many = postac.punkty_many + 15;
  517.             postac.zadawane_obrazenia = postac.zadawane_obrazenia + 30;
  518.             break;
  519.         }
  520.         else
  521.         {
  522.             cout << "Znalazles zwoj z czarem 'kula ognia' - jako, iĹĽ posiadasz juĹĽ ten przedmiot, sprzedajesz go" << endl;
  523.             plecak.zloto = plecak.zloto + 15;
  524.             break;
  525.         }
  526.     case 8:
  527.         if (zaklecia.regeneracja_wytrzymalosci == false)
  528.         {
  529.             cout << "Znalazles zwoj z czarem 'regeneracja zycia' - mozna go uzyc jesli zostaniesz pokonany w walce " << endl;
  530.             zaklecia.regeneracja_wytrzymalosci = true;
  531.             break;
  532.         }
  533.         else
  534.         {
  535.             cout << "Znalazles zwoj z czarem 'regeneracja zycia' - jako, iĹĽ posiadasz juĹĽ ten przedmiot, sprzedajesz go" << endl;
  536.             plecak.zloto = plecak.zloto + 15;
  537.             break;
  538.         }
  539.     case 9:
  540.         if (zaklecia.blyskawica == false)
  541.         {
  542.             cout << "Znalazles zwoj z czarem 'blyskawica' - wzrastaja zadawane obrazenia " << endl;
  543.             zaklecia.blyskawica = true;
  544.             postac.zadawane_obrazenia = postac.zadawane_obrazenia + 30;
  545.             break;
  546.         }
  547.         else
  548.         {
  549.             cout << "Znalazles zwoj z czarem 'blyskawica' - jako, iĹĽ posiadasz juĹĽ ten przedmiot, sprzedajesz go" << endl;
  550.             plecak.zloto = plecak.zloto + 15;
  551.             break;
  552.         }
  553.     case 10:
  554.         cout << "Znalazles 30 sztuk zlota - mozesz za nie kupic przydatne przedmioty gdy napotkasz kupca" << endl;
  555.         plecak.zloto = plecak.zloto + 30;
  556.         break;
  557.     default:
  558.         cout << "blad w losowaniu liczby(zly przedzial)" << endl;
  559.         break;
  560.     }
  561. }
  562.  
  563. void handel(bohater & postac, ekwipunek & plecak, czyczar & zaklecia)
  564. {
  565.     bool petla = false;
  566.     while (petla == false)
  567.     {
  568.         int wybor = 0;
  569.         cout << "Witaj jesli posiadasz wystarczajaco duzo zlota, mozesz kupic u mnie przydatny przedmiot" << endl;
  570.         cout << "1-buty, 30 sztuk zlota (wieksza ilosc punktow akcji podczas rundy)" << endl;
  571.         cout << "2-olej na miecz, 20 sztuk zlota (zwiekszona ilosc obrazen)" << endl;
  572.         cout << "3-jedzenie, 10 sztuk zlota (wieksza ilosc punktow wytrzymalosci)" << endl;
  573.         cout << "4-koniec handlu" << endl;
  574.         cin >> wybor;
  575.         switch (wybor)
  576.         {
  577.         case 1:
  578.             if ((plecak.buty == false) && (plecak.zloto >= 30))
  579.             {
  580.                 cout << "kupiles buty - od nastepnej tury otrzymujesz dodatkowe punkty akcji" << endl;
  581.                 cout << endl;
  582.                 postac.punkty_akcji = postac.punkty_akcji + 20;
  583.                 plecak.zloto = plecak.zloto - 30;
  584.                 plecak.buty = true;
  585.                 break;
  586.             }
  587.             else
  588.             {
  589.                 cout << "Posiadasz juz buty lub nie posiadasz wystarczajaco duzo zlota by je zakupic" << endl;
  590.                 cout << endl;
  591.                 break;
  592.             }
  593.             break;
  594.  
  595.         case 2:
  596.             if ((plecak.olej_na_miecz == false) && (plecak.zloto >= 20))
  597.             {
  598.                 cout << "Kupiles olej na miecz - ilosc zadawanych obrazen wzrosla" << endl;
  599.                 cout << endl;
  600.                 postac.zadawane_obrazenia = postac.zadawane_obrazenia + 15;
  601.                 plecak.olej_na_miecz = true;
  602.                 plecak.zloto = plecak.zloto - 20;
  603.                 break;
  604.             }
  605.             else
  606.             {
  607.                 cout << "Posiadasz juz olej lub nie posiadasz wystarczajaco duzo zlota by go zakupic" << endl;
  608.                 cout << endl;
  609.                 break;
  610.             }
  611.             break;
  612.  
  613.         case 3:
  614.             if (plecak.zloto >= 10)
  615.             {
  616.                 cout << "Znalazles porcje jedzenia - wzrastaja punkty wytrzymalosci" << endl;
  617.                 cout << endl;
  618.                 plecak.jedzenie = plecak.jedzenie + 1;
  619.                 postac.punkty_wytrzymalosci = postac.punkty_wytrzymalosci + 20;
  620.                 break;
  621.             }
  622.             else
  623.             {
  624.                 cout << "Nie posiadasz wystarczajaco duzo zlota by zakupic przedmiot" << endl;
  625.                 cout << endl;
  626.                 break;
  627.             }
  628.             break;
  629.  
  630.         case 4:
  631.             petla = true;
  632.             break;
  633.  
  634.         default:
  635.             cout << "Podana zostala zla liczba" << endl;
  636.             break;
  637.         }
  638.     }
  639. }
  640.  
  641. int student()
  642. {
  643.     int a, b, c;
  644.     cout << "Pierwsza liczba to 19 i musisz podac dwie liczby," << endl << "ktorych suma jest rowna wlasnie tyle" << endl;
  645.     cin >> a;
  646.     cin >> b;
  647.     if (dodawanie(a, b) == 19)
  648.     {
  649.         cout << "Udalo Ci sie dobrze podac pierwsza sume" << endl;
  650.     }
  651.     else
  652.     {
  653.         cout << "Suma podanych liczb wynosila " << dodawanie(a, b) << " a nie 19" << endl;
  654.         cout << "Niestety nie pokonales wyzwania, nic nie tracisz, ale tez nic nie zyskujesz" << endl;
  655.         return 0;
  656.     }
  657.     cout << "Druga liczba to 34 i musisz podac trzy liczby," << endl << "ktorych suma jest rowna wlasnie tyle" << endl;
  658.     cin >> a;
  659.     cin >> b;
  660.     cin >> c;
  661.     if (dodawanie(a, b, c) == 34)
  662.     {
  663.         cout << "Udalo Ci sie dobrze podac druga sume, wygrales miksture many" << endl;
  664.         return 1;
  665.     }
  666.     else
  667.     {
  668.         cout << "Suma podanych liczb wynosila " << dodawanie(a, b, c) << " a nie 34" << endl;
  669.         cout << "Niestety nie pokonales wyzwania, nic nie tracisz, ale tez nic nie zyskujesz" << endl;
  670.         return 0;
  671.     }
  672. }
  673.  
  674.  
  675. int turniej_w_kosci(int ilosc_graczy)
  676. {
  677.     cout << endl << endl << "NOWA RUNDA" << endl;
  678.     int* gracze;
  679.     gracze = new int[ilosc_graczy];
  680.  
  681.     int twoj_rzut = 0;
  682.     int los = ((rand() % 3) + 4);
  683.     twoj_rzut = los;
  684.     cout << "Twoj wynik = " << twoj_rzut << endl;
  685.     cout << "Podchodzi dodatkowa osoba i pyta sie czy moze do was dolaczyc" << endl;
  686.     bool kolejnapetla = false;
  687.     while (kolejnapetla == false)
  688.     {
  689.         int pytanie = 0;
  690.         cout << "Zgadzasz sie?" << endl;
  691.         cout << "1. Tak" << endl;
  692.         cout << "2. Nie" << endl << endl;
  693.         cin >> pytanie;
  694.         if (pytanie == 1)
  695.         {
  696.             dodaj(ilosc_graczy, gracze);
  697.             kolejnapetla = true;
  698.         }
  699.         if (pytanie == 2)
  700.         {
  701.             kolejnapetla = true;
  702.         }
  703.         if ((pytanie != 1) && (pytanie != 2))
  704.         {
  705.             cout << "Zla liczba - musisz wybrac miedzy opcja numer 1 i 2" << endl;
  706.             kolejnapetla = false;
  707.         }
  708.     }
  709.     for (int i = 0; i < ilosc_graczy; i++)
  710.     {
  711.         gracze[i] = ((rand() % 6) + 1);
  712.         cout << "Wynik przeciwnika" << " = " << gracze[i] << endl;
  713.     }
  714.  
  715.  
  716.     int maks = twoj_rzut;
  717.     int licznik = 0;
  718.     for (int i = 0; i < ilosc_graczy; i++)
  719.     {
  720.         if (gracze[i] > maks)
  721.         {
  722.             maks = gracze[i];
  723.         }
  724.     }
  725.  
  726.     if (maks == twoj_rzut)
  727.     {
  728.         for (int i = 0; i < ilosc_graczy; i++)
  729.         {
  730.             if (maks == gracze[i])
  731.             {
  732.                 licznik++;
  733.             }
  734.         }
  735.         if (licznik == 0)
  736.         {
  737.             delete[] gracze;
  738.             return ilosc_graczy;
  739.         }
  740.         else
  741.         {
  742.             cout << "Dobrze poszlo!" << endl << "Jednak " << licznik << " graczy mialo taka sama ilosc oczek co Ty!" << endl;
  743.             cout << "Przechodzicie do nastepnej rundy" << endl;
  744.             delete[] gracze;
  745.             turniej_w_kosci(licznik);
  746.         }
  747.     }
  748.     else
  749.     {
  750.         delete[] gracze;
  751.         cout << "przykro mi - przegrales" << endl;
  752.         return 0;
  753.     }
  754. }
  755.  
  756. void walka_bandyta(bohater & postac, ekwipunek & plecak, czyczar & zaklecia)
  757. {
  758.     bandyta b1;
  759.     if (b1.punkty_wytrzymalosci > postac.zadawane_obrazenia)
  760.     {
  761.         cout << "Udaje Ci sie pokonac przeciwnika, jednak poniewaz twoje obrazenia sa mniejsze od jego zdrowia," << endl << "zostajesz ranny (-20 punktow wytrzymalosci)" << endl;
  762.         postac.punkty_wytrzymalosci = postac.punkty_wytrzymalosci - b1.zadawane_obrazenia;
  763.     }
  764.     else
  765.     {
  766.         cout << "Udaje Ci sie pokonac przeciwnika bez odniesienia zadnych ran" << endl;
  767.     }
  768.  
  769. }
  770.  
  771. //-------------------------------------------------Zdarzenia losowe--------------------------------------------//
  772.  
  773. int losowe_zdarzenie()
  774. {
  775.  
  776.     bool petla = true;
  777.     int wybor;
  778.     int liczba = losowa_liczba();
  779.     //liczba=6;
  780.     switch (liczba)
  781.     {
  782.     case 1:
  783.         cout << "ZNALAZLES NIESTRZEZONA SKRZYNIE" << endl;
  784.         while (petla == true)
  785.         {
  786.             cout << "Zdecyduj co chcesz zrobic!" << endl;
  787.             cout << "Wybierz: 1-otworz - 10 punktow akcji" << endl;
  788.             cout << "wybierz: 2-nic nie rob" << endl;
  789.             cin >> wybor;
  790.             if (wybor == 1)
  791.             {
  792.                 petla = false;
  793.                 return 1;
  794.             }
  795.             if (wybor == 2)
  796.             {
  797.                 petla = false;
  798.             }
  799.             if ((wybor != 1) && (wybor != 2))
  800.             {
  801.                 cout << "Zla liczba - musisz wybrac miedzy opcja numer 1 i 2";
  802.             }
  803.         }
  804.         return 0;
  805.  
  806.  
  807.     case 2:
  808.         cout << "SPOTKALES WEDROWNEGO KUPCA" << endl;
  809.         while (petla == true)
  810.         {
  811.             cout << "Zdecyduj co chcesz zrobic!" << endl;
  812.             cout << "Wybierz: 1-zacznij handlowac " << endl;
  813.             cout << "wybierz: 2-odejdz" << endl;
  814.             cin >> wybor;
  815.             if (wybor == 1)
  816.             {
  817.                 petla = false;
  818.                 return 2;
  819.             }
  820.             if (wybor == 2)
  821.             {
  822.                 petla = false;
  823.             }
  824.             if ((wybor != 1) && (wybor != 2))
  825.             {
  826.                 cout << "Zla liczba - musisz wybrac miedzy opcja numer 1 i 2";
  827.             }
  828.         }
  829.         return 0;
  830.  
  831.     case 3:
  832.         cout << "SPOTYKASZ STUDENTA, KTORY RZUCA CI WYZWANIE MATEMATYCZNE" << endl;
  833.         cout << "Wyzwanie polega na tym, iz poda on jakas liczbe calkowita" << endl;
  834.         cout << "a Ty musisz napisac mu dwie lub trzy liczby ktorych suma jest rowna jego liczbie" << endl;
  835.         cout << "Jesli uda Ci sie podolac wyzwaniu otrzymasz od niego miksture many" << endl;
  836.         return 3;
  837.  
  838.     case 4:
  839.         cout << "TURNIEJ W KOSCI" << endl;
  840.         cout << endl;
  841.         cout << "Trafiles do karczmy, szukajac rozrywki wpadasz na pomysl zorganizowania turnieju w kosci." << endl;
  842.         cout << "Sam decydujesz z iloma przeciwnikami chcesz sie zmierzyc." << endl;
  843.         cout << "Im wiecej przeciwnikow, tym wieksze prawdopodobienstwo porazki, ale tez szansa na wieksza wygrana!" << endl;
  844.         cout << "Kazdy gracz wplaca po 10 sztuk zlota wejsciowego." << endl;
  845.         cout << "Wygrywa osoba ktora wyrzuci najwieksza liczbe oczek na kostce." << endl;
  846.         cout << "Jesli dwoch lub wiecej graczy, bedzie mialo taki sam wynik, wtedy obaj przechodza" << endl;
  847.         cout << "do nastepnej rundy, az do momentu gdy ktorys bedzie mial wiecej szczescia" << endl;
  848.         cout << "Aha! Warto tez dodac, ze nasza bohaterka ma magiczna kosc, dzieki ktorej wyrzuca tylko 4,5 i 6 ;)" << endl << endl;
  849.         return 4;
  850.  
  851.     case 5:
  852.         cout << "Spotkales bandyte!" << endl << "Mozesz stanac z nim do walki, albo zaplacic mu 30 sztuk zlota i odejsc" << endl;
  853.         while (petla == true)
  854.         {
  855.             cout << "Zdecyduj co chcesz zrobic!" << endl;
  856.             cout << "1. Walka" << endl;
  857.             cout << "2. Zaplac" << endl;
  858.             cin >> wybor;
  859.             if (wybor == 1)
  860.             {
  861.                 petla = false;
  862.                 return 5;
  863.             }
  864.             if (wybor == 2)
  865.             {
  866.                 petla = false;
  867.                 return 6;
  868.             }
  869.             if ((wybor != 1) && (wybor != 2))
  870.             {
  871.                 cout << "Zla liczba - musisz wybrac miedzy opcja numer 1 i 2";
  872.             }
  873.         }
  874.         return 0;
  875.  
  876.     case 6:
  877.         cout << "POMOGLES KUPCOWI" << endl;
  878.         cout << "W ramach podziekowania oddaje Ci on za darmo pusta ksiege" << endl;
  879.         return 7;
  880.  
  881.     case 7:
  882.         cout << "7" << endl;
  883.         return 0;
  884.  
  885.     case 8:
  886.         cout << "8" << endl;
  887.         return 0;
  888.  
  889.     case 9:
  890.         cout << "9" << endl;
  891.         return 0;
  892.  
  893.     case 10:
  894.         cout << "10" << endl;
  895.         return 0;
  896.  
  897.     }
  898. }
  899.  
  900. //-------------------------------------------------Funckja main----------------------------------------------//
  901.  
  902. Player* bohater::player;
  903. int main()
  904. {
  905.     bohater::stworz();
  906.     cin >> bohater::player;
  907.  
  908.     bohater maciej;
  909.     system("CLS");
  910.     cout << "WITAJ: ";
  911.  
  912.     cout << bohater::zwroc() << endl;
  913.     cout << *maciej.getWynik() << endl; // zrobiłem ci jakeigoś bohatera macieja i jego wynik i lv ci to będzie wyswietlało
  914.     // to przykładowo że np zdobywa jakies punkty i jakiś lv ma i wyswietla ci to
  915.     //punkty możesz za cos tam dodać
  916.  
  917.  
  918.     skills brak("BRAK", 99999, 0);
  919.     skills kula_ognia("kula ognia", 20, 30);
  920.     skills blyskawica("blyskawica", 10, 25);
  921.     skills regeneracja_wytrzymalosci("regeneracja wytrzymalosci", 30, 0, 20);
  922.  
  923.     Nekromanci nek1(100, 5, 2);
  924.     Nekromanci nek2=nek1; //PRZECIĄŻENIE =
  925.    
  926.  
  927.    
  928.  
  929.  
  930.     pojemnik** p;
  931.     stworz(p, si, brak);
  932.     p[0]->changeSkill(&kula_ognia);
  933.     /*wyswietl(p, si);
  934.     cout << endl;
  935.     zwieksz(p, si, brak);
  936.     wyswietl(p, si);
  937.     cout << endl;
  938.     zmniejsz(p, si, brak);
  939.     wyswietl(p, si);
  940.     cout << endl;
  941.     zwieksz(p, si, brak);
  942.     wyswietl(p, si);
  943.     cout << endl;
  944.     zwieksz(p, si, brak);
  945.     wyswietl(p, si);
  946.     cout << endl;
  947.     zwieksz(p, si, brak);
  948.     wyswietl(p, si);
  949.     cout << endl;*/
  950.  
  951.  
  952.     bohater postac;
  953.     postac.stworz_postac();
  954.  
  955.  
  956.  
  957.     /*string name;
  958.     name = postac.getName();
  959.     cout << name << endl;
  960.  
  961.     cout << "Podaj name swojej bohaterki" << endl;
  962.     cin >> name;
  963.     postac.changeName(name);
  964.  
  965.     cout << name << endl;*/
  966.  
  967.     srand(int(time(NULL)));
  968.     //-------------------------------------------Wprowadzenie------------------------------------------------//
  969.     cout << "|___WITAJ W GRZE___XXXXX____!|" << endl;
  970.     cout << "Przejmiesz wkrotce kontrole nad swoja postacja" << endl;
  971.     cout << "Wcielisz sie w 16 letnia dziewczyne, ktorej cala wioska zostala najechana i spalona" << endl;
  972.     cout << "przez zamaskowanych oprawcow. Jestes jedyna osoba, ktorej udalo sie wyjsc z tego calo" << endl;
  973.     cout << "jednak nasza bohaterka zostala zraniona zatruta strzala" << endl;
  974.     cout << "zeby wiedziec co za toksyna wyniszcza jej organizm, musi wycignac ta informacje od zamaskowanych oprawcow," << endl;
  975.     cout << "wiec nie liczac roznych przeciwnosci losu, bedziesz musial dodatkowo walczyc z czasem." << endl;
  976.     cout << "Aby pomscic najblizszych i uratowac swoje zycie" << endl;
  977.     cout << endl;
  978.     cout << "Zeby wygrac rozgrywke uzbieraj wymagana ilosc punktow wytrzymalosci,zadawanych obrazen i punktow many" << endl;
  979.     cout << "a nastepnie dotrzyj do przeciwnikow zanim trucizna doprowadzi Cie do smierci." << endl;;
  980.     system("PAUSE");
  981.     cout << endl;
  982.  
  983.     ekwipunek plecak;
  984.     plecak.stworz_plecak();
  985.  
  986.     czyczar zaklecia;
  987.     zaklecia.stworz_liste();
  988.     zaklecia.kula_ognia = true;
  989.     //---------------------------------------------Rozgrywka-----------------------------------------------//
  990.     bool koniec_gry = false;
  991.     int pokonany_dystans = 0;
  992.     int ubyte_tury = 0;
  993.     //int liczba_tur = 5;
  994.     while (koniec_gry == false)
  995.     {
  996.         bool koniec_tury = false;
  997.         postac.punkty_akcji = 100;
  998.         while ((postac.punkty_akcji >= 10) && (koniec_tury == false))
  999.         {
  1000.             int akcja = 0;
  1001.             cout << "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" << endl;
  1002.             cout << "Statystyki postaci:   " << "                       ";
  1003.             cout << "Zawartosc plecaka:" << "            " << "Umiejetnosci specjalne:" << endl;
  1004.             cout << "punkty wytrzymalosci = " << postac.punkty_wytrzymalosci << "/200               ";
  1005.             cout << "zbroja = " << plecak.zbroja << "                    ";
  1006.             cout << "kula ognia = " << zaklecia.kula_ognia << endl;
  1007.             cout << "punkty many = " << postac.punkty_many << "/150                        ";
  1008.             cout << "helm = " << plecak.helm << "                      ";
  1009.             cout << "regeneracja wytrzymalosci = " << zaklecia.regeneracja_wytrzymalosci << endl;
  1010.             cout << "zadawane obrazenia = " << postac.zadawane_obrazenia << "/100                  ";
  1011.             cout << "buty = " << plecak.buty << "                      ";
  1012.             cout << "blyskawica = " << zaklecia.blyskawica << endl;
  1013.             cout << "                                 " << "            ";
  1014.             cout << "jedzenie= " << plecak.jedzenie << endl;
  1015.             cout << "                                             mikstury many = " << plecak.mikstura_many << endl;
  1016.             cout << "                                             zloto = " << plecak.zloto << endl << endl;
  1017.             cout << "Ksiegi z zakleciami, pozwalaja nam one nauczyc sie nowych zaklec, jesli ktoras z nich jest wolna" << endl;
  1018.             wyswietl(p, si);
  1019.             cout << endl;
  1020.             int dystans = 25;
  1021.             int liczba_tur = 5;
  1022.             cout << endl;
  1023.             cout << "Pozostaly dystans do spotkania z oprawcami (skracac mozna za pomoca kostki przemieszczania sie) = " << dystans - pokonany_dystans << endl;
  1024.             cout << "Pozostala ilosc tur do smierci na wskutek dzialania trucizny = " << liczba_tur - ubyte_tury << endl;
  1025.             cout << "Pozostale punkty akcji w turze = " << postac.punkty_akcji << endl << endl;
  1026.             cout << "Akcje (wpisz odpowiadajacy numer):" << endl;
  1027.             cout << "1. Kulaj kostka losowych zdarzen (-10 punktow akcji)" << endl;
  1028.             cout << "2. Kulaj kostka przemieszczania sie(-20 punktow akcji)" << endl;
  1029.             cout << "3. Zrezygnuj z podejmowania jakichkolwiek akcji i zakoncz ture (punkty akcji nie sumuja sie po zakonczeniu tury)" << endl;
  1030.             cin >> akcja;
  1031.             bool ilosc_akcji = false;
  1032.             while (ilosc_akcji == false)
  1033.             {
  1034.                 //---------------------------------------------------------Akcja1-------------------------------------------------------//
  1035.                 if (akcja == 1)
  1036.                 {
  1037.                     if (postac.punkty_akcji >= 10)
  1038.                     {
  1039.                         int losowe;
  1040.                         postac.punkty_akcji = postac.punkty_akcji - 10;
  1041.                         losowe = losowe_zdarzenie();
  1042.                         {
  1043.                             switch (losowe)
  1044.                             {
  1045.                             case 1:
  1046.                                 otwieranie_skrzynki(postac, plecak, zaklecia);
  1047.                                 break;
  1048.  
  1049.                             case 2:
  1050.                                 handel(postac, plecak, zaklecia);
  1051.                                 break;
  1052.  
  1053.                             case 3:
  1054.                                 int rezultat;
  1055.                                 rezultat = student();
  1056.                                 if (rezultat == 1)
  1057.                                 {
  1058.                                     plecak.mikstura_many = plecak.mikstura_many + 1;
  1059.                                     postac.punkty_many = postac.punkty_many + 30;
  1060.                                 }
  1061.                                 break;
  1062.  
  1063.                             case 4:
  1064.                             {
  1065.                                 bool czyzagrac = false;
  1066.  
  1067.                                 if (plecak.zloto >= 10)
  1068.                                 {
  1069.                                     while ((czyzagrac == false) && (plecak.zloto >= 10))
  1070.                                     {
  1071.                                         int ilosc_graczy = 0;
  1072.                                         int wygrana = 0;
  1073.                                         cout << "Ilu graczy chcesz zaprosic do turnieju?" << endl;
  1074.                                         cin >> ilosc_graczy;
  1075.                                         wygrana = turniej_w_kosci(ilosc_graczy);
  1076.                                         if (wygrana == 0)
  1077.                                         {
  1078.                                             plecak.zloto = plecak.zloto - 10;
  1079.                                             cout << "Straciles 10 sztuk zlota" << endl;
  1080.                                         }
  1081.                                         else
  1082.                                         {
  1083.                                             int dodosoby;
  1084.                                             cout << "Ile dodatkowych osob dolaczylo do Ciebie podczas gry? (podaj liczbe)" << endl;
  1085.                                             cin >> dodosoby;
  1086.                                             cout << "Wygrales!" << endl << "Zarobiles " << (10 * ilosc_graczy) + (10 * dodosoby) << " sztuk zlota!" << endl << endl;
  1087.                                             plecak.zloto = plecak.zloto + (10 * ilosc_graczy);
  1088.                                         }
  1089.                                         bool kolejnapetla = false;
  1090.                                         while (kolejnapetla == false)
  1091.                                         {
  1092.                                             int pytanie = 0;
  1093.                                             cout << "Czy chcesz zagrac ponownie?" << endl;
  1094.                                             cout << "1. Tak" << endl;
  1095.                                             cout << "2. Nie" << endl << endl;
  1096.                                             cin >> pytanie;
  1097.                                             if (pytanie == 1)
  1098.                                             {
  1099.                                                 czyzagrac = false;
  1100.                                                 kolejnapetla = true;
  1101.                                             }
  1102.                                             if (pytanie == 2)
  1103.                                             {
  1104.                                                 czyzagrac = true;
  1105.                                                 kolejnapetla = true;
  1106.                                             }
  1107.                                             if ((pytanie != 1) && (pytanie != 2))
  1108.                                             {
  1109.                                                 cout << "Zla liczba - musisz wybrac miedzy opcja numer 1 i 2" << endl;
  1110.                                                 kolejnapetla = false;
  1111.                                             }
  1112.                                         }
  1113.                                     }
  1114.                                 }
  1115.                                 if (plecak.zloto < 10)
  1116.                                 {
  1117.                                     cout << "Nie posiadasz wystarczajaco zlota zeby postawic zaklad" << endl;
  1118.                                 }
  1119.                             }
  1120.                             break;
  1121.                             case 5:
  1122.  
  1123.                                 walka_bandyta(postac, plecak, zaklecia);
  1124.                                 break;
  1125.  
  1126.                             case 6:
  1127.                                 if (plecak.zloto >= 30)
  1128.                                 {
  1129.                                     cout << "Zdecydowales sie zaplacic, tracisz 30 sztuk zlota" << endl;
  1130.                                     plecak.zloto = plecak.zloto - 30;
  1131.                                 }
  1132.                                 else
  1133.                                 {
  1134.                                     cout << "Nie posiadasz wystarczajaco duzo zlota, musisz stanac do walki" << endl << endl;
  1135.                                     walka_bandyta(postac, plecak, zaklecia);
  1136.                                 }
  1137.                                 break;
  1138.                             case 7:
  1139.                                 zwieksz(p, si, brak);
  1140.                             }
  1141.                             ilosc_akcji = true;
  1142.                         }
  1143.                     }
  1144.                     else
  1145.                     {
  1146.                         cout << "Posiadasz za malo punktow akcji na wykonanie tej czynnosci" << endl;
  1147.                         break;
  1148.                     }
  1149.                 }
  1150.                 //---------------------------------------------------------Akcja2-------------------------------------------------------//
  1151.                 if (akcja == 2)
  1152.                 {
  1153.                     if (postac.punkty_akcji >= 20)
  1154.                     {
  1155.                         int odleglosc = 0;
  1156.                         odleglosc = losowa_kostka();
  1157.                         cout << "Pokonany dystans = " << odleglosc << endl;
  1158.                         pokonany_dystans = pokonany_dystans + odleglosc;
  1159.                         postac.punkty_akcji = postac.punkty_akcji - 20;
  1160.                         ilosc_akcji = true;
  1161.                         using namespace kontrola_rozgrywki;
  1162.                         dane danekontroli;
  1163.                         if (pokonany_dystans >= danekontroli.odleglosc)
  1164.                         {
  1165.                             koniec_tury = true;
  1166.                             if ((postac.punkty_wytrzymalosci < 200) || (postac.punkty_many < 150) || (postac.zadawane_obrazenia < 100))
  1167.                             {
  1168.                                 //---------------------------------------------------------Negatywne zakonczenie nr.1-------------------------------------------------------//
  1169.                                 koniec_rozgrywki1();
  1170.                                 koniec_gry = true;
  1171.                             }
  1172.                             else
  1173.                             {
  1174.                                 //---------------------------------------------------------Pozytywne zakonczenie pierwszego etapu-------------------------------------------------------//                
  1175.                                                     //JESLI GRACZ DA RADE UZBIERAC WSZYSTKIE WYMAGAJACE UMIEJETNOSCI I WYROBI SIE Z DOTARCIEM DO WROGOW (POZYTYWNE ZAKONCZENIE EW.WALKA Z BOSSEM)
  1176.  
  1177.                             }
  1178.                         }
  1179.                     }
  1180.                     else
  1181.                     {
  1182.                         cout << "Posiadasz za malo punktow akcji na wykonanie tej czynnosci" << endl;
  1183.                         ilosc_akcji = true;
  1184.                         break;
  1185.                     }
  1186.                 }
  1187.                 //----------------------------------------------------------------Akcja3----------------------------------------------------------------//
  1188.                 if (akcja == 3)
  1189.                 {
  1190.                     ilosc_akcji = true;
  1191.                     koniec_tury = true;
  1192.                 }
  1193.  
  1194.  
  1195.             }
  1196.             cout << "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" << endl;
  1197.             system("PAUSE");
  1198.         }
  1199.         if (koniec_gry == false)
  1200.         {
  1201.             ubyte_tury++;
  1202.             cout << "******************" << endl;
  1203.             cout << "* Koniec " << ubyte_tury << " tury! *" << endl;
  1204.             cout << "******************" << endl;
  1205.             cout << "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" << endl;
  1206.             system("PAUSE");
  1207.         }
  1208.         using namespace kontrola_rozgrywki;
  1209.         dane danekontroli;
  1210.         if (ubyte_tury >= danekontroli.liczba_tur)
  1211.         {
  1212.             //---------------------------------------------------------Negatywne zakonecznie nr.2-------------------------------------------------------//
  1213.             koniec_rozgrywki2();
  1214.             koniec_gry = true;
  1215.         }
  1216.     }
  1217.     return 0;
  1218. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top