Romb printing added
This commit is contained in:
parent
a1639ef042
commit
09170d04e1
71
triangle.c
71
triangle.c
@ -5,7 +5,9 @@
|
|||||||
|
|
||||||
void clrscr();
|
void clrscr();
|
||||||
bool strcomp(char *a, char *b);
|
bool strcomp(char *a, char *b);
|
||||||
|
void swap(char *a, char *b);
|
||||||
void drawTriangle(char type[3], int height, char symbol1, char symbol2);
|
void drawTriangle(char type[3], int height, char symbol1, char symbol2);
|
||||||
|
void drawRomb(char type[3], int height, char symbol1, char symbol2);
|
||||||
void drawLine(int freeSpace, int length, char symbol);
|
void drawLine(int freeSpace, int length, char symbol);
|
||||||
void getTriangleOptions(char *type);
|
void getTriangleOptions(char *type);
|
||||||
|
|
||||||
@ -63,12 +65,25 @@ int main()
|
|||||||
{
|
{
|
||||||
printf("Secondary symbol: ");
|
printf("Secondary symbol: ");
|
||||||
symbol2 = getchar();
|
symbol2 = getchar();
|
||||||
|
getchar();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Romb
|
||||||
|
bool romb;
|
||||||
|
printf("Make a romb? (y/n): ");
|
||||||
|
romb = getchar() == 'y';
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Drawing
|
Drawing
|
||||||
*/
|
*/
|
||||||
drawTriangle(type, height, symbol1, symbol2);
|
if (romb)
|
||||||
|
{
|
||||||
|
drawRomb(type, height, symbol1, symbol2);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
drawTriangle(type, height, symbol1, symbol2);
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -92,6 +107,13 @@ bool strcomp(char *a, char *b)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void swap(char *a, char *b)
|
||||||
|
{
|
||||||
|
*a = *a ^ *b;
|
||||||
|
*b = *b ^ *a;
|
||||||
|
*a = *a ^ *b;
|
||||||
|
}
|
||||||
|
|
||||||
void drawTriangle(char type[3], int height, char symbol1, char symbol2)
|
void drawTriangle(char type[3], int height, char symbol1, char symbol2)
|
||||||
{
|
{
|
||||||
if (strcomp(type, "so"))
|
if (strcomp(type, "so"))
|
||||||
@ -122,6 +144,53 @@ void drawTriangle(char type[3], int height, char symbol1, char symbol2)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void drawRomb(char type[3], int height, char symbol1, char symbol2)
|
||||||
|
{
|
||||||
|
if (strcomp(type, "so"))
|
||||||
|
{
|
||||||
|
symbol2 = symbol1;
|
||||||
|
}
|
||||||
|
else if (strcomp(type, "st"))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
printf("Wrong input, try angain\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < height / 2; i++)
|
||||||
|
{
|
||||||
|
char curSymbol;
|
||||||
|
if ((i + 1) % 2 == 1)
|
||||||
|
{
|
||||||
|
curSymbol = symbol1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
curSymbol = symbol2;
|
||||||
|
}
|
||||||
|
drawLine(height / 2 - i, i * 2 + 1, curSymbol);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (height % 2 == 0)
|
||||||
|
swap(&symbol1, &symbol2);
|
||||||
|
|
||||||
|
for (int i = height - (height / 2 + 1); i >= 0; i--)
|
||||||
|
{
|
||||||
|
char curSymbol;
|
||||||
|
if ((i + 1) % 2 == 1)
|
||||||
|
{
|
||||||
|
curSymbol = symbol1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
curSymbol = symbol2;
|
||||||
|
}
|
||||||
|
drawLine(height / 2 - i, i * 2 + 1, curSymbol);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void drawLine(int freeSpace, int length, char symbol)
|
void drawLine(int freeSpace, int length, char symbol)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < freeSpace; i++)
|
for (int i = 0; i < freeSpace; i++)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user