C++ 当在蛇游戏中打印障碍物时,如何解决边界问题?
这是我第一次尝试制作蛇类游戏。蛇可以移动和吃东西。游戏运行良好。现在我尝试在游戏中添加障碍物。但是当障碍物被打印出来时,右侧边框向右移动。为什么边框会变形?我需要在draw函数中进行哪些更改才能使边框不移动C++ 当在蛇游戏中打印障碍物时,如何解决边界问题?,c++,codeblocks,C++,Codeblocks,这是我第一次尝试制作蛇类游戏。蛇可以移动和吃东西。游戏运行良好。现在我尝试在游戏中添加障碍物。但是当障碍物被打印出来时,右侧边框向右移动。为什么边框会变形?我需要在draw函数中进行哪些更改才能使边框不移动 void draw() { system("CLS"); for(int i=0;i<width+2;i++) cout<<"#"; cout<<endl; for(int i=0;i<h
void draw()
{
system("CLS");
for(int i=0;i<width+2;i++)
cout<<"#";
cout<<endl;
for(int i=0;i<height;i++)
{
for(int j=0;j<width;j++)
{
if(j==0)
cout<<"#";
if(i==y && j==x)
cout<<"O";//snake
else if(i==fruitY && j==fruitX)
cout<<"@";//fruit
else if(i==obY && j==obY)
cout<<"=====";//obstacle
else
{
bool print =false;
for(int k=0;k < ntail ;k++)
{
if(tailX[k]==j && tailY[k]==i)
{
cout<<"O";
print=true;
}
}
if(!print)
cout<<" ";
}
if(j==width-1)
cout<<"#";
}
cout<<endl;
}
for(int i =0;i<width+2;i++)
cout<<"#";
cout<<endl;
cout<<"Score:"<<score<<endl;
}
void draw()
{
系统(“CLS”);
对于(int i=0;i当你这样做时
else if (i == obY && j == obY)
cout << "=====";
else如果(i==obY&&j==obY)
您是否需要提取并提供一个。此外,请一致地格式化代码,最好使用自动工具。您正在为一个障碍打印5个字符,为其他所有内容打印1个字符……您希望发生什么?水平蛇会发生什么?如果绘制正确,您可能希望重用该代码位。只需打印障碍物即可像你做其他事情一样,一次只扮演一个角色
else if (i == obY && j == obY)
cout << "=====";
else if (i == obY && j == obY)
{
cout << "=====";
j += 4
}