Advertisement
ejdier

asda

Jan 21st, 2016
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.37 KB | None | 0 0
  1.  
  2.     #include <iostream>
  3.     #include <Windows.h>
  4.     #include <conio.h>
  5.     using namespace std;
  6.     const int Esq=27;
  7.      
  8.     void gotoxy(const int x, const int y)
  9.     {
  10.             COORD tPosition = { x, y };
  11.             SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), tPosition);
  12.     }
  13.     void informacje(){
  14.             cout << "Witaj w programie!\n";
  15.             cout << "Program umozliwia rysowanie znakiem z tablicy ASCII.\n";
  16.             cout << "Wczytasz poczatkowe wymiary firgury.\n";
  17.             cout << "Przesuniesz firgure za pomoca strzalek.";
  18.             cout << "Powiekszysz i pomniejszysz figure za pomoca '+', '-'.";
  19.     }
  20.     void wczytaj_znak(char &znak, int &roz){
  21.      
  22.             cout << "\n";
  23.             cout << "Podaj znak ktorym chcesz rysowac: ";
  24.             cin >> znak;
  25.             cout << "Podaj rozmiar firgury: ";
  26.             cin >> roz;
  27.             system("cls");
  28.     }
  29.      
  30.      
  31.      
  32.     void rysowanie(int &x1, int &x, int &y1, int&y, char znak, int &roz){
  33.             x1 = x; y1 = y;
  34.             gotoxy(x1, y1);
  35.             for( int i = x;  i>x-roz ; i--)
  36.             {  
  37.                 gotoxy(x1--,y1--);
  38.                 cout<<znak;
  39.                 }
  40.             gotoxy(x1, y1);
  41.             for (int i = x; i>x-roz; i--)
  42.             {  
  43.                 gotoxy(x1,y1);
  44.                 cout<<znak;
  45.                 x1--;
  46.                 }
  47.             gotoxy(x1+roz+1, y1--);
  48.            
  49.             for (int i = x ; i>x-roz; i--)
  50.             {   x1++;
  51.             gotoxy(x1+roz, y1--);
  52.                 cout<<znak;
  53.             }
  54.     }
  55.    
  56.     void granice_figury(int &x,int &y, const int &console_size_x, const int &console_size_y, int &roz) // nadanie krawedzi aby program sie nie wysypal kiedy dojdzie do krawedzi konsoli
  57. {
  58.     if (x > console_size_x - roz)       //prawa krawedz konsoli
  59.         x = console_size_x - roz;
  60.  
  61.     if (x < 0)                          // lewa krawedz konsoli
  62.         x = 0 + roz;
  63.  
  64.     if (y > console_size_y - roz)      // dolna krawedz konsoli
  65.         y = console_size_y - roz;
  66.  
  67.     if (y < 0)                         // górna krawedz konsoli
  68.         y = 0;
  69. }
  70.     void przesuwanie(char &znak1, const int &console_size_x, const int &console_size_y, int &roz, int &x, int &y, int &x1, int &y1) // przesuwanie figury za pomoca strzalek
  71. {  
  72.     znak1=_getch();
  73.    
  74.     switch (znak1)
  75.     {
  76.     case 75: {
  77.                  x--;
  78.                  if (x < 0)                          // przesuwanie figury w lewo oraz granica konsoli
  79.                      x = 0;
  80.                 system("cls");
  81.                  break;
  82.              }
  83.  
  84.     case 77: {
  85.                  x++;
  86.                  if (x > console_size_x - roz - 10)  // przesuwanie figury w prawo oraz granica konsoli
  87.                      x = console_size_x - roz - 10;
  88.                  system("cls");
  89.                  break;
  90.              }
  91.  
  92.     case 72: {
  93.                  y--;
  94.                  if (y < 0)                          // przesuwanie figury w gore oraz granica konsoli
  95.                      y = 0;
  96.                  system("cls");
  97.                  break;
  98.              }
  99.  
  100.     case 80: {
  101.                  y++;
  102.                  if (y > console_size_y - roz)       // przesuwanie figury w dol oraz granica konsoli
  103.                      y = console_size_y - roz;
  104.                  system("cls");
  105.                  break;
  106.              }
  107.     }
  108. }
  109.            
  110.      
  111.     int main(){
  112.            
  113.             char znak; int roz; char znak1;
  114.             int const console_size_x = 80;
  115.             int const console_size_y = 25;
  116.             int x = 80, y = 24; // poczatkowe ustawienie kursora
  117.             int x1 = 0, y1 = 0;
  118.             informacje();
  119.             wczytaj_znak(znak,roz);
  120.             system("cls");
  121.             do{
  122.             granice_figury(x,y,console_size_x,console_size_y, roz);
  123.             rysowanie(x1, x, y1,y,znak,roz);
  124.             przesuwanie(znak1,console_size_x, console_size_y,roz,x, y, x1, y1);
  125.             } while (znak1!=Esq);
  126.             _getch();
  127.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement