Advertisement
Guest User

Untitled

a guest
Dec 10th, 2019
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.83 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <windows.h>
  4. #include <time.h>
  5. #include <conio.h>
  6. #include <stdio.h>
  7. #include <stdlib.h>
  8. #include <fstream>
  9. #include <string>
  10. #include <sstream>
  11. #include <cstdio>
  12.  
  13. using namespace std;
  14.  
  15. int szerokosc = 25, wysokosc = 25;
  16. int ruchX, ruchY, pktX = szerokosc + 4, pktY = wysokosc / 2 + 5, strzalX, strzalY;
  17. int punkt_zbieranie, punkt_strzelanie, rekord_zbieranie, rekord_strzelanie;
  18. int poziom_trudnosci = 800, magazynek = 10;
  19. bool g_z = false, g_s = false, g_n = false, pocisk = false;
  20. char c;
  21.  
  22. void wspolrzedne(int x, int y)
  23. {
  24. COORD coord;
  25. coord.X = x;
  26. coord.Y = y;
  27. SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
  28. }
  29.  
  30. void rysowanie_mapy()
  31. {
  32. wspolrzedne(5, 3);
  33. cout << char(201);
  34. for (int a = 3; a <= szerokosc; a++)
  35. cout << char(205) << char(205);
  36. cout << char(187);
  37. for (int b = 2; b <= wysokosc; b++)
  38. {
  39. wspolrzedne(5, 4);
  40. cout << char(186);
  41. for (int c = 3; c <= szerokosc; c++)
  42. cout << " ";
  43. cout << char(186) << endl;
  44. }
  45.  
  46. wspolrzedne(5, 5);
  47. cout << char(204);
  48. for (int a = 3; a <= szerokosc; a++)
  49. cout << char(205) << char(205);
  50. cout << char(185) << endl;
  51.  
  52. for (int b = 2; b <= wysokosc; b++)
  53. {
  54. wspolrzedne(5, 4 + b);
  55. cout << char(186);
  56. for (int c = 3; c <= szerokosc; c++)
  57. cout << " ";
  58. cout << char(186) << endl;
  59. }
  60.  
  61. wspolrzedne(5, wysokosc + 5);
  62. cout << char(200);
  63. for (int a = 3; a <= szerokosc; a++)
  64. cout << char(205) << char(205);
  65. cout << char(188) << endl;
  66. }
  67.  
  68. void ruch_punktu()
  69. {
  70. int kierunek_punktu;
  71. system("color 10");
  72.  
  73. kierunek_punktu = rand() % 4 + 1;
  74.  
  75. if (kierunek_punktu == 1)
  76. {
  77. if (pktY > 6)
  78. {
  79. wspolrzedne(pktX, pktY);
  80. cout << " ";
  81. pktY--;
  82. wspolrzedne(pktX, pktY);
  83. cout << char(158);
  84. }
  85. else
  86. {
  87. wspolrzedne(pktX, pktY);
  88. cout << " ";
  89. pktY++;
  90. wspolrzedne(pktX, pktY);
  91. cout << char(158);
  92. }
  93. }
  94. else if (kierunek_punktu == 2)
  95. {
  96. if (pktY < (wysokosc - 1 + 5))
  97. {
  98. wspolrzedne(pktX, pktY);
  99. cout << " ";
  100. pktY++;
  101. wspolrzedne(pktX, pktY);
  102. cout << char(158);
  103. }
  104. else
  105. {
  106. wspolrzedne(pktX, pktY);
  107. cout << " ";
  108. pktY--;
  109. wspolrzedne(pktX, pktY);
  110. cout << char(158);
  111. }
  112. }
  113. else if (kierunek_punktu == 3)
  114. {
  115. if (pktX > 6)
  116. {
  117. wspolrzedne(pktX, pktY);
  118. cout << " ";
  119. pktX--;
  120. wspolrzedne(pktX, pktY);
  121. cout << char(158);
  122. }
  123. else
  124. {
  125. wspolrzedne(pktX, pktY);
  126. cout << " ";
  127. pktX++;
  128. wspolrzedne(pktX, pktY);
  129. cout << char(158);
  130. }
  131. }
  132. else if (kierunek_punktu == 4)
  133. {
  134. if (pktX < (szerokosc * 2 - 4 + 5))
  135. {
  136. wspolrzedne(pktX, pktY);
  137. cout << " ";
  138. pktX++;
  139. wspolrzedne(pktX, pktY);
  140. cout << char(158);
  141. }
  142. else
  143. {
  144. wspolrzedne(pktX, pktY);
  145. cout << " ";
  146. pktX--;
  147. wspolrzedne(pktX, pktY);
  148. cout << char(158);
  149. }
  150. }
  151. }
  152.  
  153. void ruch_punktu_g_s()
  154. {
  155. int kierunek_puntu;
  156. system("color 5");
  157.  
  158. kierunek_puntu = rand() % 2 + 1;
  159.  
  160. if (kierunek_puntu == 1)
  161. {
  162. if (pktX > 6)
  163. {
  164. wspolrzedne(pktX, pktY);
  165. cout << " ";
  166. pktX--;
  167. wspolrzedne(pktX, pktY);
  168. cout << char(158);
  169. }
  170. else
  171. {
  172. wspolrzedne(pktX, pktY);
  173. cout << " ";
  174. pktX++;
  175. wspolrzedne(pktX, pktY);
  176. cout << char(158);
  177. }
  178. }
  179. else if (kierunek_puntu == 2)
  180. {
  181. if (pktX < (szerokosc * 2 - 4 + 5))
  182. {
  183. wspolrzedne(pktX, pktY);
  184. cout << " ";
  185. pktX++;
  186. wspolrzedne(pktX, pktY);
  187. cout << char(158);
  188. }
  189. else
  190. {
  191. wspolrzedne(pktX, pktY);
  192. cout << " ";
  193. pktX--;
  194. wspolrzedne(pktX, pktY);
  195. cout << char(158);
  196. }
  197. }
  198. }
  199.  
  200. void ruch_punktu_g_n()
  201. {
  202. int kierunek_puntu;
  203. system("color 5");
  204.  
  205.  
  206. }
  207.  
  208. void ruch_pocisku()
  209. {
  210. system("color 7");
  211. wspolrzedne(strzalX, strzalY);
  212. cout << " ";
  213.  
  214. strzalY--;
  215.  
  216. wspolrzedne(strzalX, strzalY);
  217. cout << char(193);
  218.  
  219. if (strzalY == 6)
  220. {
  221. pocisk = false;
  222. wspolrzedne(strzalX, strzalY);
  223. cout << " ";
  224. }
  225. }
  226.  
  227. void punkty()
  228. {
  229. if ((ruchX == pktX) && (ruchY == pktY))
  230. {
  231. if (g_z == true)
  232. punkt_zbieranie++;
  233.  
  234. system("color 10");
  235. wspolrzedne(14, 4);
  236. cout << punkt_zbieranie;
  237.  
  238. system("color 5");
  239. ;
  240. if (g_z == true)
  241. {
  242. pktX = rand() % (szerokosc * 2 - 4) + 6;
  243. pktY = rand() % (wysokosc - 1) + 6;
  244. wspolrzedne(pktX, pktY);
  245. cout << char(158);
  246. }
  247. }
  248. else if ((pktX == strzalX) && (pktY == strzalY))
  249. {
  250. punkt_strzelanie++;
  251. if (magazynek < 9)
  252. magazynek += 2;
  253. else if(magazynek == 9) magazynek++;
  254.  
  255. system("color 10");
  256. wspolrzedne(28, 4);
  257. cout << " ";
  258. wspolrzedne(28, 4);
  259. cout << magazynek;
  260. wspolrzedne(14, 4);
  261. cout << punkt_strzelanie;
  262.  
  263. system("color 5");
  264. pocisk = false;
  265. wspolrzedne(strzalX, strzalY);
  266. cout << " ";
  267. pktX = rand() % (szerokosc * 2 - 4) + 6;
  268. pktY = rand() % (wysokosc - 2) + 6;
  269. wspolrzedne(pktX, pktY);
  270. cout << char(158);
  271. }
  272. }
  273.  
  274. void ruch()
  275. {
  276. if (g_z == true)
  277. {
  278. if (c == 'w')
  279. {
  280. if (ruchY > 6)
  281. ruchY--;
  282. }
  283. else if (c == 's')
  284. {
  285. if (ruchY < (wysokosc - 1 + 5))
  286. ruchY++;
  287. }
  288. else if (c == 'a')
  289. {
  290. if (ruchX > 6)
  291. ruchX--;
  292. }
  293. else if (c == 'd')
  294. {
  295. if (ruchX < (szerokosc * 2 - 4 + 5))
  296. ruchX++;
  297. }
  298. }
  299. else if (g_s == true)
  300. {
  301. if (c == 'a')
  302. {
  303. if (ruchX > 6)
  304. ruchX--;
  305. }
  306. else if (c == 'd')
  307. {
  308. if (ruchX < (szerokosc * 2 - 4 + 5))
  309. ruchX++;
  310. }
  311. else if (c == 'w')
  312. {
  313. if (pocisk == true)
  314. cout;
  315. else
  316. {
  317. pocisk = true;
  318. magazynek--;
  319. strzalX = ruchX;
  320. strzalY = ruchY - 1;
  321.  
  322. wspolrzedne(28, 4);
  323. cout << " ";
  324. wspolrzedne(28, 4);
  325. cout << magazynek;
  326. }
  327. }
  328. }
  329. }
  330.  
  331. void gra_strzelanie()
  332. {
  333. int odswiezanie = 0, odswiezanie_s = 0;
  334.  
  335. system("cls");
  336. g_s = true;
  337.  
  338. ruchX = rand() % (szerokosc * 2 - 4) + 6;
  339. ruchY = wysokosc + 4;
  340.  
  341. rysowanie_mapy();
  342. system("color 10");
  343. wspolrzedne(szerokosc * 2 - 11, 4);
  344. cout << "Menu = ENTER";
  345. wspolrzedne(7, 4);
  346. cout << "Wynik: ";
  347. wspolrzedne(17, 4);
  348. cout << "Magazynek: ";
  349. wspolrzedne(28, 4);
  350. cout << magazynek;
  351. wspolrzedne(14, 4);
  352. cout << punkt_strzelanie;
  353.  
  354. system("color 5");
  355. wspolrzedne(pktX, pktY);
  356. cout << char(158);
  357.  
  358. while (c != char(13))
  359. {
  360. odswiezanie++;
  361. odswiezanie_s++;
  362.  
  363. if (odswiezanie_s == 200)
  364. {
  365. odswiezanie_s = 0;
  366. if (pocisk == true)
  367. {
  368. ruch_pocisku();
  369. }
  370. }
  371. if (odswiezanie == poziom_trudnosci)
  372. {
  373. odswiezanie = 0;
  374. ruch_punktu_g_s();
  375. }
  376.  
  377. if (magazynek == 0 && pocisk == false)
  378. {
  379. if (rekord_strzelanie < punkt_strzelanie)
  380. rekord_strzelanie = punkt_strzelanie;
  381. punkt_strzelanie = 0;
  382. magazynek = 10;
  383. break;
  384. }
  385.  
  386. punkty();
  387. system("color 10");
  388. wspolrzedne(ruchX, ruchY);
  389. cout << char(254);
  390.  
  391. if (_kbhit())
  392. {
  393. c = getch();
  394. wspolrzedne(ruchX, ruchY);
  395. cout << " ";
  396. ruch();
  397. }
  398. }
  399.  
  400. system("cls");
  401. g_s = false;
  402. }
  403.  
  404. void gra_nowy()
  405. {
  406. int odswiezanie = 0;
  407.  
  408. system("cls");
  409. g_n = true;
  410.  
  411. ruchX = rand() % (szerokosc * 2 - 4) + 6;
  412. ruchY = rand() % (wysokosc - 1) + 6;
  413. if ((ruchX == pktX) && (ruchY == pktY))
  414. {
  415. ruchX--;
  416. ruchY--;
  417. }
  418.  
  419. rysowanie_mapy();
  420. system("color 10");
  421. wspolrzedne(szerokosc * 2 - 11, 4);
  422. cout << "Menu = ENTER";
  423. wspolrzedne(7, 4);
  424. cout << "Wynik: ";
  425. wspolrzedne(14, 4);
  426. cout << punkt_zbieranie;
  427.  
  428. system("color 5");
  429. wspolrzedne(pktX, pktY);
  430. cout << char(158);
  431.  
  432. while (c != char(13))
  433. {
  434. odswiezanie++;
  435. if (odswiezanie == poziom_trudnosci)
  436. {
  437. odswiezanie = 0;
  438. ruch_punktu_g_n();
  439. }
  440.  
  441. punkty();
  442. system("color 10");
  443. wspolrzedne(ruchX, ruchY);
  444. cout << char(254);
  445.  
  446. if (_kbhit())
  447. {
  448. c = getch();
  449. wspolrzedne(ruchX, ruchY);
  450. cout << " ";
  451. ruch();
  452. }
  453. }
  454.  
  455. system("cls");
  456. g_n = false;
  457. }
  458.  
  459. void gra_zbieranie()
  460. {
  461. int odswiezanie = 0;
  462.  
  463. system("cls");
  464. g_z = true;
  465.  
  466. ;
  467. ruchX = rand() % (szerokosc * 2 - 4) + 6;
  468. ruchY = rand() % (wysokosc - 1) + 6;
  469. if ((ruchX == pktX) && (ruchY == pktY))
  470. {
  471. ruchX--;
  472. ruchY--;
  473. }
  474.  
  475. rysowanie_mapy();
  476. system("color 10");
  477. wspolrzedne(szerokosc * 2 - 11, 4);
  478. cout << "Menu = ENTER";
  479. wspolrzedne(7, 4);
  480. cout << "Wynik: ";
  481. wspolrzedne(14, 4);
  482. cout << punkt_zbieranie;
  483.  
  484. system("color 5");
  485. wspolrzedne(pktX, pktY);
  486. cout << char(158);
  487.  
  488. while (c != char(13))
  489. {
  490. odswiezanie++;
  491. if (odswiezanie == poziom_trudnosci)
  492. {
  493. odswiezanie = 0;
  494. ruch_punktu();
  495. }
  496.  
  497. punkty();
  498. system("color 10");
  499. wspolrzedne(ruchX, ruchY);
  500. cout << char(254);
  501.  
  502. if (_kbhit())
  503. {
  504. c = getch();
  505. wspolrzedne(ruchX, ruchY);
  506. cout << " ";
  507. ruch();
  508. }
  509. }
  510.  
  511. system("cls");
  512. g_z = false;
  513. if (rekord_zbieranie < punkt_zbieranie)
  514. rekord_zbieranie = punkt_zbieranie;
  515. }
  516.  
  517. void ustawienia()
  518. {
  519. string ustawienia_wybor;
  520. int wybor_szerokosci, wybor_wysokosci;
  521.  
  522. system("cls");
  523. cout << "USTAWIENIA" << endl;
  524. cout << "1. Zmien rozmiar mapy" << endl;
  525. cout << "2. Zmien poziom trudnosci" << endl;
  526. cout << "3. Wyczysc rekordy" << endl;
  527. cout << "4. Wyjdz do menu" << endl;
  528. cout << "> ";
  529. cin >> ustawienia_wybor;
  530.  
  531. if (ustawienia_wybor == "1")
  532. {
  533. system("cls");
  534. cout << "(Zakres 25-35) Zmien szerokosc z '" << szerokosc << "' na: ";
  535. cin >> wybor_szerokosci;
  536. cout << "(Zakres 25-35) Zmien wysokosc z '" << wysokosc << "' na: ";
  537. cin >> wybor_wysokosci;
  538.  
  539. if ((wybor_szerokosci > 35 || wybor_szerokosci < 25) || (wybor_wysokosci > 35 || wybor_wysokosci < 25))
  540. {
  541. cout << endl
  542. << "Zla wartosc!" << endl;
  543. Sleep(500);
  544. system("cls");
  545. ustawienia();
  546. }
  547. else
  548. {
  549. szerokosc = wybor_szerokosci;
  550. wysokosc = wybor_wysokosci;
  551. }
  552.  
  553. cout << endl
  554. << "Pomyslnie zmieniono rozmiar mapy!" << endl;
  555. Sleep(500);
  556. ustawienia();
  557. }
  558. else if (ustawienia_wybor == "2")
  559. {
  560. string poziom_trudnosci_wybor;
  561.  
  562. system("cls");
  563. cout << "1. Latwy";
  564. if (poziom_trudnosci == 800)
  565. cout << " <- WYBRANY" << endl;
  566. else
  567. cout << endl;
  568. cout << "2. Sredni";
  569. if (poziom_trudnosci == 600)
  570. cout << " <- WYBRANY" << endl;
  571. else
  572. cout << endl;
  573. cout << "3. Trudny";
  574. if (poziom_trudnosci == 400)
  575. cout << " <- WYBRANY" << endl;
  576. else
  577. cout << endl;
  578. cout << "> ";
  579. cin >> poziom_trudnosci_wybor;
  580.  
  581. if (poziom_trudnosci_wybor == "1")
  582. poziom_trudnosci = 800;
  583. else if (poziom_trudnosci_wybor == "2")
  584. poziom_trudnosci = 600;
  585. else if (poziom_trudnosci_wybor == "3")
  586. poziom_trudnosci = 400;
  587. else
  588. {
  589. cout << endl
  590. << "Nie ma takiej opcji!" << endl;
  591. Sleep(500);
  592. system("cls");
  593. ustawienia();
  594. }
  595. }
  596. else if(ustawienia_wybor == "3"){
  597. rekord_strzelanie = 0;
  598. rekord_zbieranie = 0;
  599. system("cls");
  600. cout<<"Pomyslnie wyczyszczono rekordy!"<<endl;
  601. Sleep(500);
  602. system("cls");
  603. }
  604. else if (ustawienia_wybor == "4")
  605. {
  606. system("cls");
  607. }
  608. else
  609. {
  610. cout << endl
  611. << "Nie ma takiej opcji!" << endl;
  612. Sleep(500);
  613. system("cls");
  614. ustawienia();
  615. }
  616. }
  617.  
  618. void jak_grac()
  619. {
  620. string jak_grac_wybor;
  621.  
  622. system("cls");
  623. cout << " - - - JAK GRAC? - - - " << endl;
  624. cout << "1. Ruch" << endl;
  625. cout << "2. Wyjdz" << endl;
  626. cout << "> ";
  627. cin >> jak_grac_wybor;
  628.  
  629. if (jak_grac_wybor == "1")
  630. {
  631. system("cls");
  632. cout << "Wyjscie z gry do menu - 'ENTER'" << endl;
  633. cout << "Gora - 'W'" << endl;
  634. cout << "Dol - 'S'" << endl;
  635. cout << "Lewo - 'A'" << endl;
  636. cout << "Prawo - 'D'" << endl;
  637. cout << endl;
  638. cout << "Wcisnij dowolny klawisz aby wyjsc do menu" << endl;
  639. getch();
  640. system("cls");
  641. }
  642. else if (jak_grac_wybor == "2")
  643. {
  644. system("cls");
  645. }
  646. else
  647. {
  648. cout << endl
  649. << "Nie ma takiej opcji!" << endl;
  650. Sleep(500);
  651. system("cls");
  652. jak_grac();
  653. }
  654. }
  655.  
  656. void rekordy()
  657. {
  658. system("cls");
  659. cout<<" - - - REKORDY - - - "<<endl;
  660. cout<<"Rekord w zbieraniu: "<<rekord_zbieranie<<endl;
  661. cout<<"Rekord w strzaleniu: "<<rekord_strzelanie<<endl;
  662. cout<<endl;
  663. cout<<"Wcisnij dowolny klawisz aby wyjsc do menu"<<endl;
  664.  
  665. getch();
  666. system("cls");
  667. }
  668.  
  669. void menu()
  670. {
  671. for (;;)
  672. {
  673. string menu_wybor;
  674.  
  675. c = char(178);
  676. system("cls");
  677.  
  678. system("color 6");
  679. cout << " - - - Witaj! - - - " << endl;
  680. cout << "1. Gra - zbieranie" << endl;
  681. cout << "2. Gra - strzelanie" << endl;
  682. cout << "3. Rekordy" << endl;
  683. cout << "4. Jak grac?" << endl;
  684. cout << "5. Ustawienia" << endl;
  685. cout << "6. Wyjdz" << endl;
  686. cout << "> ";
  687. cin >> menu_wybor;
  688.  
  689. if (menu_wybor == "1")
  690. gra_zbieranie();
  691. else if (menu_wybor == "2")
  692. gra_strzelanie();
  693. else if (menu_wybor == "3")
  694. rekordy();
  695. else if (menu_wybor == "4")
  696. jak_grac();
  697. else if (menu_wybor == "5")
  698. ustawienia();
  699. else if (menu_wybor == "6")
  700. {
  701. system("cls");
  702. break;
  703. }
  704. else
  705. {
  706. cout << endl
  707. << "Nie ma takiej opcji!" << endl;
  708. Sleep(500);
  709. system("cls");
  710. menu();
  711. }
  712. }
  713. }
  714.  
  715. int main()
  716. {
  717. fstream rekordy;
  718. string linia;
  719. int numer_linii=1;
  720.  
  721. rekordy.open("rekordy.txt", ios::in);
  722. if(rekordy.good() == false){
  723. rekordy.open("rekordy.txt", ios::out);
  724. rekordy.close();
  725. }
  726. else{
  727. while(getline(rekordy, linia)){
  728. switch(numer_linii){
  729. case 1: rekord_zbieranie = atoi(linia.c_str()); break;
  730. case 2: rekord_strzelanie = atoi(linia.c_str()); break;
  731. }
  732.  
  733. numer_linii++;
  734. }
  735. }
  736. rekordy.close();
  737.  
  738. srand(time(NULL));
  739.  
  740. menu();
  741.  
  742. rekordy.open("rekordy.txt", ios::out);
  743. rekordy << rekord_zbieranie << endl;
  744. rekordy << rekord_strzelanie << endl;
  745. rekordy.close();
  746.  
  747. return 0;
  748. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement