我正在写一个简单的控制台蛇游戏,当'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();
}
}