Mógłbyś spróbować ustawiać kursor tylko w te miejsca co będą zmieniane. W ten sposób raz namalowana ramka by nie migała. Czyściłbyś tylko te elementy mapy co zmieniają się w tym przypadku ogon i głowa węża.
#include<windows.h>
void setCursor(int x, int y)
{
COORD c;
c.X = x-1;
c.Y = y-1;
SetConsoleCursorPosition (GetStdHandle (STD_OUTPUT_HANDLE), c);
}
Tą funkcją możesz ustawić kursor w wybrane miejsce. Tylko byś musiał całą mechanikę rysowania od nowa napisać.
Sam kiedyś napisałem na tej zasadzie snake'a więc jak coś mogę ci pomóc :)