Witam ! Jestem świeżo uczącym się programowania w c++. Piszę program, który za pomocą klawisza z klawiatury tworzy figurę w postaci literki Z i umożliwia jej przesuwanie i powiększanie. Chciałbym również, aby rysował mi prostokąt (który ja sam ustawie- nie będzie wczytywany od użytkownika) i aby tą figurą można było powiększa i przesuwać tylko w tym prostokącie. Czy moglibyście wyjaśnić mi jak to zrobić ? Załączam od który udało mi się zrobić.
#include "stdafx.h"
#include <Windows.h>
#include <iostream>
#include <conio.h>
void pobierz_znak (char &znak, int &rozm);
void wymiary(int &wym);
void rysuj(char &znak, int &x, int &y, int &rozm);
void sterowanie(int &x, int &y, int &rozm, int klaw);
void gotoxy(int x,int y)
{
COORD c;
c.X=x;
c.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c);
}
using namespace std;
int main()
{
char znak;
int x=20,y=10,rozm;
int czynnosc;
pobierz_znak(znak,rozm);
cout<<"figura wyświetla się na obrzasze wielkosci 40x20";
cout<<"1.Sterowanie figura za pomoca strzałek\n2.Zmienianie rozmiaru za pomoca + i -\n\n\n";
cout<<"Nacisnij enter, aby kontynowac";
_getch();
do
{
system("cls");
rysuj(znak,x,y,rozm);
czynnosc=_getch();
if(czynnosc==77||czynnosc==75||czynnosc==80||czynnosc==72||czynnosc==43||czynnosc==45)
sterowanie(x,y,rozm,czynnosc);
}
while(czynnosc !=27);
_getch();
return 0;
}
void pobierz_znak(char &znak, int &rozm)
{
cout<<" Podaj znak z kodu ASCII ktorym ma byc rysowana figura: \n";
cin>>znak;
cout<<"Podaj rozmiar figury:\n";
cin>>rozm;
}
void rysuj(char &znak, int &x, int &y, int &rozm)
{
int a=40,b=20;
for(int i=0;i<a;i++)
cout << "_";
cout << endl;
for(int i=1;i<b;i++)
{
cout << "|";
for(int j=0;j<a;j++)
cout << " ";
cout << "|\n";
}
for(int i=0;i<rozm;i++)
{
gotoxy(x-rozm+i,y);
cout<<znak;
gotoxy(x-rozm+i, y+i);
cout<<znak;
gotoxy(x-i-1,y+rozm-1);
cout<<znak;
}
}
void sterowanie( int &x, int &y, int &rozm, int klaw)
{
//w lewo
if (klaw==75)
{
x--;
}
//w prawo
else
if (klaw==77)
{
x++;
}
//dol
if (klaw==80)
{
y++;
}
//gora
if (klaw==72)
{
y--;
}
//zwiekszanie
if (klaw==43)
{
rozm++;
}
//zmniejszanie
if (klaw==45)
{
rozm--;
}
}