1.贪吃蛇原理
贪吃蛇是很有趣的小游戏,小时候玩的挺多的。它的实现原理是一个队列,蛇移动的操作是在蛇头某个方向增加一个方块,蛇尾去除一个方块,再显示即可。蛇增长的操作是在队列尾部插入方块,再显示即可。蛇身的显示操作即队列的顺序读取。
2.蛇类
先看一下运行截图吧!
蛇的上下左右移动操作对应键盘的方向键。当蛇向一个方向移动时,蛇的相对方向的运动控制键被屏蔽,如蛇向左移动时,右转向按钮无法响应,蛇只能通过“旋转”来运动到相对方向。空格键是 暂停/开始 按钮。
下面是蛇类,采用数组实现:
class SNAKE
{
//与外界交互的设置为public属性
public:
SNAKE( ); <span style="white-space:pre"> </span>//蛇身初始化函数
static void InitScreen(); //屏幕初始化
void turnUp(); //方向控制
void turnDown();
void turnRight();
void turnLeft();
//蛇类自身使用的方法,设为private属性
private:
void snakeShow(); //蛇的显示
void snakeDead(); //蛇的死亡判断
void generateFood(); //产生实物
//蛇身的节点
struct snakeNode
{
int x,y;
};
snakeNode snakeBody[80]; // 设置蛇身最大长度为80
int tail; //蛇的尾巴的数组索引值,方便对尾巴删除的操作
int foodx; //食物的坐标
int foody;
int foodNum; <span style="white-space:pre"> </span> //食物的数量
};
以上类在snake.h文件中,然后再snake.c文件中实现类的方法。再在main.c中自由调用,键盘控制的逻辑在主程序中,下载全部程序前往:c++贪吃蛇