Guest User

Untitled

a guest
Nov 16th, 2018
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.49 KB | None | 0 0
  1. #include <iostream>
  2. #include <Windows.h>
  3. #include <string>
  4. #include <cstdio>
  5. #include <conio.h>
  6. #include <cstdlib>
  7.  
  8. using namespace std;
  9.  
  10. #define WIDTH 80
  11. #define HEIGHT 25
  12. #define MAPW 10
  13. #define MAPH 4
  14.  
  15. struct PLAYER
  16. {
  17. int x,y;
  18. bool strzal;
  19. int sx, sy;
  20. unsigned int pkt;
  21. unsigned int lvl;
  22.  
  23. PLAYER():x(40),y(25), sx(0),sy(0),strzal(false),pkt(0),lvl(0)
  24. {
  25. }
  26. }player;
  27.  
  28. int status = 0;
  29.  
  30. float mx = 0;
  31. float my = 2;
  32. bool mr = true;
  33. float speed = 0.2;
  34. bool map[MAPW][MAPH];
  35.  
  36. void gotoxy(int x, int y)
  37. {
  38. COORD coord;
  39. coord.X = x;
  40. coord.Y = y;
  41. SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
  42. }
  43. void drawplayer(int x, int y)
  44. {
  45. gotoxy(x-2,y);
  46. cout << "=|_|=";
  47. }
  48. void drawstrzal(int x, int y)
  49. {
  50. gotoxy(x,y);
  51. cout << (char)193;
  52. }
  53. void drawmap()
  54. {
  55. for( int i = 0; i < MAPW; i ++)
  56. for( int j = 0; j < MAPH; j ++)
  57. if(map[i][j])
  58. {
  59. gotoxy(4 + (int)mx + i*4, my + j*2 + 1);
  60. if( ((int)mx)%2 )
  61. {
  62. cout << (char)176;
  63. }else{
  64. cout << (char)178;
  65. }
  66. }
  67. }
  68. void odliczanie(int o, int d,string l) //odliczania + czyszczenie ekranu
  69. {
  70. gotoxy(o,d);
  71. cout << l;
  72. cout << " za 5...";
  73. Sleep(1000);
  74. gotoxy(o,d);
  75. cout << l;
  76. cout << " za 4...";
  77. Sleep(1000);
  78. gotoxy(o,d);
  79. cout << l;
  80. cout << " za 3...";
  81. Sleep(1000);
  82. gotoxy(o,d);
  83. cout << l;
  84. cout << " za 2...";
  85. Sleep(1000);
  86. gotoxy(o,d);
  87. cout << l;
  88. cout << " za 1...";
  89. Sleep(1000);
  90. system("CLS");
  91. }
  92.  
  93.  
  94. void Render()
  95. {
  96. system("CLS");
  97. drawmap();
  98. drawplayer( player.x, player.y );
  99. if( player.strzal ) drawstrzal( player.sx, player.sy );
  100. gotoxy( 2, 2);
  101. cout << "Wynik:";
  102. cout << player.pkt;
  103. }
  104.  
  105. void Update(int s)
  106. {
  107. bool q = false;
  108. for( int i = 0; i < MAPW; i ++)
  109. for( int j = 0; j < MAPH; j ++)
  110. if( map[i][j] == true )
  111. {
  112. q = true;
  113. break;
  114. }
  115.  
  116. if(q == false) status = 1;
  117.  
  118. if( player.strzal ) player.sy --;
  119. if( player.strzal )
  120. for( int i = 0; i < MAPW; i ++)
  121. for( int j = 0; j < MAPH; j ++)
  122. if( 4 + (int)mx + i*4 == player.sx && my + j*2 == player.sy && map[i][j] == true )
  123. {
  124. map[i][j] = false;
  125. player.strzal = false;
  126. player.pkt += 100;
  127. }
  128.  
  129. if(mr) //Predkosc poruszania sie celow
  130. {
  131. mx += speed+s;
  132. }else{
  133. mx -= speed+s;
  134. }
  135. if( (int)mx > 36 || (int)mx < 0 )
  136. {
  137. mr = !mr;
  138. my ++;
  139. }
  140.  
  141. if( player.x < 3 ) player.x = 3;
  142. if( player.x > WIDTH -4) player.x = WIDTH-4;
  143. if( player.sy < 0 ) player.strzal = false;
  144.  
  145. if( my >= 18 ) status = 2;
  146. }
  147.  
  148. int main()
  149. {
  150. int u,v;
  151. do {
  152. system("CLS");
  153. gotoxy(15,3);
  154. cout << "MENU:";
  155. gotoxy(15,6);
  156. cout << "1.Nowa Gra.";
  157. gotoxy(15,7);
  158. cout << "2.Jak Grac?";
  159. gotoxy(15,8);
  160. cout << "3.Zakoncz.";
  161. u = getch();
  162. }while(48 >= u || u >= 52 );
  163.  
  164. switch(u)
  165. {
  166. case 49:
  167. do{
  168. system("CLS");
  169. gotoxy(15,3);
  170. cout << "Poziom trudnosci:";
  171. gotoxy(15,6);
  172. cout << "1.Latwy.";
  173. gotoxy(15,7);
  174. cout << "2.Sredni.";
  175. gotoxy(15,8);
  176. cout << "3.Trudny.";
  177. gotoxy(15,9);
  178. cout << "4.Nie do przejscia.";
  179. gotoxy(15,10);
  180. cout << "5.Powrot do Menu glownego.";
  181.  
  182. v = getch();
  183. }while(48 >= v || v >= 54 );
  184. switch(v)
  185. {
  186. case 49:
  187. for( int i = 0; i < MAPW; i ++)
  188. for( int j = 0; j < MAPH; j ++)
  189. map[i][j] = true;
  190.  
  191. while (1)
  192. {
  193. if(status != 0)
  194. {
  195. break;
  196. }
  197.  
  198.  
  199. if (GetAsyncKeyState(VK_HOME))
  200. {
  201. system("CLS");
  202. gotoxy(15,3);
  203. cout << "INFO:";
  204. gotoxy(15,6);
  205. cout << "Poruszanie za pomoca Strzalek.";
  206. gotoxy(15,7);
  207. cout << "Strzal za pomoca Spacji.";
  208. gotoxy(15,8);
  209. cout << "Podczas gry przycisk 'HOME' wyswietla INFO.";
  210. gotoxy(15,9);
  211. cout << "Podczas gry przycisk 'SHIFT' pauzuje gre do nacisniecia 'ENTER'.";
  212. gotoxy(15,10);
  213. cout << "Podczas gry przycisk 'ESC' konczy prace programu.";
  214. odliczanie(15,12,"Powrot do gry");
  215. }
  216. if (GetAsyncKeyState(VK_ESCAPE))
  217. {
  218. exit(1);
  219. }
  220. if (GetAsyncKeyState(VK_SHIFT))
  221. {
  222. system("CLS");
  223. gotoxy(18,10);
  224. cout << "PAUZA, aby ponowic gre wcisnij ENTER";
  225.  
  226. getch();
  227.  
  228. while(getch() != 0x0D)
  229. {
  230. gotoxy(18,10);
  231. cout << "PAUZA, aby ponowic gre wcisnij ENTER";
  232.  
  233. getch();
  234. }
  235.  
  236. }
  237. if (GetAsyncKeyState(VK_RIGHT))
  238. {
  239. player.x ++;
  240. }
  241. if (GetAsyncKeyState(VK_LEFT))
  242. {
  243. player.x --;
  244. }
  245. if (GetAsyncKeyState(VK_SPACE))
  246. {
  247. if(player.strzal == false )
  248. {
  249. player.strzal = true;
  250. player.sx = player.x;
  251. player.sy = player.y;
  252. }
  253. }
  254.  
  255. Update(0.3);
  256. Render();
  257. }
  258. break;
  259. case 50:
  260. for( int i = 0; i < MAPW; i ++)
  261. for( int j = 0; j < MAPH; j ++)
  262. map[i][j] = true;
  263.  
  264. while (1)
  265. {
  266. if(status != 0)
  267. {
  268. break;
  269. }
  270.  
  271.  
  272. if (GetAsyncKeyState(VK_HOME))
  273. {
  274. system("CLS");
  275. gotoxy(15,3);
  276. cout << "INFO:";
  277. gotoxy(15,6);
  278. cout << "Poruszanie za pomoca Strzalek.";
  279. gotoxy(15,7);
  280. cout << "Strzal za pomoca Spacji.";
  281. gotoxy(15,8);
  282. cout << "Podczas gry przycisk 'HOME' wyswietla INFO.";
  283. gotoxy(15,9);
  284. cout << "Podczas gry przycisk 'SHIFT' pauzuje gre do nacisniecia 'ENTER'.";
  285. gotoxy(15,10);
  286. cout << "Podczas gry przycisk 'ESC' konczy prace programu.";
  287. odliczanie(15,12,"Powrot do gry");
  288. }
  289. if (GetAsyncKeyState(VK_ESCAPE))
  290. {
  291. exit(1);
  292. }
  293. if (GetAsyncKeyState(VK_SHIFT))
  294. {
  295. system("CLS");
  296. gotoxy(18,10);
  297. cout << "PAUZA, aby ponowic gre wcisnij ENTER";
  298.  
  299. getch();
  300.  
  301. while(getch() != 0x0D)
  302. {
  303. gotoxy(18,10);
  304. cout << "PAUZA, aby ponowic gre wcisnij ENTER";
  305.  
  306. getch();
  307. }
  308.  
  309. }
  310. if (GetAsyncKeyState(VK_RIGHT))
  311. {
  312. player.x ++;
  313. }
  314. if (GetAsyncKeyState(VK_LEFT))
  315. {
  316. player.x --;
  317. }
  318. if (GetAsyncKeyState(VK_SPACE))
  319. {
  320. if(player.strzal == false )
  321. {
  322. player.strzal = true;
  323. player.sx = player.x;
  324. player.sy = player.y;
  325. }
  326. }
  327.  
  328. Update(0.5);
  329. Render();
  330. }
  331. break;
  332. case 51:
  333. for( int i = 0; i < MAPW; i ++)
  334. for( int j = 0; j < MAPH; j ++)
  335. map[i][j] = true;
  336.  
  337. while (1)
  338. {
  339. if(status != 0)
  340. {
  341. break;
  342. }
  343.  
  344.  
  345. if (GetAsyncKeyState(VK_HOME))
  346. {
  347. system("CLS");
  348. gotoxy(15,3);
  349. cout << "INFO:";
  350. gotoxy(15,6);
  351. cout << "Poruszanie za pomoca Strzalek.";
  352. gotoxy(15,7);
  353. cout << "Strzal za pomoca Spacji.";
  354. gotoxy(15,8);
  355. cout << "Podczas gry przycisk 'HOME' wyswietla INFO.";
  356. gotoxy(15,9);
  357. cout << "Podczas gry przycisk 'SHIFT' pauzuje gre do nacisniecia 'ENTER'.";
  358. gotoxy(15,10);
  359. cout << "Podczas gry przycisk 'ESC' konczy prace programu.";
  360. odliczanie(15,12,"Powrot do gry");
  361. }
  362. if (GetAsyncKeyState(VK_ESCAPE))
  363. {
  364. exit(1);
  365. }
  366. if (GetAsyncKeyState(VK_SHIFT))
  367. {
  368. system("CLS");
  369. gotoxy(18,10);
  370. cout << "PAUZA, aby ponowic gre wcisnij ENTER";
  371.  
  372. getch();
  373.  
  374. while(getch() != 0x0D)
  375. {
  376. gotoxy(18,10);
  377. cout << "PAUZA, aby ponowic gre wcisnij ENTER";
  378.  
  379. getch();
  380. }
  381.  
  382. }
  383. if (GetAsyncKeyState(VK_RIGHT))
  384. {
  385. player.x ++;
  386. }
  387. if (GetAsyncKeyState(VK_LEFT))
  388. {
  389. player.x --;
  390. }
  391. if (GetAsyncKeyState(VK_SPACE))
  392. {
  393. if(player.strzal == false )
  394. {
  395. player.strzal = true;
  396. player.sx = player.x;
  397. player.sy = player.y;
  398. }
  399. }
  400.  
  401. Update(0.8);
  402. Render();
  403. }
  404. break;
  405. case 52:
  406. for( int i = 0; i < MAPW; i ++)
  407. for( int j = 0; j < MAPH; j ++)
  408. map[i][j] = true;
  409.  
  410. while (1)
  411. {
  412. if(status != 0)
  413. {
  414. break;
  415. }
  416.  
  417.  
  418. if (GetAsyncKeyState(VK_HOME))
  419. {
  420. system("CLS");
  421. gotoxy(15,3);
  422. cout << "INFO:";
  423. gotoxy(15,6);
  424. cout << "Poruszanie za pomoca Strzalek.";
  425. gotoxy(15,7);
  426. cout << "Strzal za pomoca Spacji.";
  427. gotoxy(15,8);
  428. cout << "Podczas gry przycisk 'HOME' wyswietla INFO.";
  429. gotoxy(15,9);
  430. cout << "Podczas gry przycisk 'SHIFT' pauzuje gre do nacisniecia 'ENTER'.";
  431. gotoxy(15,10);
  432. cout << "Podczas gry przycisk 'ESC' konczy prace programu.";
  433. odliczanie(15,12,"Powrot do gry");
  434. }
  435. if (GetAsyncKeyState(VK_ESCAPE))
  436. {
  437. exit(1);
  438. }
  439. if (GetAsyncKeyState(VK_SHIFT))
  440. {
  441. system("CLS");
  442. gotoxy(18,10);
  443. cout << "PAUZA, aby ponowic gre wcisnij ENTER";
  444.  
  445. getch();
  446.  
  447. while(getch() != 0x0D)
  448. {
  449. gotoxy(18,10);
  450. cout << "PAUZA, aby ponowic gre wcisnij ENTER";
  451.  
  452. getch();
  453. }
  454.  
  455. }
  456. if (GetAsyncKeyState(VK_RIGHT))
  457. {
  458. player.x ++;
  459. }
  460. if (GetAsyncKeyState(VK_LEFT))
  461. {
  462. player.x --;
  463. }
  464. if (GetAsyncKeyState(VK_SPACE))
  465. {
  466. if(player.strzal == false )
  467. {
  468. player.strzal = true;
  469. player.sx = player.x;
  470. player.sy = player.y;
  471. }
  472. }
  473.  
  474. Update(1);
  475. Render();
  476. }
  477. break;
  478. case 53:
  479. main();
  480. break;
  481. }
  482.  
  483. switch(status)
  484. {
  485. case 1:
  486. system("CLS");
  487. gotoxy(35,10);
  488. cout <<"Wygrana !";
  489. gotoxy(35,11);
  490. cout <<"Twoj Wynik:";
  491. cout << player.pkt;
  492. odliczanie(30,13,"Koniec gry");
  493. exit;
  494. case 2:
  495. system("CLS");
  496. gotoxy(34,10);
  497. cout <<"Przegrana !";
  498. gotoxy(34,11);
  499. cout <<"Twoj Wynik:";
  500. cout << player.pkt;
  501. odliczanie(30,13,"Koniec gry");
  502. exit;
  503. }
  504. break;
  505. case 50:
  506. system("CLS");
  507. gotoxy(15,3);
  508. cout << "INFO:";
  509. gotoxy(15,6);
  510. cout << "Poruszanie za pomoca Strzalek.";
  511. gotoxy(15,7);
  512. cout << "Strzal za pomoca Spacji.";
  513. gotoxy(15,8);
  514. cout << "Podczas gry przycisk 'HOME' wyswietla INFO.";
  515. gotoxy(15,9);
  516. cout << "Podczas gry przycisk 'SHIFT' pauzuje gre do nacisniecia 'ENTER'.";
  517. gotoxy(15,10);
  518. cout << "Podczas gry przycisk 'ESC' konczy prace programu.";
  519. odliczanie(15,12,"Powrot do menu");
  520. main();
  521. break;
  522. case 51:
  523. exit(1);
  524. return 0;
  525. }
  526. }
Add Comment
Please, Sign In to add comment