Witam napisałem trochę snake'a.Musze poprawić nazwy funkcji,ale póki co wyszło coś takiego:

#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);
void enumsetting(int &x, int &y);



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

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

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

	}
	

}
void vizual(int &x, int &y)
{
	for (int i = 0; i < hight; ++i)
	{
		for (int j = 0; j < width; ++j)
		{
			cout << " ";
			if ((i == y) && (j == x))
			{
				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);
}

void enumsetting(int &x,int &y)
{
	if (_kbhit()) {
		switch (_getch())
		{
		case 'a':
			--x;
			break;
		case 'd':
			++x;
			break;
		case'w':
			--y;
			break;
		case 's':
			++y;
			break;
		default:
			break;



		}
	}
}

 

Wiem,że lepiej byłoby go zrobić na strukturach,ale mam polecenie działać na prostych tablicach itp.Doszedłem do czegoś takiego i ma to ręce i nogi.Zrobilem rysowanie ramki w innej funkcji,żeby nie było migania,wydaję mi się to dobry pomysł,ale jak skompilujecie ten program,to ramki są ucięte,pewnie gdzieś źle zrobiłem to rysowanie,ale wydaję mi się,że jest to poprawne.Drugim moim problemem jest to,że nie wiem jak zrobić,żebym nie musiał ciągle wciskać przycisku,klikam raz i potem wąż sam powinien się poruszać:Myślałem,że _kbhit() jest od tego.