Advertisement
Guest User

Untitled

a guest
Apr 26th, 2019
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 31.99 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement