Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <conio.h>
- #include <windows.h>
- void gotoxy(int x, int y);
- void Wstep();
- void WczytajDane(int &size, char &znak);
- void Rysuj(int size, int x, int y, char znak);
- void Przesuwanie(int size, int &x, int &y, char znak);
- //---------------------------------------------------------------------------
- using namespace std;
- int main()
- {
- int x = 0, y = 0;
- int size;
- char znak;
- system("cls");
- Wstep();
- WczytajDane(size, znak);
- Rysuj(size, x, y, znak);
- _getch();
- Przesuwanie(size, x, y, znak);
- return 0;
- }
- void Wstep()
- {
- cout << "\t=========================================================== \n"
- "\t========== Program rysowania figury znakiem ASCII ========= \n"
- "\t=========================================================== \n"
- "\t======================== FIGURA ========================= \n"
- "\t=========================================================== \n"
- "\t========================= x x ========================= \n"
- "\t========================= x x ========================= \n"
- "\t========================= x ========================= \n"
- "\t========================= x x ========================= \n"
- "\t========================= x x ========================= \n"
- "\t=========================================================== \n"
- "\t==================== Program umozliwia: =================== \n"
- "\t== wybor znaku kodu ASCII ================================= \n"
- "\t== wczytanie poczatkowych rozmiarow figury ================ \n"
- "\t== przesuwanie firury klawiszami strzalek ================= \n"
- "\t== powiekszanie oraz zmianiszanie figury za pomoca + i - == \n"
- "\t== ograniczenie przesuwania figury do rozmiaru ekranu ===== \n"
- "\t=========================================================== \n"
- "\t======== dowolny klawisz rozpocznie prace programu ======== \n"
- "\t=========================================================== ";
- _getch();
- }
- void gotoxy(int x, int y)
- {
- COORD c;
- c.X = x;
- c.Y = y;
- SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), c);
- }
- //WPROWADZANIE DANYCH
- void WczytajDane(int &size, char &znak)
- {
- system("cls");
- int max = 22, min = 5, rozmiar;
- do
- {
- cout << "Podaj rozmiar figury z zakresu (5-22): ";
- cin >> rozmiar;
- } while (rozmiar < min || rozmiar > max);
- size = rozmiar;
- cout << "Podaj znak kodu ASCII: ";
- cin >> znak;
- }
- //RYSOWANIE
- void Rysuj(int size, int x, int y, char znak)
- {
- int i, j;
- int k;
- system("cls");
- for (i = x, j = y, k = 0; k < (size); i++, j++, k++)
- {
- gotoxy(i, j), cout << znak;
- }
- for (i = x, j = y + (size - 1), k = 0; k < (size); i++, j--, k++)
- {
- gotoxy(i, j), cout << znak;
- }
- gotoxy(10, 25), cout << "strzalki: przesuwanie; +/-: powieksz, zmniejsz; ESC: wyjscie";
- }
- //PRZESUWANIE I ZMIANA ROZMIARU FIGURY
- void Przesuwanie(int size, int &x, int &y, char znak)
- {
- int zmiana = 0, maxy = 22, maxx = 80;
- char klawisz;
- do
- {
- klawisz = _getch();
- switch (klawisz)
- {
- //GÓRA
- case 72:
- {
- y--; zmiana = 1;
- if (y < 0)
- {
- y++;
- zmiana = 0;
- }
- break;
- }
- //DÓŁ
- case 80:
- {
- y++; zmiana = 1;
- if (y > maxy - (size))
- {
- y--;
- zmiana = 0;
- }
- break;
- }
- //LEWO
- case 75:
- {
- x--; zmiana = 1;
- if (x < 0)
- {
- x++;
- zmiana = 0;
- }
- break;
- }
- //PRAWO
- case 77:
- {
- x++; zmiana = 1;
- if (x > maxx - (size))
- {
- x--;
- zmiana = 0;
- }
- break;
- }
- //ZOOM IN
- case '+':
- {
- size++; zmiana = 1;
- if (size < 5 || size > maxy)
- {
- size--;
- zmiana = 0;
- }
- if (x > (maxx - size))
- {
- x--;
- }
- if (y > (maxy - size))
- {
- y--;
- }
- if (x < 0)
- {
- x--;
- }
- if (y < 0)
- {
- y--;
- }
- break;
- }
- //ZOOM OUT
- case '-':
- {
- size--;
- zmiana = 1;
- if (size < 5 || size > maxy)
- {
- size++;
- zmiana = 0;
- }
- break;
- }
- }
- if (zmiana)
- {
- Rysuj(size, x, y, znak); zmiana = 0;
- }
- } while (klawisz != 27);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement