Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include <iostream>
- #include <conio.h>
- #include "windows.h"
- void gotoxy(int x, int y) //funkcja przyjmujaca wspolrzedne x,y
- {
- COORD c;
- c.X = x;
- c.Y = y;
- SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), c);
- }
- void Wstep();
- void WczytajDane(float &size, char &znak);
- void Rysuj(float size, float x, float y, char znak);
- void Przesuwanie(float size, float &x, float &y, char znak);
- //---------------------------------------------------------------------------
- using namespace std;
- int main()
- {
- SMALL_RECT windowSize = { 0, 0, 79, 25 };
- SetConsoleWindowInfo(GetStdHandle(STD_OUTPUT_HANDLE), TRUE, &windowSize);
- float x = 39, y = 12;
- float size;
- char znak;
- system("cls");
- Wstep();
- WczytajDane(size, znak);
- Rysuj(size, x, y, znak);
- _getch();
- Przesuwanie(size, x, y, znak);
- return 0;
- }
- //---------------------------------------------------------------------------
- void Wstep()
- {
- gotoxy(10, 0), cout << "Witaj w programie rysujacym figure: >, znakiem ASCII.";
- gotoxy(10, 1), cout << "Program umozliwa:";
- gotoxy(10, 2), cout << "- wybor znaku kodu ASCII;";
- gotoxy(10, 3), cout << "- wczytanie poczatkowych rozmiarow figury;";
- gotoxy(10, 4), cout << "- zmiane wielkosci figury klawiszami `+` i `-`;";
- gotoxy(10, 5), cout << "- przesuwanie figury za pomoca strzalek.";
- gotoxy(10, 7), cout << "PRZESUWANIE I ROZMIAR FIGURY OGRANICZONE SA DO WIELKOSCI KONSOLI";
- gotoxy(20, 9), cout << "wcisnij dowolny klawisz aby kontynuowac";
- gotoxy(19, 15), cout << "Autor: Jedrzej Bablo, nr. indeksu: s15715";
- _getch();
- }
- ///////////////////////// WPROWADZANIE DANYCH ////////////////////////
- void WczytajDane(float &size, char &znak)
- {
- system("cls");
- int min = 3, max = 25, rozmiar;
- do
- {
- cout << "Podaj rozmiar figury(3-25): ";
- cin >> rozmiar;
- } while (rozmiar < min || rozmiar > max);
- if (rozmiar % 2 == 0)
- {
- rozmiar++;
- }
- size = rozmiar;
- cout << "Podaj znak kodu ASCII: ";
- cin >> znak;
- }
- ///////////////// RYSOWANIE ////////////////////////
- void Rysuj(float size, float x, float y, char znak)
- {
- float i, j;
- system("cls");
- gotoxy(x, y);
- for (i = 1; i <= size / 2; i++)
- {
- cout << znak;
- x++; y--;
- gotoxy(x, y);
- }
- for (i = 0; i<size / 2; i++)
- {
- cout << znak;
- x--; y--;
- gotoxy(x, y);
- }
- gotoxy(10, 25), cout << "strzalki: przesuwanie; +/-: powieksz, zmniejsz; ESC: wyjscie";
- }
- /////////////////// PRZESUWANIE I ZMIANA ROZMIARU FIGURY ///////////////////////////
- void Przesuwanie(float size, float &x, float &y, char znak)
- {
- int zmiana = 0, max = 25;
- char klawisz;
- do
- {
- klawisz = _getch();
- switch (klawisz)
- {
- case 72:
- {
- y--; zmiana = 1;
- if (y < size - 1)
- {
- y++;
- zmiana = 0;
- }
- break;
- }
- case 80:
- {
- y++; zmiana = 1;
- if (y > 24)
- {
- y--;
- zmiana = 0;
- }
- break;
- }
- case 75:
- {
- x--; zmiana = 1;
- if (x < 1)
- {
- x++;
- zmiana = 0;
- }
- break;
- }
- case 77:
- {
- x++; zmiana = 1;
- if (x >= 79 - size / 2)
- {
- x--;
- zmiana = 0;
- }
- break;
- }
- case '+':
- {
- size++; zmiana = 1;
- if (size > max || y < size - 1 || y > 25 || x < 1 || x >= 79 - size / 2)
- {
- size--;
- zmiana = 0;
- }
- break;
- }
- case '-':
- {
- size--;
- zmiana = 1;
- if (size < 3)
- {
- 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