如何在蛇游戏中改变方向[关闭]
Posted
技术标签:
【中文标题】如何在蛇游戏中改变方向[关闭]【英文标题】:How to change direction in snake game [closed] 【发布时间】:2014-04-02 20:35:46 【问题描述】:我有这个代码,是蛇游戏的一部分 当你按下一个键时,它必须向下,但是垂直,一开始我的蛇是水平的,当我按下一个键时它会下降,但不是垂直,它是水平下降,这不是真的,怎么能我解决这个问题?
#include <iostream>
#include <vector>
#include <conio.h>
#include <windows.h>
#include <stdio.h>
using namespace std;
void gotoxy(int eex, int eey)
COORD coord;
coord.X = eex;
coord.Y = eey;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
int main()
int x=0,y=10,lx=0,ly=0;
for(int i=10;;i++)
gotoxy(i,y);
cout<<"***";
Sleep(100);
lx=i;
ly=y;
gotoxy(lx,ly);
cout<<" ";
if(kbhit())
for(int j=ly;;j++)
gotoxy(lx,j);
cout<<"***";
Sleep(100);
ly=j;
gotoxy(lx,ly);
cout<<" ";
return 0;
【问题讨论】:
您的代码不可读。请格式化(每行缩进)以便于阅读。 如果你在 Stack Overflow 上做同样的事情,那么你最终会得到相同的响应。无论您发布多少次,该问题都将被关闭并删除。 我的帖子获得了 23 次浏览但没有答案 您的帖子已被删除。你删了吗? @Ahmadreza Again:要检查发生了什么,请使用调试器,放置感兴趣的断点,然后逐步执行... 【参考方案1】:您的问题是“如何修复此代码”,而不是“给我正确的代码”。我不会给你正确的代码。我会回答原来的问题。这个问题的答案是这样的:
问题是你做了cout << "***"
。这将始终水平绘制三个星号。该命令将永远不会做任何其他事情。要垂直绘制项目,或者蛇可能做出的任何形状,您必须在各自的坐标上分别绘制每个星号。
除了只有一个坐标(变量x
和y
),您还必须拥有蛇的每一部分的坐标。使用std::queue<COORD>
记住蛇的每个部分的坐标。使蛇移动在队列的最后一项上绘制空间(“”)并从队列的后面删除最后一项(pop_back
),并在队列的前面添加新的项目(push_front
)并在此处画星号(“*”)。
当你想让蛇变大时,不要从队列中删除项目,而只是添加新的。
【讨论】:
给我正确的代码 plzzzzzzzzzzzzzzzz :(((((( @Ahmadreza 网上有代码。尝试用谷歌搜索 C++ 蛇。 @Ahmadreza '给我正确的代码 plzzzzzzzzzzzzzzz :(((((') 如上所述请不要在这里调试和修复你的代码。如果你遇到您的代码中的某些特定点,您不理解该行为,请在您的问题中突出显示这一点并描述问题!以上是关于如何在蛇游戏中改变方向[关闭]的主要内容,如果未能解决你的问题,请参考以下文章