Advertisement
Guest User

Untitled

a guest
Jan 18th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.10 KB | None | 0 0
  1. #include <iostream>
  2. #include <conio.h>
  3. #include <windows.h>
  4.  
  5. void gotoxy(int x, int y);
  6. void Wstep();
  7. void WczytajDane(int &size, char &znak);
  8. void Rysuj(int size, int x, int y, char znak);
  9. void Przesuwanie(int size, int &x, int &y, char znak);
  10. //---------------------------------------------------------------------------
  11.  
  12. using namespace std;
  13.  
  14. int main()
  15. {
  16. int x = 0, y = 0;
  17. int size;
  18. char znak;
  19. system("cls");
  20.  
  21. Wstep();
  22. WczytajDane(size, znak);
  23. Rysuj(size, x, y, znak);
  24. _getch();
  25. Przesuwanie(size, x, y, znak);
  26.  
  27. return 0;
  28. }
  29.  
  30.  
  31. void Wstep()
  32. {
  33. cout << "\t=========================================================== \n"
  34. "\t========== Program rysowania figury znakiem ASCII ========= \n"
  35. "\t=========================================================== \n"
  36. "\t======================== FIGURA ========================= \n"
  37. "\t=========================================================== \n"
  38. "\t========================= x x ========================= \n"
  39. "\t========================= x x ========================= \n"
  40. "\t========================= x ========================= \n"
  41. "\t========================= x x ========================= \n"
  42. "\t========================= x x ========================= \n"
  43. "\t=========================================================== \n"
  44. "\t==================== Program umozliwia: =================== \n"
  45. "\t== wybor znaku kodu ASCII ================================= \n"
  46. "\t== wczytanie poczatkowych rozmiarow figury ================ \n"
  47. "\t== przesuwanie firury klawiszami strzalek ================= \n"
  48. "\t== powiekszanie oraz zmianiszanie figury za pomoca + i - == \n"
  49. "\t== ograniczenie przesuwania figury do rozmiaru ekranu ===== \n"
  50. "\t=========================================================== \n"
  51. "\t======== dowolny klawisz rozpocznie prace programu ======== \n"
  52. "\t=========================================================== ";
  53. _getch();
  54. }
  55.  
  56. void gotoxy(int x, int y)
  57. {
  58. COORD c;
  59. c.X = x;
  60. c.Y = y;
  61. SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), c);
  62. }
  63.  
  64. //WPROWADZANIE DANYCH
  65.  
  66. void WczytajDane(int &size, char &znak)
  67. {
  68. system("cls");
  69. int max = 22, min = 5, rozmiar;
  70. do
  71. {
  72. cout << "Podaj rozmiar figury z zakresu (5-22): ";
  73. cin >> rozmiar;
  74. } while (rozmiar < min || rozmiar > max);
  75. size = rozmiar;
  76.  
  77. cout << "Podaj znak kodu ASCII: ";
  78. cin >> znak;
  79.  
  80. }
  81.  
  82. //RYSOWANIE
  83.  
  84. void Rysuj(int size, int x, int y, char znak)
  85. {
  86. int i, j;
  87. int k;
  88.  
  89. system("cls");
  90.  
  91.  
  92.  
  93. for (i = x, j = y, k = 0; k < (size); i++, j++, k++)
  94. {
  95. gotoxy(i, j), cout << znak;
  96. }
  97. for (i = x, j = y + (size - 1), k = 0; k < (size); i++, j--, k++)
  98. {
  99. gotoxy(i, j), cout << znak;
  100. }
  101.  
  102.  
  103.  
  104.  
  105. gotoxy(10, 25), cout << "strzalki: przesuwanie; +/-: powieksz, zmniejsz; ESC: wyjscie";
  106. }
  107.  
  108. //PRZESUWANIE I ZMIANA ROZMIARU FIGURY
  109.  
  110. void Przesuwanie(int size, int &x, int &y, char znak)
  111. {
  112. int zmiana = 0, maxy = 22, maxx = 80;
  113. char klawisz;
  114.  
  115. do
  116. {
  117. klawisz = _getch();
  118.  
  119. switch (klawisz)
  120. {
  121. //GÓRA
  122. case 72:
  123. {
  124. y--; zmiana = 1;
  125. if (y < 0)
  126. {
  127. y++;
  128. zmiana = 0;
  129. }
  130. break;
  131. }
  132. //DÓŁ
  133. case 80:
  134. {
  135. y++; zmiana = 1;
  136. if (y > maxy - (size))
  137. {
  138. y--;
  139. zmiana = 0;
  140. }
  141. break;
  142. }
  143. //LEWO
  144. case 75:
  145. {
  146. x--; zmiana = 1;
  147. if (x < 0)
  148. {
  149. x++;
  150. zmiana = 0;
  151. }
  152. break;
  153. }
  154. //PRAWO
  155. case 77:
  156. {
  157. x++; zmiana = 1;
  158. if (x > maxx - (size))
  159. {
  160. x--;
  161. zmiana = 0;
  162. }
  163. break;
  164. }
  165. //ZOOM IN
  166. case '+':
  167. {
  168.  
  169. size++; zmiana = 1;
  170. if (size < 5 || size > maxy)
  171. {
  172. size--;
  173. zmiana = 0;
  174. }
  175.  
  176. if (x > (maxx - size))
  177. {
  178. x--;
  179. }
  180. if (y > (maxy - size))
  181. {
  182. y--;
  183. }
  184. if (x < 0)
  185. {
  186. x--;
  187. }
  188. if (y < 0)
  189. {
  190. y--;
  191. }
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198. break;
  199. }
  200. //ZOOM OUT
  201. case '-':
  202. {
  203. size--;
  204. zmiana = 1;
  205. if (size < 5 || size > maxy)
  206. {
  207. size++;
  208. zmiana = 0;
  209. }
  210. break;
  211. }
  212.  
  213. }
  214.  
  215. if (zmiana)
  216. {
  217. Rysuj(size, x, y, znak); zmiana = 0;
  218. }
  219.  
  220. } while (klawisz != 27);
  221.  
  222. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement