Rysowanie kody ASCII

0

Otóż mam problem z ograniczeniem rysowania co do okna które ma wymiary 46x79 znaków. Chodzi mi o to aby po najechaniu na np 79 znak moja zmienna x zmniejszała się o jeden ale no nie wychodzi mi to a już chwilkę nad tym siedzę

inline void rysuj (char znak, int rozm , int OX , int OY)
{
	system("cls");
	
	//dół
	for (int i=rozm; i>0 ; i--)
	{
		int x,y;
		x=i+OX;
		y=46-i+OY;
		gotoxy (x,y );
		cout<<znak;
		if(y<46 ) OY++;
		if(x<0) OX++;
	}
	//środek
	for(int i=1; i<= rozm ; i++)
	{
		int x,y;
		x=(rozm+i)+OX;
		y=(46-rozm)+OY;
		gotoxy (x ,y);
		cout<<znak;
		if (x>79) OX--;
	}
	//góra 
	for (int i=rozm; i>0 ; i--)
	{
		int x,y;
		x=((rozm +1)- i )+OX;
		y=((46-rozm +1)-i)+OY;
		gotoxy(x,y ); 
			cout<<znak;
		if (y>46) OY--;
		if (x<0) OX++;
	}
	
	HideCursor();

}
 
0

na najechanie na znak 79 to bedzie

x == 79

jezeli chcesz by po przekroczeniu 78 zawsze mniejszalo o 1 (czyli 79 takze wchodzi do tego zakresu) wtedy robisz

x > 78

chyba ze chcesz zeby od tego momentu zawsze sie zmniejszalo to robisz ustawiasz sobie jakas flage typu

bool zmniejsz

na wartosc true

0

no i tak już też próbowałem ale po najechaniu na ten znak rysowanie się sypie

0

Może lepiej powiedź co chcesz osiągnąć?

0

Chodzi mi o to żeby rysowana figura nie wyjeżdżała mi poza ekran

0

Przecież rysujesz standardową figurę, nie?

0

Rysuję coś takiego

x
x
xxx
x
x

gdzie ten dolny X jest w lewym dolnym ekranie. No i nie mogę zrobić tego żeby figura mi nie wyjeżdżała poza krawędzie ekranu konsoli który ma 46x79 znaków

0

panie to jest kpina

http://4programmers.net/Forum/C_i_C++/223274-c++_rysowanie_w_konsoli?p=980801#id980801

dostales juz rozwiazania (w tym gotowca) a Ty nadal to samo.

1 użytkowników online, w tym zalogowanych: 0, gości: 1