1
Hello, I’m doing a game of the cover, the game is already finished, however, I believe by the high frequency of system("cls")
, the console keeps flashing, and I wanted to know how to fix it
Here my void with the drawing:
void Draw(){ //Void com todo o Draw;
system("cls");
cout << endl;
for(int i = 0; i < largura+2; i++) //Printa primeira linha
cout << "#";
cout << endl;
for(int i = 0; i < altura; i++){
for(int j = 0; j < largura; j++){
obsPos = false; //Seta obsPos como falso
for(int q = 0; q < obsQuantidade; q++){
if(obstaculoY[q] == i && obstaculoX[q] == j){ //Verifica se o obstaculo está naquela posição, caso esteja obsPos é setado para true;
obsPos = true;
}
}
if(j == 0) //Printa paredes
cout << "#";
if (i == y && j == x){ //Printa cabeça da cobra
setConsoleColour(DARK_GREEN);
cout << "O";
setConsoleColour(WHITE);
}
else if (i == FRUTAY && j == FRUTAX) //Printa fruta
{
setConsoleColour(BRIGHT_RED);
cout << "*";
setConsoleColour(WHITE);
}
else if(obsPos == true){ //Printa o obstaculo com a condição do obsPos como true
cout << "@";
}
else{
bool printar = false; //Criando variavel para dar print no corpo da cobra
for(int k = 0; k < rabo; k++){
if(tailX[k] == j && tailY[k] == i){ //Para cada vez que o k for menor que o valor do rabo verificar se ele é igual a um espaço da cobra
setConsoleColour(BRIGHT_GREEN);
cout << "o"; //Caso seja printa "o"
setConsoleColour(WHITE);
printar = true; //Caso não coloca variavel printar como true
}
}
if(!printar){ //Caso printar seja falso coloca espaço em branco
cout << " ";
}
}
if(j == largura-1) //Printa paredes da direita
cout << "#";
}
cout << endl;
}
Dude, I don’t think there’s a way - after all, you’re using the console to print characters. If it bothers you, you have to use a graphical library.
– Leonardo Alves Machado