Advertisement
Guest User

Untitled

a guest
Apr 26th, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 31.63 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. ~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. system("CLS");
  888. cout << "WITAJ: ";
  889.  
  890. cout << bohater::zwroc() << endl;
  891. cout << *maciej.getWynik() << endl; // zrobiłem ci jakeigoś bohatera macieja i jego wynik i lv ci to będzie wyswietlało
  892. // to przykładowo że np zdobywa jakies punkty i jakiś lv ma i wyswietla ci to
  893. //punkty możesz za cos tam dodać
  894.  
  895.  
  896. skills brak("BRAK", 99999, 0);
  897. skills kula_ognia("kula ognia", 20, 30);
  898. skills blyskawica("blyskawica", 10, 25);
  899. skills regeneracja_wytrzymalosci("regeneracja wytrzymalosci", 30, 0, 20);
  900.  
  901. Nekromanci* nek1 = new Nekromanci(100, 5, 2);
  902. Nekromanci* nek2 = new Nekromanci(*nek1);
  903.  
  904. delete nek1;
  905. delete nek2;
  906.  
  907.  
  908. pojemnik** p;
  909. stworz(p, si, brak);
  910. p[0]->changeSkill(&kula_ognia);
  911. /*wyswietl(p, si);
  912. cout << endl;
  913. zwieksz(p, si, brak);
  914. wyswietl(p, si);
  915. cout << endl;
  916. zmniejsz(p, si, brak);
  917. wyswietl(p, si);
  918. cout << endl;
  919. zwieksz(p, si, brak);
  920. wyswietl(p, si);
  921. cout << endl;
  922. zwieksz(p, si, brak);
  923. wyswietl(p, si);
  924. cout << endl;
  925. zwieksz(p, si, brak);
  926. wyswietl(p, si);
  927. cout << endl;*/
  928.  
  929.  
  930. bohater postac;
  931. postac.stworz_postac();
  932.  
  933.  
  934.  
  935. /*string name;
  936. name = postac.getName();
  937. cout << name << endl;
  938.  
  939. cout << "Podaj name swojej bohaterki" << endl;
  940. cin >> name;
  941. postac.changeName(name);
  942.  
  943. cout << name << endl;*/
  944.  
  945. srand(int(time(NULL)));
  946. //-------------------------------------------Wprowadzenie------------------------------------------------//
  947. cout << "|___WITAJ W GRZE___XXXXX____!|" << endl;
  948. cout << "Przejmiesz wkrotce kontrole nad swoja postacja" << endl;
  949. cout << "Wcielisz sie w 16 letnia dziewczyne, ktorej cala wioska zostala najechana i spalona" << endl;
  950. cout << "przez zamaskowanych oprawcow. Jestes jedyna osoba, ktorej udalo sie wyjsc z tego calo" << endl;
  951. cout << "jednak nasza bohaterka zostala zraniona zatruta strzala" << endl;
  952. cout << "zeby wiedziec co za toksyna wyniszcza jej organizm, musi wycignac ta informacje od zamaskowanych oprawcow," << endl;
  953. cout << "wiec nie liczac roznych przeciwnosci losu, bedziesz musial dodatkowo walczyc z czasem." << endl;
  954. cout << "Aby pomscic najblizszych i uratowac swoje zycie" << endl;
  955. cout << endl;
  956. cout << "Zeby wygrac rozgrywke uzbieraj wymagana ilosc punktow wytrzymalosci,zadawanych obrazen i punktow many" << endl;
  957. cout << "a nastepnie dotrzyj do przeciwnikow zanim trucizna doprowadzi Cie do smierci." << endl;;
  958. system("PAUSE");
  959. cout << endl;
  960.  
  961. ekwipunek plecak;
  962. plecak.stworz_plecak();
  963.  
  964. czyczar zaklecia;
  965. zaklecia.stworz_liste();
  966. zaklecia.kula_ognia = true;
  967. //---------------------------------------------Rozgrywka-----------------------------------------------//
  968. bool koniec_gry = false;
  969. int pokonany_dystans = 0;
  970. int ubyte_tury = 0;
  971. //int liczba_tur = 5;
  972. while (koniec_gry == false)
  973. {
  974. bool koniec_tury = false;
  975. postac.punkty_akcji = 100;
  976. while ((postac.punkty_akcji >= 10) && (koniec_tury == false))
  977. {
  978. int akcja = 0;
  979. cout << "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" << endl;
  980. cout << "Statystyki postaci: " << " ";
  981. cout << "Zawartosc plecaka:" << " " << "Umiejetnosci specjalne:" << endl;
  982. cout << "punkty wytrzymalosci = " << postac.punkty_wytrzymalosci << "/200 ";
  983. cout << "zbroja = " << plecak.zbroja << " ";
  984. cout << "kula ognia = " << zaklecia.kula_ognia << endl;
  985. cout << "punkty many = " << postac.punkty_many << "/150 ";
  986. cout << "helm = " << plecak.helm << " ";
  987. cout << "regeneracja wytrzymalosci = " << zaklecia.regeneracja_wytrzymalosci << endl;
  988. cout << "zadawane obrazenia = " << postac.zadawane_obrazenia << "/100 ";
  989. cout << "buty = " << plecak.buty << " ";
  990. cout << "blyskawica = " << zaklecia.blyskawica << endl;
  991. cout << " " << " ";
  992. cout << "jedzenie= " << plecak.jedzenie << endl;
  993. cout << " mikstury many = " << plecak.mikstura_many << endl;
  994. cout << " zloto = " << plecak.zloto << endl << endl;
  995. cout << "Ksiegi z zakleciami, pozwalaja nam one nauczyc sie nowych zaklec, jesli ktoras z nich jest wolna" << endl;
  996. wyswietl(p, si);
  997. cout << endl;
  998. int dystans = 25;
  999. int liczba_tur = 5;
  1000. cout << endl;
  1001. cout << "Pozostaly dystans do spotkania z oprawcami (skracac mozna za pomoca kostki przemieszczania sie) = " << dystans - pokonany_dystans << endl;
  1002. cout << "Pozostala ilosc tur do smierci na wskutek dzialania trucizny = " << liczba_tur - ubyte_tury << endl;
  1003. cout << "Pozostale punkty akcji w turze = " << postac.punkty_akcji << endl << endl;
  1004. cout << "Akcje (wpisz odpowiadajacy numer):" << endl;
  1005. cout << "1. Kulaj kostka losowych zdarzen (-10 punktow akcji)" << endl;
  1006. cout << "2. Kulaj kostka przemieszczania sie(-20 punktow akcji)" << endl;
  1007. cout << "3. Zrezygnuj z podejmowania jakichkolwiek akcji i zakoncz ture (punkty akcji nie sumuja sie po zakonczeniu tury)" << endl;
  1008. cin >> akcja;
  1009. bool ilosc_akcji = false;
  1010. while (ilosc_akcji == false)
  1011. {
  1012. //---------------------------------------------------------Akcja1-------------------------------------------------------//
  1013. if (akcja == 1)
  1014. {
  1015. if (postac.punkty_akcji >= 10)
  1016. {
  1017. int losowe;
  1018. postac.punkty_akcji = postac.punkty_akcji - 10;
  1019. losowe = losowe_zdarzenie();
  1020. {
  1021. switch (losowe)
  1022. {
  1023. case 1:
  1024. otwieranie_skrzynki(postac, plecak, zaklecia);
  1025. break;
  1026.  
  1027. case 2:
  1028. handel(postac, plecak, zaklecia);
  1029. break;
  1030.  
  1031. case 3:
  1032. int rezultat;
  1033. rezultat = student();
  1034. if (rezultat == 1)
  1035. {
  1036. plecak.mikstura_many = plecak.mikstura_many + 1;
  1037. postac.punkty_many = postac.punkty_many + 30;
  1038. }
  1039. break;
  1040.  
  1041. case 4:
  1042. {
  1043. bool czyzagrac = false;
  1044.  
  1045. if (plecak.zloto >= 10)
  1046. {
  1047. while ((czyzagrac == false) && (plecak.zloto >= 10))
  1048. {
  1049. int ilosc_graczy = 0;
  1050. int wygrana = 0;
  1051. cout << "Ilu graczy chcesz zaprosic do turnieju?" << endl;
  1052. cin >> ilosc_graczy;
  1053. wygrana = turniej_w_kosci(ilosc_graczy);
  1054. if (wygrana == 0)
  1055. {
  1056. plecak.zloto = plecak.zloto - 10;
  1057. cout << "Straciles 10 sztuk zlota" << endl;
  1058. }
  1059. else
  1060. {
  1061. int dodosoby;
  1062. cout << "Ile dodatkowych osob dolaczylo do Ciebie podczas gry? (podaj liczbe)" << endl;
  1063. cin >> dodosoby;
  1064. cout << "Wygrales!" << endl << "Zarobiles " << (10 * ilosc_graczy) + (10 * dodosoby) << " sztuk zlota!" << endl << endl;
  1065. plecak.zloto = plecak.zloto + (10 * ilosc_graczy);
  1066. }
  1067. bool kolejnapetla = false;
  1068. while (kolejnapetla == false)
  1069. {
  1070. int pytanie = 0;
  1071. cout << "Czy chcesz zagrac ponownie?" << endl;
  1072. cout << "1. Tak" << endl;
  1073. cout << "2. Nie" << endl << endl;
  1074. cin >> pytanie;
  1075. if (pytanie == 1)
  1076. {
  1077. czyzagrac = false;
  1078. kolejnapetla = true;
  1079. }
  1080. if (pytanie == 2)
  1081. {
  1082. czyzagrac = true;
  1083. kolejnapetla = true;
  1084. }
  1085. if ((pytanie != 1) && (pytanie != 2))
  1086. {
  1087. cout << "Zla liczba - musisz wybrac miedzy opcja numer 1 i 2" << endl;
  1088. kolejnapetla = false;
  1089. }
  1090. }
  1091. }
  1092. }
  1093. if (plecak.zloto < 10)
  1094. {
  1095. cout << "Nie posiadasz wystarczajaco zlota zeby postawic zaklad" << endl;
  1096. }
  1097. }
  1098. break;
  1099. case 5:
  1100.  
  1101. walka_bandyta(postac, plecak, zaklecia);
  1102. break;
  1103.  
  1104. case 6:
  1105. if (plecak.zloto >= 30)
  1106. {
  1107. cout << "Zdecydowales sie zaplacic, tracisz 30 sztuk zlota" << endl;
  1108. plecak.zloto = plecak.zloto - 30;
  1109. }
  1110. else
  1111. {
  1112. cout << "Nie posiadasz wystarczajaco duzo zlota, musisz stanac do walki" << endl << endl;
  1113. walka_bandyta(postac, plecak, zaklecia);
  1114. }
  1115. break;
  1116. case 7:
  1117. zwieksz(p, si, brak);
  1118. }
  1119. ilosc_akcji = true;
  1120. }
  1121. }
  1122. else
  1123. {
  1124. cout << "Posiadasz za malo punktow akcji na wykonanie tej czynnosci" << endl;
  1125. break;
  1126. }
  1127. }
  1128. //---------------------------------------------------------Akcja2-------------------------------------------------------//
  1129. if (akcja == 2)
  1130. {
  1131. if (postac.punkty_akcji >= 20)
  1132. {
  1133. int odleglosc = 0;
  1134. odleglosc = losowa_kostka();
  1135. cout << "Pokonany dystans = " << odleglosc << endl;
  1136. pokonany_dystans = pokonany_dystans + odleglosc;
  1137. postac.punkty_akcji = postac.punkty_akcji - 20;
  1138. ilosc_akcji = true;
  1139. using namespace kontrola_rozgrywki;
  1140. dane danekontroli;
  1141. if (pokonany_dystans >= danekontroli.odleglosc)
  1142. {
  1143. koniec_tury = true;
  1144. if ((postac.punkty_wytrzymalosci < 200) || (postac.punkty_many < 150) || (postac.zadawane_obrazenia < 100))
  1145. {
  1146. //---------------------------------------------------------Negatywne zakonczenie nr.1-------------------------------------------------------//
  1147. koniec_rozgrywki1();
  1148. koniec_gry = true;
  1149. }
  1150. else
  1151. {
  1152. //---------------------------------------------------------Pozytywne zakonczenie pierwszego etapu-------------------------------------------------------//
  1153. //JESLI GRACZ DA RADE UZBIERAC WSZYSTKIE WYMAGAJACE UMIEJETNOSCI I WYROBI SIE Z DOTARCIEM DO WROGOW (POZYTYWNE ZAKONCZENIE EW.WALKA Z BOSSEM)
  1154.  
  1155. }
  1156. }
  1157. }
  1158. else
  1159. {
  1160. cout << "Posiadasz za malo punktow akcji na wykonanie tej czynnosci" << endl;
  1161. ilosc_akcji = true;
  1162. break;
  1163. }
  1164. }
  1165. //----------------------------------------------------------------Akcja3----------------------------------------------------------------//
  1166. if (akcja == 3)
  1167. {
  1168. ilosc_akcji = true;
  1169. koniec_tury = true;
  1170. }
  1171.  
  1172.  
  1173. }
  1174. cout << "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" << endl;
  1175. system("PAUSE");
  1176. }
  1177. if (koniec_gry == false)
  1178. {
  1179. ubyte_tury++;
  1180. cout << "******************" << endl;
  1181. cout << "* Koniec " << ubyte_tury << " tury! *" << endl;
  1182. cout << "******************" << endl;
  1183. cout << "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" << endl;
  1184. system("PAUSE");
  1185. }
  1186. using namespace kontrola_rozgrywki;
  1187. dane danekontroli;
  1188. if (ubyte_tury >= danekontroli.liczba_tur)
  1189. {
  1190. //---------------------------------------------------------Negatywne zakonecznie nr.2-------------------------------------------------------//
  1191. koniec_rozgrywki2();
  1192. koniec_gry = true;
  1193. }
  1194. }
  1195. return 0;
  1196. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement