Guest User

Untitled

a guest
May 22nd, 2018
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.68 KB | None | 0 0
  1. #include <iostream>
  2. #include <conio.h>
  3. #include <math.h>
  4. #include "wtypes.h"
  5.  
  6.  
  7.  
  8.  
  9. using namespace std;
  10.  
  11. void wstep();
  12. void pobierz_znak (char &akcja,int &rozmiar, int &x,int &y);
  13. void wczytaj_dane (char &wybor, int &rozmiar);
  14. void rysuj(int rozmiar, char zanak,int x,int y);
  15. void GetDesktopResolution(int& horizontal, int& vertical);
  16.  
  17. //------------------------------------
  18. int main ()
  19. {
  20. char wybor;
  21. char akcja = '000';
  22. int rozmiar;
  23. int x=0;
  24. int y=0;
  25. int horizontal = 0;
  26. int vertical = 0;
  27. GetDesktopResolution(horizontal, vertical);
  28. cout << horizontal << '\n' << vertical << '\n';
  29.  
  30. wstep ();
  31. wczytaj_dane (wybor, rozmiar);
  32. rysuj(rozmiar, wybor, x, y);
  33. while(akcja != 'k'){ // pobiera znak, dopóki nie wciśniemy "k"
  34. pobierz_znak(akcja,rozmiar,x,y);
  35. GetDesktopResolution(horizontal,vertical);
  36. cout << horizontal << '\n' << vertical << '\n';
  37. if(akcja == '+'){
  38. rozmiar+=1;
  39. }
  40. else if(akcja == '-'){
  41. rozmiar-=1;
  42. }
  43. else if(akcja == 80){ //strzałka w dół
  44. y+=1;
  45. }
  46. else if(akcja == 72){ //strzałka w górę
  47. y-=1;
  48. }
  49. else if(akcja == 77){ //strzałka w prawo
  50. x+=1;
  51. }
  52. else if(akcja == 75){ //strzałka w lewo
  53. x-=1;
  54. }
  55. rysuj(rozmiar,wybor,x,y);
  56. }
  57.  
  58.  
  59. system("pause");
  60. return 0;
  61. }
  62. //------------------------------------
  63. void GetDesktopResolution(int& horizontal, int& vertical)
  64. {
  65. RECT desktop;
  66. // Get a handle to the desktop window
  67. const HWND hDesktop = GetConsoleWindow();
  68. // Get the size of screen to the variable desktop
  69. GetWindowRect(hDesktop, &desktop);
  70. // The top left corner will have coordinates (0,0)
  71. // and the bottom right corner will have coordinates
  72. // (horizontal, vertical)
  73. horizontal = desktop.right;
  74. vertical = desktop.bottom;
  75. }
  76.  
  77.  
  78. void wstep ()
  79. {
  80. cout<<"Program do rysowania znakiem ASCII ponizszej figury:\n";
  81. cout<<" * *\n";
  82. cout<<" * * \n";
  83. cout<<" * * \n";
  84. cout<<" * \n";
  85. cout<<" * *\n";
  86. cout<<" * *\n";
  87. cout<<" * *\n\n";
  88.  
  89. cout<<"Program umozliwia:\n";
  90. cout<<"- wybor znaku ASCII\n- wczytanie poczatkowych rozmiarow figury\n";
  91. cout<<"- przesuwanie figury klawiszami lewo, prawo, gora, dol\n" ;
  92. cout<<"- ograniczenie przesuwania do obszaru ekranu\n";
  93. cout<<"- powiekszanie oraz zmnijszanie rozmiaru figury za pomoca klawiszy + i -\n\n\n";
  94. cout<<" ...::: Wcisnij dowolny klawisz aby kontynuowac :::... ";
  95. _getch();
  96. }
  97. //--------------------------------------------------------------------------------------------
  98. void wczytaj_dane(char &wybor, int &rozmiar)
  99. {
  100. system("cls");
  101. cout << "Wpisz znak do rysowania figury" << endl;
  102. cin >> wybor;
  103. cout << "Wybrany znak: " << wybor << endl;
  104. cout << "Wpisz rozmiar figury" << endl;
  105. cin >> rozmiar;
  106. cout << "Wybrany rozmiar: " << rozmiar << endl;
  107.  
  108.  
  109. }
  110.  
  111. void pobierz_znak (char &akcja,int &rozmiar, int &x,int &y)
  112. {
  113. cout << "rozmiar="<<rozmiar << " x="<<x<<" y=" <<y<< " Wpisz znak +/- lub kieruj strzalkami klawiatury, wpisz k aby zakonczyc" << endl;
  114. akcja =getch();
  115.  
  116. }
  117.  
  118. void rysuj(int rozmiar, char znak, int x, int y){
  119. system("cls");
  120. for(int i =0;i<y;i++){
  121. cout << endl;
  122. }
  123.  
  124. for(int k=0;k<rozmiar;k++)
  125. {
  126. for(int j=0;j<x;j++){
  127. cout<< " ";
  128. }
  129. for(int l=0;l<rozmiar+x;l++)
  130. {
  131. if((l==k || l+k == (rozmiar-1))){
  132. cout<< znak;
  133. }
  134. else{
  135. cout<< " ";
  136. }
  137.  
  138.  
  139. }
  140. cout << endl;
  141. }
  142.  
  143.  
  144. }
Add Comment
Please, Sign In to add comment