Advertisement
Guest User

Untitled

a guest
Jan 18th, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.65 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 = 39, y = 12;
  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: Jedrzej Bablo, nr. indeksu: s15715";
  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.     if (rozmiar % 2 == 0)
  72.     {
  73.         rozmiar++;
  74.     }
  75.     size = rozmiar;
  76.  
  77.     cout << "Podaj znak kodu ASCII: ";
  78.     cin >> znak;
  79.  
  80. }
  81.  
  82. ///////////////// RYSOWANIE ////////////////////////
  83.  
  84. void Rysuj(float size, float x, float y, char znak)
  85. {
  86.     float i, j;
  87.  
  88.     system("cls");
  89.  
  90.     gotoxy(x, y);
  91.  
  92.     for (i = 1; i <= size / 2; i++)
  93.     {  
  94.         cout << znak;
  95.         x++; y--;
  96.         gotoxy(x, y);
  97.     }
  98.  
  99.  
  100.     for (i = 0; i<size / 2; i++)
  101.     {
  102.         cout << znak;
  103.         x--; y--;
  104.         gotoxy(x, y);
  105.     }
  106.  
  107.     gotoxy(10, 25), cout << "strzalki: przesuwanie;  +/-: powieksz, zmniejsz;  ESC: wyjscie";
  108. }
  109.  
  110. /////////////////// PRZESUWANIE I ZMIANA ROZMIARU FIGURY ///////////////////////////
  111.  
  112. void Przesuwanie(float size, float &x, float &y, char znak)
  113. {
  114.     int zmiana = 0, max = 25;
  115.     char klawisz;
  116.  
  117.     do
  118.     {
  119.         klawisz = _getch();
  120.  
  121.         switch (klawisz)
  122.         {
  123.         case 72:
  124.         {
  125.                    y--; zmiana = 1;
  126.                    if (y < size - 1)
  127.                    {
  128.                        y++;
  129.                        zmiana = 0;
  130.                    }
  131.                    break;
  132.         }
  133.  
  134.         case 80:
  135.         {
  136.                    y++; zmiana = 1;
  137.                    if (y > 24)
  138.                    {
  139.                        y--;
  140.                        zmiana = 0;
  141.                    }
  142.                    break;
  143.         }
  144.         case 75:
  145.         {
  146.                    x--; zmiana = 1;
  147.                    if (x < 1)
  148.                    {
  149.                        x++;
  150.                        zmiana = 0;
  151.                    }
  152.                    break;
  153.         }
  154.         case 77:
  155.         {
  156.                    x++; zmiana = 1;
  157.                    if (x >= 79 - size / 2)
  158.                    {
  159.                        x--;
  160.                        zmiana = 0;
  161.                    }
  162.                    break;
  163.         }
  164.         case '+':
  165.         {
  166.                     size++; zmiana = 1;
  167.                     if (size > max || y < size - 1 || y > 25 || x < 1 || x >= 79 - size / 2)
  168.                     {
  169.                         size--;
  170.                         zmiana = 0;
  171.                     }
  172.                     break;
  173.         }
  174.  
  175.         case '-':
  176.         {
  177.                     size--;
  178.                     zmiana = 1;
  179.                     if (size < 3)
  180.                     {
  181.                         size++;
  182.                         zmiana = 0;
  183.                     }
  184.                     break;
  185.         }
  186.         }
  187.         if (zmiana)
  188.         {
  189.             Rysuj(size, x, y, znak); zmiana = 0;
  190.         }
  191.  
  192.     } while (klawisz != 27);
  193.  
  194. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement