Gra Snake - rysowanie zawartości tak, aby ekran nie migał

0

Witam pracuje nad prostym snakiem,bez użycia struktur itp.Chce zrobić to tak,że najpierw rysuje ramki i rysowanie węża będzie w innej funkcji,żeby nie migało,dodatkowo potem przy dodawaniu będę w ogonie dawaj znak spacji,też zeby nie migało,bo widziałem,że sporo osób ma ten problem i to według mnie będzie działać dobrze,ale mam taki problem,że po narysowaniu ramek muszę się cofnąć do początku konsoli.Używam tej funkcji:

void gotoxy(int x, int y)
{
	static HANDLE h = NULL;
	if (!h)
		h = GetStdHandle(STD_OUTPUT_HANDLE);
	COORD c = { x, y };
	SetConsoleCursorPosition(h, c); 

Ale coś nie działa cały kod wygląda tak:

 
#include <iostream>
#include <conio.h>
#include <windows.h>
#define hight 20
#define width 20


using namespace std;

void map();
void vizual(int x,int y);
void gotoxy(int x, int y);

int main()
{
	int x = 10;
	int y = 10;
	bool gameover = false;
	map();
    gotoxy(0, 0);
    vizual(x,y);
	getchar();
}

void map()
{
	for (int i = 0; i < width; ++i)
	{
		cout << "#";
	}
	cout << endl;
	for (int i = 0; i < hight; ++i)
	{
		cout << "#";
		for (int j = 0; j < width-2; ++j)
		{
			cout << " ";
		}
		cout << "#" << endl;
	}

	for (int i = 0; i < width; ++i)
	{
		cout << "#";

	}
	

}
void vizual(int x, int y)
{
	for (int i = 0; i < width; ++i)
	{
		for (int j = 0; j < hight; ++j)
		{
			cout << " ";
			if ((i == x) && (j == y))
			{
				cout << 'O';
			}
		}
		cout << endl;
	}
}
void gotoxy(int x, int y)
{
	static HANDLE h = NULL;
	if (!h)
		h = GetStdHandle(STD_OUTPUT_HANDLE);
	COORD c = { x, y };
	SetConsoleCursorPosition(h, c);
}
0
juras1413 napisał(a):

Ale coś nie działa cały kod wygląda tak:

Staraj się pisać pytanie tak, żeby osoba czytająca kod, wiedziała jakiego błędu ma szukać... coś nie działa to nie jest wystarczający opis problemu.

juras1413 napisał(a):

Witam pracuje nad prostym snakiem,bez użycia struktur itp.

Uwierz mi... z użyciem struktur itp. snake będzie jeszcze prostszy, a jego programowanie przyjemniejsze.

Wiele uprościłoby też skorzystanie z jakiejś biblioteki do obsługi terminala. Może PDCurses się nada... http://pdcurses.sourceforge.net/

0

Ale własnie ten program ma się opierać na podstawach i głownie tablicach.Problem jest taki,że ucina mi ramki z lewej górnej i prawej strony,dół został.

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