Проверка границ игры со змеей

Я пишу простую консольную игру со змеями, когда змея ‘O’ попадает в стену ‘#’, игра окончена, но по какой-то причине она заканчивается за один раз до того, как стена слева направо, сверху и снизу работает нормально.

Я попытался отладить, напечатав y (я знаю, что это должен быть не совсем хороший дизайн для меня), и y отображает его положение как 0 непосредственно перед стеной, значит ли это, что стена равна -1? но это не может быть -1, потому что я установил i = 0, а не -1,

настолько взволнован относительно того, что происходит неправильно, также обратите внимание, что мой код довольно грязный, но я довольно новый и все еще изучаю хороший стиль

    void draw(){

system("cls");

bool notFirst = false;
bool notLast = false;

for(int i = 0; i <= HEIGHT+2; i++){

for(int j = 0; j <= WIDTH+2; j++){

if(i > 0){
notFirst = false;
}

if(i < HEIGHT+2){

notLast = false;
}

if(i == 0 && j <= WIDTH-1){

cout << "#"; // top wall
notFirst = true;
}

if(i == HEIGHT+2 && j <= WIDTH-2){

cout << "#"; // bottom wall
notLast = true;
}

if(j == 0 && i != 0){

cout << "#"; // #
}
if(j == WIDTH-1){

cout << "#";
}
if(x == i && y == j){

if(x == 0 || x == HEIGHT+2){

gameOver = true;
}
if(y == 0){

gameOver = true;
}
cout << y; // DEBUG
cout << "O";
}
else if(fruitX == i && fruitY == j){
cout << "F";
}
else{
if(!notFirst && !notLast){
cout << " ";
}
}
}
cout << endl;
}}int main()
{
setUp();
while(!gameOver){

draw();
input();
logic();
}
}

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …