Skocz do zawartości
LyanVu

Drobny problem.

Rekomendowane odpowiedzi

Witam, otóż wpierw pokażę ten oto kawałek kodu:

void kMiasto::OdswiezMapa()
{
for (int y = 0; y < 5; ++y)
{
	cout << endl;
	for (int x = 0; x < 9; ++x)
	{
				switch (mMapa[y][x])
				{
				case pl_Wolne:
				{
								 cout << "##\n##";

								 break;
				}
				}
		}
	}
}

 

i chodzi mi tu o to aby pl_Wolne wyswietliło jako

"##

##" .

Z tym, że \n lub endl przechodzi do nastepnej linii i wtedy nastepne pl_Wolne wypisują się pod tym, natomiast chciałbym aby następne pl_Wolne wyświetliło się zaraz obok w tej powyższej formie ;p Jest na to jakiś sposób?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Logiczne, że jak dajesz przejście do kolejnej linii to nie wyświetli się zaraz pod, a tam gdzie się linia zaczyna - "\n" to też znak.

 

Możesz wyjść poza standard C i użyć biblioteki conio.h, wewnątrz której masz funkcję gotoxy().

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

ja nie chcę, żeby się wyświetliło zaraz pod tylko zaraz obok(tzn na prawo) również taki sam czteroznakowy prostokąt z "hasztagów"

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

No to co to za problem? To samo - gotoxy(). Ale wiedz, że nie będziesz multiplatformowy, bo to jest only for Windows. Możesz też się pobawić z New Curses, to jest i pod Linuxa, i pod Windę i pod Jabłko. ;)

 

Poza tym, drugi sposób, wyświetlać fragmentami.

Możesz wykonać dwa razy ten sam "algorytm" rysowania dla dwóch linii. :)

 

EDIT:

Wiesz jak tego gotoxy() się używa, nie? :)

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Myslalem o tym podwojnym rysowaniu ale to się nie sprawdzi w moim programiku. Teraz patrzę to gotoxy to na jakiej zasadzie są rozmieszone kordy x,y w consoli? Tak jakby to byla jedna wielka dwuwymiarowa tablica?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Ok, dzięki :) Jakoś pobawię się tym, może dam radę ;p

 

@EDIT:

Gdyby ktoś szukał takiego rozwiązania to napisałem coś takiego(działa :D ):

void gotoxy(int x, int y)
{
COORD c;
c.X = x - 1;
c.Y = y - 1;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), c);
}

int main()
{
for (int y = 0, y2 = 1; y < 6; ++y, y2 += 2)
{
	gotoxy(1,y2);
	for (int x = 0, x2 = 1; x < 6; ++x, x2 += 2)
	{
		cout << "##";
		gotoxy(x2, y2+1);
		cout << "##";
		gotoxy(x2 + 2, y2);
	}
}
_getch();
}

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
@EDIT:

Gdyby ktoś szukał takiego rozwiązania to napisałem coś takiego(działa :D ):

void gotoxy(int x, int y)
{
COORD c;
c.X = x - 1;
c.Y = y - 1;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), c);
}

Nie lubię tego rozwiązania od twórców borlandowego "conio". Bo nie indeksuje pozycji kursora od '0', co dla języka C/C++/etc jest rzeczą naturalną i powszechnie stosowaną, odwrotną co do Pascalowego '1'.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się tutaj.

Zaloguj się tutaj

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×