SHARE
TWEET

Untitled

a guest Apr 26th, 2019 74 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  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 imie;
  55.     string nazwisko;
  56. public:
  57.     string getImie()
  58.     {
  59.  
  60.         return imie;
  61.  
  62.     }
  63.  
  64.     string getNazwisko()
  65.     {
  66.         return nazwisko;
  67.     }
  68.     void changeName(string new_name) {
  69.         imie = new_name;
  70.     }
  71.     friend istream& operator>>(istream& in, Player*& B)
  72.     {
  73.         cout << "podaj imie: " << endl;
  74.         in >> B->imie;
  75.         cout << "podaj nazwisko: " << endl;
  76.         in >> B->nazwisko;
  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 << "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->getImie(); }
  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.     ~Nekromanci() {
  331.         delete[] nieum;
  332.         nieum = nullptr;
  333.     }
  334.     int atak() {
  335.         return obrazenia + ilosc_nieumarlych * nieum[0]->n_obrazenia;
  336.     }
  337. };
  338.  
  339. umieranie* obsluga::a;
  340.  
  341. void koniec_rozgrywki1()
  342. {
  343.     obsluga::stworz();
  344.     cout << obsluga::wyslij1() << endl;
  345.     cout << obsluga::wyslij2() << endl;
  346.     cout << obsluga::wyslij3() << endl;
  347.     cout << obsluga::wyslij1() << endl;
  348.     obsluga::usun();
  349. }
  350.  
  351. void koniec_rozgrywki2()
  352. {
  353.     obsluga::stworz();
  354.     cout << obsluga::wyslij1() << endl;
  355.     cout << obsluga::wyslij4() << endl;
  356.     cout << obsluga::wyslij1() << endl;
  357.     obsluga::usun();
  358. }
  359.  
  360. //-------------------------------------------------Systemy losowe----------------------------------------------//
  361.  
  362. int losowa_kostka()
  363. {
  364.     srand(int(time(NULL)));
  365.     int los = ((rand() % 6) + 1);
  366.     return los;
  367. }
  368.  
  369. int losowa_liczba()
  370. {
  371.     srand(int(time(NULL)));
  372.     int los = ((rand() % 10) + 1);
  373.     return los;
  374. }
  375.  
  376. int magiczna_kostka()
  377. {
  378.     srand(int(time(NULL)));
  379.     int los = ((rand() % 3) + 4);
  380.     return los;
  381. }
  382.  
  383.  
  384. //------------------------------------Przeladowanie funkcji----------------------------------------------//
  385.  
  386. int dodawanie(int a, int b, int c)
  387. {
  388.     return a + b + c;
  389. }
  390.  
  391. int dodawanie(int a, int b)
  392. {
  393.     return a + b;
  394. }
  395.  
  396. //------------------------------------zmiana rozmiaru tablicy----------------------------------------------//
  397.  
  398. void dodaj(int& ilosc_graczy, int*& gracze)
  399. {
  400.     int* temp;
  401.     temp = new int[ilosc_graczy + 1];
  402.     for (int i = 0; i < ilosc_graczy; i++)
  403.     {
  404.         temp[i] = gracze[i];
  405.     }
  406.     delete[] gracze;
  407.     gracze = new int[ilosc_graczy + 1];
  408.     for (int i = 0; i < ilosc_graczy; i++)
  409.     {
  410.         gracze[i] = temp[i];
  411.     }
  412.     ilosc_graczy++;
  413.     delete[] temp;
  414. }
  415.  
  416. //------------------------------------Funckje do zdarzeń losowych----------------------------------------------//
  417.  
  418. void otwieranie_skrzynki(bohater & postac, ekwipunek & plecak, czyczar & zaklecia)
  419. {
  420.     int liczba = losowa_liczba();
  421.     switch (liczba)
  422.     {
  423.     case 1:
  424.         if (plecak.helm == false)
  425.         {
  426.             cout << "Znalazles helm - otrzymujesz dodatkowe punkty wytrzymalosci" << endl;
  427.             postac.punkty_wytrzymalosci = postac.punkty_wytrzymalosci + 20;
  428.             plecak.helm = true;
  429.             break;
  430.         }
  431.         else
  432.         {
  433.             cout << "Znalazles helm - jako, iĹĽ posiadasz juĹĽ ten przedmiot, sprzedajesz go" << endl;
  434.             plecak.zloto = plecak.zloto + 15;
  435.             break;
  436.         }
  437.     case 2:
  438.         if (plecak.zbroja == false)
  439.         {
  440.             cout << "Znalazles zbroje - otrzymujesz dodatkowe punkty wytrzymalosci" << endl;
  441.             postac.punkty_wytrzymalosci = postac.punkty_wytrzymalosci + 40;
  442.             plecak.zbroja = true;
  443.             break;
  444.         }
  445.         else
  446.         {
  447.             cout << "Znalazles zbroje - jako, iĹĽ posiadasz juĹĽ ten przedmiot, sprzedajesz go" << endl;
  448.             plecak.zloto = plecak.zloto + 25;
  449.             break;
  450.         }
  451.     case 3:
  452.         if (plecak.olej_na_miecz == false)
  453.         {
  454.             cout << "Znalazles olej na miecz - ilosc zadawanych obrazen wzrosla" << endl;
  455.             postac.zadawane_obrazenia = postac.zadawane_obrazenia + 15;
  456.             plecak.olej_na_miecz = true;
  457.             break;
  458.         }
  459.         else
  460.         {
  461.             cout << "Znalazles olej na miecz - jako, iĹĽ posiadasz juĹĽ ten przedmiot, sprzedajesz go" << endl;
  462.             plecak.zloto = plecak.zloto + 10;
  463.             break;
  464.         }
  465.     case 4:
  466.         if (plecak.buty == false)
  467.         {
  468.             cout << "Znalazles buty - od nastepnej tury otrzymujesz dodatkowe punkty akcji" << endl;
  469.             postac.punkty_akcji = postac.punkty_akcji + 20;
  470.             plecak.buty = true;
  471.             break;
  472.         }
  473.         else
  474.         {
  475.             cout << "Znalazles buty - jako, iĹĽ posiadasz juĹĽ ten przedmiot, sprzedajesz go" << endl;
  476.             plecak.zloto = plecak.zloto + 10;
  477.             break;
  478.         }
  479.     case 5:
  480.         cout << "Znalazles porcje jedzenia - wzrastaja punkty wytrzymalosci" << endl;
  481.         plecak.jedzenie = plecak.jedzenie + 1;
  482.         postac.punkty_wytrzymalosci = postac.punkty_wytrzymalosci + 20;
  483.         break;
  484.     case 6:
  485.         cout << "Znalazles miksture many" << endl;
  486.         plecak.mikstura_many = plecak.mikstura_many + 1;
  487.         postac.punkty_many = postac.punkty_many + 30;
  488.         break;
  489.     case 7:
  490.         if (zaklecia.kula_ognia == false)
  491.         {
  492.             cout << "Znalazles zwoj z czarem 'kula ognia' - wzrastaja zadawane obrazenia i mana " << endl;
  493.             zaklecia.kula_ognia = true;
  494.             postac.punkty_many = postac.punkty_many + 15;
  495.             postac.zadawane_obrazenia = postac.zadawane_obrazenia + 30;
  496.             break;
  497.         }
  498.         else
  499.         {
  500.             cout << "Znalazles zwoj z czarem 'kula ognia' - jako, iĹĽ posiadasz juĹĽ ten przedmiot, sprzedajesz go" << endl;
  501.             plecak.zloto = plecak.zloto + 15;
  502.             break;
  503.         }
  504.     case 8:
  505.         if (zaklecia.regeneracja_wytrzymalosci == false)
  506.         {
  507.             cout << "Znalazles zwoj z czarem 'regeneracja zycia' - mozna go uzyc jesli zostaniesz pokonany w walce " << endl;
  508.             zaklecia.regeneracja_wytrzymalosci = true;
  509.             break;
  510.         }
  511.         else
  512.         {
  513.             cout << "Znalazles zwoj z czarem 'regeneracja zycia' - jako, iĹĽ posiadasz juĹĽ ten przedmiot, sprzedajesz go" << endl;
  514.             plecak.zloto = plecak.zloto + 15;
  515.             break;
  516.         }
  517.     case 9:
  518.         if (zaklecia.blyskawica == false)
  519.         {
  520.             cout << "Znalazles zwoj z czarem 'blyskawica' - wzrastaja zadawane obrazenia " << endl;
  521.             zaklecia.blyskawica = true;
  522.             postac.zadawane_obrazenia = postac.zadawane_obrazenia + 30;
  523.             break;
  524.         }
  525.         else
  526.         {
  527.             cout << "Znalazles zwoj z czarem 'blyskawica' - jako, iĹĽ posiadasz juĹĽ ten przedmiot, sprzedajesz go" << endl;
  528.             plecak.zloto = plecak.zloto + 15;
  529.             break;
  530.         }
  531.     case 10:
  532.         cout << "Znalazles 30 sztuk zlota - mozesz za nie kupic przydatne przedmioty gdy napotkasz kupca" << endl;
  533.         plecak.zloto = plecak.zloto + 30;
  534.         break;
  535.     default:
  536.         cout << "blad w losowaniu liczby(zly przedzial)" << endl;
  537.         break;
  538.     }
  539. }
  540.  
  541. void handel(bohater & postac, ekwipunek & plecak, czyczar & zaklecia)
  542. {
  543.     bool petla = false;
  544.     while (petla == false)
  545.     {
  546.         int wybor = 0;
  547.         cout << "Witaj jesli posiadasz wystarczajaco duzo zlota, mozesz kupic u mnie przydatny przedmiot" << endl;
  548.         cout << "1-buty, 30 sztuk zlota (wieksza ilosc punktow akcji podczas rundy)" << endl;
  549.         cout << "2-olej na miecz, 20 sztuk zlota (zwiekszona ilosc obrazen)" << endl;
  550.         cout << "3-jedzenie, 10 sztuk zlota (wieksza ilosc punktow wytrzymalosci)" << endl;
  551.         cout << "4-koniec handlu" << endl;
  552.         cin >> wybor;
  553.         switch (wybor)
  554.         {
  555.         case 1:
  556.             if ((plecak.buty == false) && (plecak.zloto >= 30))
  557.             {
  558.                 cout << "kupiles buty - od nastepnej tury otrzymujesz dodatkowe punkty akcji" << endl;
  559.                 cout << endl;
  560.                 postac.punkty_akcji = postac.punkty_akcji + 20;
  561.                 plecak.zloto = plecak.zloto - 30;
  562.                 plecak.buty = true;
  563.                 break;
  564.             }
  565.             else
  566.             {
  567.                 cout << "Posiadasz juz buty lub nie posiadasz wystarczajaco duzo zlota by je zakupic" << endl;
  568.                 cout << endl;
  569.                 break;
  570.             }
  571.             break;
  572.  
  573.         case 2:
  574.             if ((plecak.olej_na_miecz == false) && (plecak.zloto >= 20))
  575.             {
  576.                 cout << "Kupiles olej na miecz - ilosc zadawanych obrazen wzrosla" << endl;
  577.                 cout << endl;
  578.                 postac.zadawane_obrazenia = postac.zadawane_obrazenia + 15;
  579.                 plecak.olej_na_miecz = true;
  580.                 plecak.zloto = plecak.zloto - 20;
  581.                 break;
  582.             }
  583.             else
  584.             {
  585.                 cout << "Posiadasz juz olej lub nie posiadasz wystarczajaco duzo zlota by go zakupic" << endl;
  586.                 cout << endl;
  587.                 break;
  588.             }
  589.             break;
  590.  
  591.         case 3:
  592.             if (plecak.zloto >= 10)
  593.             {
  594.                 cout << "Znalazles porcje jedzenia - wzrastaja punkty wytrzymalosci" << endl;
  595.                 cout << endl;
  596.                 plecak.jedzenie = plecak.jedzenie + 1;
  597.                 postac.punkty_wytrzymalosci = postac.punkty_wytrzymalosci + 20;
  598.                 break;
  599.             }
  600.             else
  601.             {
  602.                 cout << "Nie posiadasz wystarczajaco duzo zlota by zakupic przedmiot" << endl;
  603.                 cout << endl;
  604.                 break;
  605.             }
  606.             break;
  607.  
  608.         case 4:
  609.             petla = true;
  610.             break;
  611.  
  612.         default:
  613.             cout << "Podana zostala zla liczba" << endl;
  614.             break;
  615.         }
  616.     }
  617. }
  618.  
  619. int student()
  620. {
  621.     int a, b, c;
  622.     cout << "Pierwsza liczba to 19 i musisz podac dwie liczby," << endl << "ktorych suma jest rowna wlasnie tyle" << endl;
  623.     cin >> a;
  624.     cin >> b;
  625.     if (dodawanie(a, b) == 19)
  626.     {
  627.         cout << "Udalo Ci sie dobrze podac pierwsza sume" << endl;
  628.     }
  629.     else
  630.     {
  631.         cout << "Suma podanych liczb wynosila " << dodawanie(a, b) << " a nie 19" << endl;
  632.         cout << "Niestety nie pokonales wyzwania, nic nie tracisz, ale tez nic nie zyskujesz" << endl;
  633.         return 0;
  634.     }
  635.     cout << "Druga liczba to 34 i musisz podac trzy liczby," << endl << "ktorych suma jest rowna wlasnie tyle" << endl;
  636.     cin >> a;
  637.     cin >> b;
  638.     cin >> c;
  639.     if (dodawanie(a, b, c) == 34)
  640.     {
  641.         cout << "Udalo Ci sie dobrze podac druga sume, wygrales miksture many" << endl;
  642.         return 1;
  643.     }
  644.     else
  645.     {
  646.         cout << "Suma podanych liczb wynosila " << dodawanie(a, b, c) << " a nie 34" << endl;
  647.         cout << "Niestety nie pokonales wyzwania, nic nie tracisz, ale tez nic nie zyskujesz" << endl;
  648.         return 0;
  649.     }
  650. }
  651.  
  652.  
  653. int turniej_w_kosci(int ilosc_graczy)
  654. {
  655.     cout << endl << endl << "NOWA RUNDA" << endl;
  656.     int* gracze;
  657.     gracze = new int[ilosc_graczy];
  658.  
  659.     int twoj_rzut = 0;
  660.     int los = ((rand() % 3) + 4);
  661.     twoj_rzut = los;
  662.     cout << "Twoj wynik = " << twoj_rzut << endl;
  663.     cout << "Podchodzi dodatkowa osoba i pyta sie czy moze do was dolaczyc" << endl;
  664.     bool kolejnapetla = false;
  665.     while (kolejnapetla == false)
  666.     {
  667.         int pytanie = 0;
  668.         cout << "Zgadzasz sie?" << endl;
  669.         cout << "1. Tak" << endl;
  670.         cout << "2. Nie" << endl << endl;
  671.         cin >> pytanie;
  672.         if (pytanie == 1)
  673.         {
  674.             dodaj(ilosc_graczy, gracze);
  675.             kolejnapetla = true;
  676.         }
  677.         if (pytanie == 2)
  678.         {
  679.             kolejnapetla = true;
  680.         }
  681.         if ((pytanie != 1) && (pytanie != 2))
  682.         {
  683.             cout << "Zla liczba - musisz wybrac miedzy opcja numer 1 i 2" << endl;
  684.             kolejnapetla = false;
  685.         }
  686.     }
  687.     for (int i = 0; i < ilosc_graczy; i++)
  688.     {
  689.         gracze[i] = ((rand() % 6) + 1);
  690.         cout << "Wynik przeciwnika" << " = " << gracze[i] << endl;
  691.     }
  692.  
  693.  
  694.     int maks = twoj_rzut;
  695.     int licznik = 0;
  696.     for (int i = 0; i < ilosc_graczy; i++)
  697.     {
  698.         if (gracze[i] > maks)
  699.         {
  700.             maks = gracze[i];
  701.         }
  702.     }
  703.  
  704.     if (maks == twoj_rzut)
  705.     {
  706.         for (int i = 0; i < ilosc_graczy; i++)
  707.         {
  708.             if (maks == gracze[i])
  709.             {
  710.                 licznik++;
  711.             }
  712.         }
  713.         if (licznik == 0)
  714.         {
  715.             delete[] gracze;
  716.             return ilosc_graczy;
  717.         }
  718.         else
  719.         {
  720.             cout << "Dobrze poszlo!" << endl << "Jednak " << licznik << " graczy mialo taka sama ilosc oczek co Ty!" << endl;
  721.             cout << "Przechodzicie do nastepnej rundy" << endl;
  722.             delete[] gracze;
  723.             turniej_w_kosci(licznik);
  724.         }
  725.     }
  726.     else
  727.     {
  728.         delete[] gracze;
  729.         cout << "przykro mi - przegrales" << endl;
  730.         return 0;
  731.     }
  732. }
  733.  
  734. void walka_bandyta(bohater & postac, ekwipunek & plecak, czyczar & zaklecia)
  735. {
  736.     bandyta b1;
  737.     if (b1.punkty_wytrzymalosci > postac.zadawane_obrazenia)
  738.     {
  739.         cout << "Udaje Ci sie pokonac przeciwnika, jednak poniewaz twoje obrazenia sa mniejsze od jego zdrowia," << endl << "zostajesz ranny (-20 punktow wytrzymalosci)" << endl;
  740.         postac.punkty_wytrzymalosci = postac.punkty_wytrzymalosci - b1.zadawane_obrazenia;
  741.     }
  742.     else
  743.     {
  744.         cout << "Udaje Ci sie pokonac przeciwnika bez odniesienia zadnych ran" << endl;
  745.     }
  746.  
  747. }
  748.  
  749. //-------------------------------------------------Zdarzenia losowe--------------------------------------------//
  750.  
  751. int losowe_zdarzenie()
  752. {
  753.  
  754.     bool petla = true;
  755.     int wybor;
  756.     int liczba = losowa_liczba();
  757.     //liczba=6;
  758.     switch (liczba)
  759.     {
  760.     case 1:
  761.         cout << "ZNALAZLES NIESTRZEZONA SKRZYNIE" << endl;
  762.         while (petla == true)
  763.         {
  764.             cout << "Zdecyduj co chcesz zrobic!" << endl;
  765.             cout << "Wybierz: 1-otworz - 10 punktow akcji" << endl;
  766.             cout << "wybierz: 2-nic nie rob" << endl;
  767.             cin >> wybor;
  768.             if (wybor == 1)
  769.             {
  770.                 petla = false;
  771.                 return 1;
  772.             }
  773.             if (wybor == 2)
  774.             {
  775.                 petla = false;
  776.             }
  777.             if ((wybor != 1) && (wybor != 2))
  778.             {
  779.                 cout << "Zla liczba - musisz wybrac miedzy opcja numer 1 i 2";
  780.             }
  781.         }
  782.         return 0;
  783.  
  784.  
  785.     case 2:
  786.         cout << "SPOTKALES WEDROWNEGO KUPCA" << endl;
  787.         while (petla == true)
  788.         {
  789.             cout << "Zdecyduj co chcesz zrobic!" << endl;
  790.             cout << "Wybierz: 1-zacznij handlowac " << endl;
  791.             cout << "wybierz: 2-odejdz" << endl;
  792.             cin >> wybor;
  793.             if (wybor == 1)
  794.             {
  795.                 petla = false;
  796.                 return 2;
  797.             }
  798.             if (wybor == 2)
  799.             {
  800.                 petla = false;
  801.             }
  802.             if ((wybor != 1) && (wybor != 2))
  803.             {
  804.                 cout << "Zla liczba - musisz wybrac miedzy opcja numer 1 i 2";
  805.             }
  806.         }
  807.         return 0;
  808.  
  809.     case 3:
  810.         cout << "SPOTYKASZ STUDENTA, KTORY RZUCA CI WYZWANIE MATEMATYCZNE" << endl;
  811.         cout << "Wyzwanie polega na tym, iz poda on jakas liczbe calkowita" << endl;
  812.         cout << "a Ty musisz napisac mu dwie lub trzy liczby ktorych suma jest rowna jego liczbie" << endl;
  813.         cout << "Jesli uda Ci sie podolac wyzwaniu otrzymasz od niego miksture many" << endl;
  814.         return 3;
  815.  
  816.     case 4:
  817.         cout << "TURNIEJ W KOSCI" << endl;
  818.         cout << endl;
  819.         cout << "Trafiles do karczmy, szukajac rozrywki wpadasz na pomysl zorganizowania turnieju w kosci." << endl;
  820.         cout << "Sam decydujesz z iloma przeciwnikami chcesz sie zmierzyc." << endl;
  821.         cout << "Im wiecej przeciwnikow, tym wieksze prawdopodobienstwo porazki, ale tez szansa na wieksza wygrana!" << endl;
  822.         cout << "Kazdy gracz wplaca po 10 sztuk zlota wejsciowego." << endl;
  823.         cout << "Wygrywa osoba ktora wyrzuci najwieksza liczbe oczek na kostce." << endl;
  824.         cout << "Jesli dwoch lub wiecej graczy, bedzie mialo taki sam wynik, wtedy obaj przechodza" << endl;
  825.         cout << "do nastepnej rundy, az do momentu gdy ktorys bedzie mial wiecej szczescia" << endl;
  826.         cout << "Aha! Warto tez dodac, ze nasza bohaterka ma magiczna kosc, dzieki ktorej wyrzuca tylko 4,5 i 6 ;)" << endl << endl;
  827.         return 4;
  828.  
  829.     case 5:
  830.         cout << "Spotkales bandyte!" << endl << "Mozesz stanac z nim do walki, albo zaplacic mu 30 sztuk zlota i odejsc" << endl;
  831.         while (petla == true)
  832.         {
  833.             cout << "Zdecyduj co chcesz zrobic!" << endl;
  834.             cout << "1. Walka" << endl;
  835.             cout << "2. Zaplac" << endl;
  836.             cin >> wybor;
  837.             if (wybor == 1)
  838.             {
  839.                 petla = false;
  840.                 return 5;
  841.             }
  842.             if (wybor == 2)
  843.             {
  844.                 petla = false;
  845.                 return 6;
  846.             }
  847.             if ((wybor != 1) && (wybor != 2))
  848.             {
  849.                 cout << "Zla liczba - musisz wybrac miedzy opcja numer 1 i 2";
  850.             }
  851.         }
  852.         return 0;
  853.  
  854.     case 6:
  855.         cout << "POMOGLES KUPCOWI" << endl;
  856.         cout << "W ramach podziekowania oddaje Ci on za darmo pusta ksiege" << endl;
  857.         return 7;
  858.  
  859.     case 7:
  860.         cout << "7" << endl;
  861.         return 0;
  862.  
  863.     case 8:
  864.         cout << "8" << endl;
  865.         return 0;
  866.  
  867.     case 9:
  868.         cout << "9" << endl;
  869.         return 0;
  870.  
  871.     case 10:
  872.         cout << "10" << endl;
  873.         return 0;
  874.  
  875.     }
  876. }
  877.  
  878. //-------------------------------------------------Funckja main----------------------------------------------//
  879.  
  880. Player* bohater::player;
  881. int main()
  882. {
  883.     bohater::stworz();
  884.     cin >> bohater::player;
  885.  
  886.     bohater maciej;
  887.     cout << *maciej.getWynik() << endl; // zrobiłem ci jakeigoś bohatera macieja i jego wynik i lv ci to będzie wyswietlało
  888.     // to przykładowo że np zdobywa jakies punkty i jakiś lv ma i wyswietla ci to
  889.     //punkty możesz za cos tam dodać
  890.  
  891.  
  892.     skills brak("BRAK", 99999, 0);
  893.     skills kula_ognia("kula ognia", 20, 30);
  894.     skills blyskawica("blyskawica", 10, 25);
  895.     skills regeneracja_wytrzymalosci("regeneracja wytrzymalosci", 30, 0, 20);
  896.  
  897.     Nekromanci* nek1 = new Nekromanci(100, 5, 2);
  898.     Nekromanci* nek2 = new Nekromanci(*nek1);
  899.  
  900.     delete nek1;
  901.     delete nek2;
  902.  
  903.  
  904.     pojemnik** p;
  905.     stworz(p, si, brak);
  906.     p[0]->changeSkill(&kula_ognia);
  907.     /*wyswietl(p, si);
  908.     cout << endl;
  909.     zwieksz(p, si, brak);
  910.     wyswietl(p, si);
  911.     cout << endl;
  912.     zmniejsz(p, si, brak);
  913.     wyswietl(p, si);
  914.     cout << endl;
  915.     zwieksz(p, si, brak);
  916.     wyswietl(p, si);
  917.     cout << endl;
  918.     zwieksz(p, si, brak);
  919.     wyswietl(p, si);
  920.     cout << endl;
  921.     zwieksz(p, si, brak);
  922.     wyswietl(p, si);
  923.     cout << endl;*/
  924.  
  925.  
  926.     bohater postac;
  927.     postac.stworz_postac();
  928.  
  929.  
  930.  
  931.     /*string imie;
  932.     imie = postac.getName();
  933.     cout << imie << endl;
  934.  
  935.     cout << "Podaj imie swojej bohaterki" << endl;
  936.     cin >> imie;
  937.     postac.changeName(imie);
  938.  
  939.     cout << imie << endl;*/
  940.  
  941.     srand(int(time(NULL)));
  942.     //-------------------------------------------Wprowadzenie------------------------------------------------//
  943.     cout << "|___WITAJ W GRZE___XXXXX____!|" << endl;
  944.     cout << "Przejmiesz wkrotce kontrole nad swoja postacja" << endl;
  945.     cout << "Wcielisz sie w 16 letnia dziewczyne, ktorej cala wioska zostala najechana i spalona" << endl;
  946.     cout << "przez zamaskowanych oprawcow. Jestes jedyna osoba, ktorej udalo sie wyjsc z tego calo" << endl;
  947.     cout << "jednak nasza bohaterka zostala zraniona zatruta strzala" << endl;
  948.     cout << "zeby wiedziec co za toksyna wyniszcza jej organizm, musi wycignac ta informacje od zamaskowanych oprawcow," << endl;
  949.     cout << "wiec nie liczac roznych przeciwnosci losu, bedziesz musial dodatkowo walczyc z czasem." << endl;
  950.     cout << "Aby pomscic najblizszych i uratowac swoje zycie" << endl;
  951.     cout << endl;
  952.     cout << "Zeby wygrac rozgrywke uzbieraj wymagana ilosc punktow wytrzymalosci,zadawanych obrazen i punktow many" << endl;
  953.     cout << "a nastepnie dotrzyj do przeciwnikow zanim trucizna doprowadzi Cie do smierci." << endl;;
  954.     system("PAUSE");
  955.     cout << endl;
  956.  
  957.     ekwipunek plecak;
  958.     plecak.stworz_plecak();
  959.  
  960.     czyczar zaklecia;
  961.     zaklecia.stworz_liste();
  962.     zaklecia.kula_ognia = true;
  963.     //---------------------------------------------Rozgrywka-----------------------------------------------//
  964.     bool koniec_gry = false;
  965.     int pokonany_dystans = 0;
  966.     int ubyte_tury = 0;
  967.     //int liczba_tur = 5;
  968.     while (koniec_gry == false)
  969.     {
  970.         bool koniec_tury = false;
  971.         postac.punkty_akcji = 100;
  972.         while ((postac.punkty_akcji >= 10) && (koniec_tury == false))
  973.         {
  974.             int akcja = 0;
  975.             cout << "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" << endl;
  976.             cout << "Statystyki postaci:   " << "                       ";
  977.             cout << "Zawartosc plecaka:" << "            " << "Umiejetnosci specjalne:" << endl;
  978.             cout << "punkty wytrzymalosci = " << postac.punkty_wytrzymalosci << "/200               ";
  979.             cout << "zbroja = " << plecak.zbroja << "                    ";
  980.             cout << "kula ognia = " << zaklecia.kula_ognia << endl;
  981.             cout << "punkty many = " << postac.punkty_many << "/150                        ";
  982.             cout << "helm = " << plecak.helm << "                      ";
  983.             cout << "regeneracja wytrzymalosci = " << zaklecia.regeneracja_wytrzymalosci << endl;
  984.             cout << "zadawane obrazenia = " << postac.zadawane_obrazenia << "/100                  ";
  985.             cout << "buty = " << plecak.buty << "                      ";
  986.             cout << "blyskawica = " << zaklecia.blyskawica << endl;
  987.             cout << "                                 " << "            ";
  988.             cout << "jedzenie= " << plecak.jedzenie << endl;
  989.             cout << "                                             mikstury many = " << plecak.mikstura_many << endl;
  990.             cout << "                                             zloto = " << plecak.zloto << endl << endl;
  991.             cout << "Ksiegi z zakleciami, pozwalaja nam one nauczyc sie nowych zaklec, jesli ktoras z nich jest wolna" << endl;
  992.             wyswietl(p, si);
  993.             cout << endl;
  994.             int dystans = 25;
  995.             int liczba_tur = 5;
  996.             cout << endl;
  997.             cout << "Pozostaly dystans do spotkania z oprawcami (skracac mozna za pomoca kostki przemieszczania sie) = " << dystans - pokonany_dystans << endl;
  998.             cout << "Pozostala ilosc tur do smierci na wskutek dzialania trucizny = " << liczba_tur - ubyte_tury << endl;
  999.             cout << "Pozostale punkty akcji w turze = " << postac.punkty_akcji << endl << endl;
  1000.             cout << "Akcje (wpisz odpowiadajacy numer):" << endl;
  1001.             cout << "1. Kulaj kostka losowych zdarzen (-10 punktow akcji)" << endl;
  1002.             cout << "2. Kulaj kostka przemieszczania sie(-20 punktow akcji)" << endl;
  1003.             cout << "3. Zrezygnuj z podejmowania jakichkolwiek akcji i zakoncz ture (punkty akcji nie sumuja sie po zakonczeniu tury)" << endl;
  1004.             cin >> akcja;
  1005.             bool ilosc_akcji = false;
  1006.             while (ilosc_akcji == false)
  1007.             {
  1008.                 //---------------------------------------------------------Akcja1-------------------------------------------------------//
  1009.                 if (akcja == 1)
  1010.                 {
  1011.                     if (postac.punkty_akcji >= 10)
  1012.                     {
  1013.                         int losowe;
  1014.                         postac.punkty_akcji = postac.punkty_akcji - 10;
  1015.                         losowe = losowe_zdarzenie();
  1016.                         {
  1017.                             switch (losowe)
  1018.                             {
  1019.                             case 1:
  1020.                                 otwieranie_skrzynki(postac, plecak, zaklecia);
  1021.                                 break;
  1022.  
  1023.                             case 2:
  1024.                                 handel(postac, plecak, zaklecia);
  1025.                                 break;
  1026.  
  1027.                             case 3:
  1028.                                 int rezultat;
  1029.                                 rezultat = student();
  1030.                                 if (rezultat == 1)
  1031.                                 {
  1032.                                     plecak.mikstura_many = plecak.mikstura_many + 1;
  1033.                                     postac.punkty_many = postac.punkty_many + 30;
  1034.                                 }
  1035.                                 break;
  1036.  
  1037.                             case 4:
  1038.                             {
  1039.                                 bool czyzagrac = false;
  1040.  
  1041.                                 if (plecak.zloto >= 10)
  1042.                                 {
  1043.                                     while ((czyzagrac == false) && (plecak.zloto >= 10))
  1044.                                     {
  1045.                                         int ilosc_graczy = 0;
  1046.                                         int wygrana = 0;
  1047.                                         cout << "Ilu graczy chcesz zaprosic do turnieju?" << endl;
  1048.                                         cin >> ilosc_graczy;
  1049.                                         wygrana = turniej_w_kosci(ilosc_graczy);
  1050.                                         if (wygrana == 0)
  1051.                                         {
  1052.                                             plecak.zloto = plecak.zloto - 10;
  1053.                                             cout << "Straciles 10 sztuk zlota" << endl;
  1054.                                         }
  1055.                                         else
  1056.                                         {
  1057.                                             int dodosoby;
  1058.                                             cout << "Ile dodatkowych osob dolaczylo do Ciebie podczas gry? (podaj liczbe)" << endl;
  1059.                                             cin >> dodosoby;
  1060.                                             cout << "Wygrales!" << endl << "Zarobiles " << (10 * ilosc_graczy) + (10 * dodosoby) << " sztuk zlota!" << endl << endl;
  1061.                                             plecak.zloto = plecak.zloto + (10 * ilosc_graczy);
  1062.                                         }
  1063.                                         bool kolejnapetla = false;
  1064.                                         while (kolejnapetla == false)
  1065.                                         {
  1066.                                             int pytanie = 0;
  1067.                                             cout << "Czy chcesz zagrac ponownie?" << endl;
  1068.                                             cout << "1. Tak" << endl;
  1069.                                             cout << "2. Nie" << endl << endl;
  1070.                                             cin >> pytanie;
  1071.                                             if (pytanie == 1)
  1072.                                             {
  1073.                                                 czyzagrac = false;
  1074.                                                 kolejnapetla = true;
  1075.                                             }
  1076.                                             if (pytanie == 2)
  1077.                                             {
  1078.                                                 czyzagrac = true;
  1079.                                                 kolejnapetla = true;
  1080.                                             }
  1081.                                             if ((pytanie != 1) && (pytanie != 2))
  1082.                                             {
  1083.                                                 cout << "Zla liczba - musisz wybrac miedzy opcja numer 1 i 2" << endl;
  1084.                                                 kolejnapetla = false;
  1085.                                             }
  1086.                                         }
  1087.                                     }
  1088.                                 }
  1089.                                 if (plecak.zloto < 10)
  1090.                                 {
  1091.                                     cout << "Nie posiadasz wystarczajaco zlota zeby postawic zaklad" << endl;
  1092.                                 }
  1093.                             }
  1094.                             break;
  1095.                             case 5:
  1096.  
  1097.                                 walka_bandyta(postac, plecak, zaklecia);
  1098.                                 break;
  1099.  
  1100.                             case 6:
  1101.                                 if (plecak.zloto >= 30)
  1102.                                 {
  1103.                                     cout << "Zdecydowales sie zaplacic, tracisz 30 sztuk zlota" << endl;
  1104.                                     plecak.zloto = plecak.zloto - 30;
  1105.                                 }
  1106.                                 else
  1107.                                 {
  1108.                                     cout << "Nie posiadasz wystarczajaco duzo zlota, musisz stanac do walki" << endl << endl;
  1109.                                     walka_bandyta(postac, plecak, zaklecia);
  1110.                                 }
  1111.                                 break;
  1112.                             case 7:
  1113.                                 zwieksz(p, si, brak);
  1114.                             }
  1115.                             ilosc_akcji = true;
  1116.                         }
  1117.                     }
  1118.                     else
  1119.                     {
  1120.                         cout << "Posiadasz za malo punktow akcji na wykonanie tej czynnosci" << endl;
  1121.                         break;
  1122.                     }
  1123.                 }
  1124.                 //---------------------------------------------------------Akcja2-------------------------------------------------------//
  1125.                 if (akcja == 2)
  1126.                 {
  1127.                     if (postac.punkty_akcji >= 20)
  1128.                     {
  1129.                         int odleglosc = 0;
  1130.                         odleglosc = losowa_kostka();
  1131.                         cout << "Pokonany dystans = " << odleglosc << endl;
  1132.                         pokonany_dystans = pokonany_dystans + odleglosc;
  1133.                         postac.punkty_akcji = postac.punkty_akcji - 20;
  1134.                         ilosc_akcji = true;
  1135.                         using namespace kontrola_rozgrywki;
  1136.                         dane danekontroli;
  1137.                         if (pokonany_dystans >= danekontroli.odleglosc)
  1138.                         {
  1139.                             koniec_tury = true;
  1140.                             if ((postac.punkty_wytrzymalosci < 200) || (postac.punkty_many < 150) || (postac.zadawane_obrazenia < 100))
  1141.                             {
  1142.                                 //---------------------------------------------------------Negatywne zakonczenie nr.1-------------------------------------------------------//
  1143.                                 koniec_rozgrywki1();
  1144.                                 koniec_gry = true;
  1145.                             }
  1146.                             else
  1147.                             {
  1148.                                 //---------------------------------------------------------Pozytywne zakonczenie pierwszego etapu-------------------------------------------------------//                
  1149.                                                     //JESLI GRACZ DA RADE UZBIERAC WSZYSTKIE WYMAGAJACE UMIEJETNOSCI I WYROBI SIE Z DOTARCIEM DO WROGOW (POZYTYWNE ZAKONCZENIE EW.WALKA Z BOSSEM)
  1150.  
  1151.                             }
  1152.                         }
  1153.                     }
  1154.                     else
  1155.                     {
  1156.                         cout << "Posiadasz za malo punktow akcji na wykonanie tej czynnosci" << endl;
  1157.                         ilosc_akcji = true;
  1158.                         break;
  1159.                     }
  1160.                 }
  1161.                 //----------------------------------------------------------------Akcja3----------------------------------------------------------------//
  1162.                 if (akcja == 3)
  1163.                 {
  1164.                     ilosc_akcji = true;
  1165.                     koniec_tury = true;
  1166.                 }
  1167.  
  1168.  
  1169.             }
  1170.             cout << "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" << endl;
  1171.             system("PAUSE");
  1172.         }
  1173.         if (koniec_gry == false)
  1174.         {
  1175.             ubyte_tury++;
  1176.             cout << "******************" << endl;
  1177.             cout << "* Koniec " << ubyte_tury << " tury! *" << endl;
  1178.             cout << "******************" << endl;
  1179.             cout << "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" << endl;
  1180.             system("PAUSE");
  1181.         }
  1182.         using namespace kontrola_rozgrywki;
  1183.         dane danekontroli;
  1184.         if (ubyte_tury >= danekontroli.liczba_tur)
  1185.         {
  1186.             //---------------------------------------------------------Negatywne zakonecznie nr.2-------------------------------------------------------//
  1187.             koniec_rozgrywki2();
  1188.             koniec_gry = true;
  1189.         }
  1190.     }
  1191.     return 0;
  1192. }
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