Advertisement
Guest User

Untitled

a guest
May 6th, 2016
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.97 KB | None | 0 0
  1. #include <cstdio>
  2. #include<iostream>
  3. #include<iomanip>
  4. #include<Windows.h> //sleep
  5. #include<time.h> //f. srand rand()
  6. #include<conio.h> //kbhit()
  7.  
  8. //deklaracje sta³ych
  9. //samolot
  10.  
  11. #define SAMOLOT '=' //USATLENIE ZNAKU SYLWETKI SAMILOTU
  12. #define SAMOLOT_T '8' //USTAWIENIE ZNAKU DLA SYLWETKI T SAMOLOTU
  13. #define SAMOLOT_PP '>' //USTALENIE ZNAKU DLA SYLWETKI P w lewo SAMOLOTU
  14. #define SAMOLOT_PL '<' //USTALENIE ZNAKU DLA SYLWETKI P w Prawo SAMOLOTU
  15. //TABLICA POLE BITWY
  16. #define WYSOKOSC 20 //USTAWIENIE SZERO
  17. #define SZEROKOSC 70//WYSOKSC
  18. #define CZYSC_INSTRUKCJE "cls"
  19.  
  20. #define BOMBA 4 //znak bomby na 87 z ascii
  21. #define EXPLOSJA 5
  22. #define SCHRON_P 186
  23. #define SCHRON_A 201
  24. #define SCHRON_G 205
  25. #define SCHRON_D 187
  26.  
  27. #define KEY_UP 72
  28. #define KEY_DOWN 80
  29. #define KEY_LEFT 75
  30. #define KEY_RIGHT 77
  31. #define ESC 27
  32. #define SPACE 32
  33.  
  34.  
  35. //DEFINIOWANIE ZMIENNYCH
  36.  
  37. int samolot_odstep=0; //zmienna pomocnicza
  38. char pole_bitwy[WYSOKOSC][SZEROKOSC]; //DEKLARACJA TABLICY POLA BITWY
  39. int wys=0;
  40. int szer=0;
  41. int atak=0;
  42.  
  43. HANDLE hOut;
  44.  
  45. void maluj_schron(int MIEJSCE)
  46. {
  47. pole_bitwy[WYSOKOSC-1][MIEJSCE-1]=SCHRON_P;
  48. pole_bitwy[WYSOKOSC-2][MIEJSCE-1]=SCHRON_A;
  49. pole_bitwy[WYSOKOSC-2][MIEJSCE]=SCHRON_G;
  50. pole_bitwy[WYSOKOSC-2][MIEJSCE+1]=SCHRON_D;
  51. pole_bitwy[WYSOKOSC-1][MIEJSCE+1]=SCHRON_P;
  52. }
  53.  
  54.  
  55. using namespace std;
  56.  
  57.  
  58. void maluj_samolot()
  59. {
  60. hOut=GetStdHandle( STD_OUTPUT_HANDLE);
  61. SetConsoleTextAttribute(hOut, FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY | BACKGROUND_BLUE);
  62. for(int c=0; c<wys; c++){
  63. printf("\n");
  64. }
  65. for(int b=0; b<szer; b++){
  66. cout<<setw(samolot_odstep+1); //ustawienie lewego marginesu od krawedzi pola bitwy
  67.  
  68. if(KEY_RIGHT)
  69. cout<<SAMOLOT_T<<SAMOLOT<<SAMOLOT_PP;
  70.  
  71. else
  72. cout<<SAMOLOT_PL<<SAMOLOT<<SAMOLOT_T;
  73. }
  74.  
  75. }
  76.  
  77. void maluj_bombe()
  78. {
  79.  
  80. SetConsoleTextAttribute(hOut, FOREGROUND_BLUE | FOREGROUND_RED | FOREGROUND_INTENSITY | BACKGROUND_BLUE);
  81. for(int i=0; i<WYSOKOSC; i++)
  82. {
  83. for(int j=0; j<SZEROKOSC; j++)
  84. {
  85. if(pole_bitwy[i][j]==0)
  86. printf(" ");
  87. else
  88. printf("%c",pole_bitwy[i][j]);
  89. }
  90. printf("\n");
  91. }
  92.  
  93. }
  94. //-------------------------------------------------------------
  95. void krok_bomb()
  96. {
  97. for(int i=(WYSOKOSC-1); i>0 ;i--)
  98. {
  99. for(int j=0 ;j<SZEROKOSC; j++)
  100. {
  101. if(pole_bitwy[i-1][j]==BOMBA)
  102. {
  103. pole_bitwy[i-1][j]=0;
  104. pole_bitwy[i][j]=BOMBA;
  105. }
  106.  
  107. if(i==(WYSOKOSC-1))
  108. {
  109. if(pole_bitwy[i][j]==BOMBA)
  110. pole_bitwy[i][j]=EXPLOSJA;
  111. else
  112. pole_bitwy[i][j]=0;
  113. }
  114. }
  115. }
  116.  
  117. if(rand()%10<2)
  118. pole_bitwy[0][samolot_odstep]=BOMBA; //samolot_odstep+1 itd by wiecej
  119. }
  120. //--------------------------------------------------------------------------------
  121.  
  122. int main()
  123.  
  124. {
  125. srand(time(NULL));
  126.  
  127. for(int i=0; i<WYSOKOSC; i++) /// wypelnianie tablicy po wysokosci
  128. for(int j=0; j<SZEROKOSC; j++)
  129. pole_bitwy[i][j]=0;
  130. int c = 0;
  131. int b = 0;
  132. while(1)
  133. {
  134. if(kbhit()) //jezeli nacisniesz dowolny klawisz z klawiatury
  135. {
  136.  
  137. switch((c=getch(),b=getch())) {
  138. case KEY_UP:
  139. wys--;
  140. if(wys<0)
  141. wys=0;
  142. break;
  143. case KEY_DOWN:
  144. wys++;
  145. if(wys>8)
  146. wys=8;
  147. break;
  148. case KEY_RIGHT:
  149. if(szer>15)
  150. szer=15;
  151. szer++;
  152. break;
  153. case KEY_LEFT:
  154. if(szer<1)
  155. szer=1;
  156. szer--;
  157. break;
  158. };
  159. }
  160. else
  161. {
  162. maluj_samolot();
  163. maluj_bombe();
  164. krok_bomb();
  165. }
  166.  
  167.  
  168.  
  169.  
  170. maluj_schron(7);
  171. Sleep(100);
  172. system(CZYSC_INSTRUKCJE);
  173.  
  174. }
  175. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement