Advertisement
Guest User

Untitled

a guest
Jan 18th, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.29 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <iostream>
  3. #include <conio.h>
  4. #include "windows.h"
  5.  
  6.  
  7. void gotoxy(int x, int y) //funkcja przyjmujaca wspolrzedne x,y
  8. {
  9.     COORD c;
  10.     c.X = x;
  11.     c.Y = y;
  12.     SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), c);
  13. }
  14.  
  15.  
  16. void Wstep();
  17. void WczytajDane(float &size, char &znak);
  18. void Rysuj(float size, float x, float y, char znak);
  19. void Przesuwanie(float size, float &x, float &y, char znak);
  20. //---------------------------------------------------------------------------
  21.  
  22. using namespace std;
  23.  
  24. int main()
  25. {
  26.     SMALL_RECT windowSize = { 0, 0, 79, 25 };
  27.     SetConsoleWindowInfo(GetStdHandle(STD_OUTPUT_HANDLE), TRUE, &windowSize);
  28.  
  29.     float x = 1, y = 24;
  30.     float size;
  31.     char znak;
  32.     system("cls");
  33.  
  34.     Wstep();
  35.     WczytajDane(size, znak);
  36.     Rysuj(size, x, y, znak);
  37.     _getch();
  38.     Przesuwanie(size, x, y, znak);
  39.  
  40.  
  41.     return 0;
  42. }
  43. //---------------------------------------------------------------------------
  44.  
  45. void Wstep()
  46. {
  47.     gotoxy(10, 0), cout << "Witaj w programie rysujacym figure: >, znakiem ASCII.";
  48.     gotoxy(10, 1), cout << "Program umozliwa:";
  49.     gotoxy(10, 2), cout << "- wybor znaku kodu ASCII;";
  50.     gotoxy(10, 3), cout << "- wczytanie poczatkowych rozmiarow figury;";
  51.     gotoxy(10, 4), cout << "- zmiane wielkosci figury klawiszami `+` i `-`;";
  52.     gotoxy(10, 5), cout << "- przesuwanie figury za pomoca strzalek.";
  53.    
  54.     gotoxy(10, 7), cout << "PRZESUWANIE I ROZMIAR FIGURY OGRANICZONE SA DO WIELKOSCI KONSOLI";
  55.     gotoxy(20, 9), cout << "wcisnij dowolny klawisz aby kontynuowac";
  56.     gotoxy(19, 15), cout << "Autor: Mateusz Bielski, nr. indeksu: s15467";
  57.     _getch();
  58. }
  59.  
  60. ///////////////////////// WPROWADZANIE DANYCH ////////////////////////
  61.  
  62. void WczytajDane(float &size, char &znak)
  63. {
  64.     system("cls");
  65.     int min = 3, max = 25, rozmiar;
  66.     do
  67.     {
  68.         cout << "Podaj rozmiar figury(3-25): ";
  69.         cin >> rozmiar;
  70.     } while (rozmiar < min || rozmiar > max );
  71.     size = rozmiar;
  72.  
  73.     cout << "Podaj znak kodu ASCII: ";
  74.     cin >> znak;
  75.  
  76. }
  77.  
  78. ///////////////// RYSOWANIE ////////////////////////
  79.  
  80. void Rysuj(float size, float x, float y, char znak)
  81. {
  82.     float i, j;
  83.    
  84.     system("cls");
  85.  
  86.     gotoxy(x,y);
  87.  
  88.     for (i = 1  ; i<=size/2 ; i++)
  89.     {
  90.         cout << znak;
  91.         x++; y--;
  92.         gotoxy(x, y);
  93.     }
  94.  
  95.  
  96.     for (i = 0 ; i<size/2 ; i++)
  97.     {
  98.         cout << znak;
  99.         x--; y--;
  100.         gotoxy(x, y);
  101.     }
  102.  
  103.     gotoxy(10, 25), cout << "strzalki: przesuwanie;  +/-: powieksz, zmniejsz;  ESC: wyjscie";
  104. }
  105.  
  106. /////////////////// PRZESUWANIE I ZMIANA ROZMIARU FIGURY ///////////////////////////
  107.  
  108. void Przesuwanie(float size, float &x, float &y, char znak)
  109. {
  110.     int zmiana = 0, max = 25;
  111.     char klawisz;
  112.  
  113.     do
  114.     {
  115.         klawisz = _getch();
  116.  
  117.         switch (klawisz)
  118.         {
  119.         case 72:
  120.         {
  121.             y--; zmiana = 1;
  122.             if (y < size - 1)
  123.             {
  124.                 y++;
  125.                 zmiana = 0;
  126.             }
  127.             break;
  128.         }
  129.  
  130.         case 80:
  131.         {
  132.             y++; zmiana = 1;
  133.             if (y > 24)
  134.             {
  135.                 y--;
  136.                 zmiana = 0;
  137.             }
  138.             break;
  139.         }
  140.         case 75:
  141.         {
  142.             x--; zmiana = 1;
  143.             if (x < 1)
  144.             {
  145.                 x++;
  146.                 zmiana = 0;
  147.             }
  148.             break;
  149.         }
  150.         case 77:
  151.         {
  152.             x++; zmiana = 1;
  153.             if (x >= 79 - size / 2)
  154.             {
  155.                 x--;
  156.                 zmiana = 0;
  157.             }
  158.             break;
  159.         }
  160.         case '+':
  161.         {
  162.             size++; zmiana = 1;
  163.             if (size > max || y < size - 1 || y > 25 || x < 1 || x >= 79 - size/2)
  164.             {
  165.                 size--;
  166.                 zmiana = 0;
  167.             }
  168.             break;
  169.         }
  170.  
  171.         case '-':
  172.         {
  173.             size--;
  174.             zmiana = 1;
  175.             if (size < 3)
  176.             {
  177.                 size++;
  178.                 zmiana = 0;
  179.             }
  180.             break;
  181.         }
  182.         }
  183.         if (zmiana)
  184.         {
  185.             Rysuj(size, x, y, znak); zmiana = 0;
  186.         }
  187.  
  188.     } while (klawisz != 27);
  189.  
  190. }
  191.  
  192.  
  193. //----------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement