Cześć mam pytanie jak przekształcić rysowanie tego kodu z prostokąta na znak ">" ? Bardzo prosiłbym o pomoc wcześniej próbowałem, ale cały czas nie wychodziło. Kod umieszczam poniżej:
#include "iostream"
#include <conio.h>
#include <Windows.h>
#include <cstdio>
#include <cstdlib>
#include <string>
#include <iomanip>
using namespace std;
void gotoxy(int x, int y);
int wherex();
int wherey();
void clreol();
void HideCursor();
/*-------------------------------------------------------------------*/
const int Esq = 27;
int main()
{
int x, y, x1, y1, bok, bok2, znak;
char klawisz;
cout << "Podaj znak ASCII" << endl;
cin >> znak;
x = 20; y = 20; bok = 4;
bok2 = bok;
do
{
system("cls");
x1 = x; y1 = y;
gotoxy(x1, y1);
or (int i = 1; i <= bok; i++) // gorna krawedz
cout << '*';
for (int i = 1; i <= bok - 2; i++) // boki
{
y1++;
gotoxy(x1, y1);
cout << (char)znak;
x1 = x + bok - 1;
gotoxy(x1, y1);
cout << (char)znak;
x1 = x;
}
y1++;
gotoxy(x1, y1);
for (int i = 1; i <= bok; i++) // dolna krawedz
cout << (char)znak;
HideCursor();
bool koniec = false;
klawisz = _getch();
switch (klawisz)
{
case '+': { bok = bok + 1;
bok2 = bok2 - 1;
x--; y--;
break; }
case '-': { bok = bok - 1; // zmniejszenie
x++; y++;
break; }
case 75:
{ koniec = true;
x--;
break; } // przesuniecie w lewo
case 77:
{ koniec = true;
x++;
break; } // przesuniecie w prawo
case 72:
{ koniec = true;
y--;
break; } // przesuniecie do gory
case 80:
{ koniec = true;
y++;
break; } // przesuniecie do dolu
case Esq: { break; } // wyjscie
}
} while (klawisz != Esq);
return 0;
}
//----------------------------------------------------------------------------
void gotoxy(int x, int y)
{
COORD c;
c.X = x;
c.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), c);
}
//----------------------------------------------------------------------------
int wherex()
{
CONSOLE_SCREEN_BUFFER_INFO csbi;
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbi);
return csbi.dwCursorPosition.X;
}
//----------------------------------------------------------------------------
int wherey()
{
CONSOLE_SCREEN_BUFFER_INFO csbi;
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbi);
return csbi.dwCursorPosition.Y;
}
//----------------------------------------------------------------------------
void HideCursor()
{
::HANDLE hConsoleOut = ::GetStdHandle(STD_OUTPUT_HANDLE);
::CONSOLE_CURSOR_INFO hCCI;
::GetConsoleCursorInfo(hConsoleOut, &hCCI);
hCCI.bVisible = FALSE;
::SetConsoleCursorInfo(hConsoleOut, &hCCI);
}
//----------------------------------------------------------------------------
void clreol()
{
int x, y;
x = wherex();
y = wherey();
gotoxy(x, y);
for (int i = x; i <= 79; i++)
cout << " ";
gotoxy(x, y);
}
void up(unsigned x, unsigned y, int znak) // zadeklarowanie funkcji rysującej górną część figury z wartościami nieujemnymi
{
for (unsigned i = y - 1; i <= y; --i)
{
for (unsigned j = 0; j <= x + i; ++j) cout << ' ';
cout << (char)znak;
}
}
void down(unsigned x, unsigned y, int znak) // zadeklarowanie funkcji rysującej górną część figury z wartościami nieujemnymi
{
for (unsigned i = 0; i < y; ++i)
{
for (unsigned j = 0; j <= x + i; ++j) cout << ' ';
cout << (char)znak;
}
}