如何用C语言结构体数组实现贪吃蛇游戏功能?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2846个文字,预计阅读时间需要12分钟。
一、设计思路+本质上是结构数组,数组中存储了坐标x、y的值,通过一个循环将其打印出来。虫子的移动规则是不停地刷新位置,即不断更新x、y的值。所以,撞击墙壁、咬到自己只是数组x、y值的变化。
一、设计思路
蛇身本质上就是个结构数组,数组里存储了坐标x、y的值,再通过一个循环把它打印出来,蛇的移动则是不断地刷新重新打印。所以撞墙、咬到自己只是数组x、y值的简单比较。
二、用上的知识点
结构数组Windows API函数
三、具体实现
先来实现静态页面,把地图、初始蛇身、食物搞定。
这里需要用到Windows API的知识,也就是对控制台上坐标的修改
//这段代码来自参考1 void Pos(int x, int y) { COORD pos; HANDLE hOutput; pos.X = x; pos.Y = y; hOutput = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(hOutput, pos); }
COORD是Windows API中定义的一种结构,表示在控制台上的坐标
typedef struct _COORD { SHORT X; // horizontal coordinate SHORT Y; // vertical coordinate } COORD;
而代码中第七行则是获得屏幕缓冲区的句柄,第八行是直接修改光标位置的函数。
1.地图。
有了Pos()函数,打印一个框就不是问题了。
本文共计2846个文字,预计阅读时间需要12分钟。
一、设计思路+本质上是结构数组,数组中存储了坐标x、y的值,通过一个循环将其打印出来。虫子的移动规则是不停地刷新位置,即不断更新x、y的值。所以,撞击墙壁、咬到自己只是数组x、y值的变化。
一、设计思路
蛇身本质上就是个结构数组,数组里存储了坐标x、y的值,再通过一个循环把它打印出来,蛇的移动则是不断地刷新重新打印。所以撞墙、咬到自己只是数组x、y值的简单比较。
二、用上的知识点
结构数组Windows API函数
三、具体实现
先来实现静态页面,把地图、初始蛇身、食物搞定。
这里需要用到Windows API的知识,也就是对控制台上坐标的修改
//这段代码来自参考1 void Pos(int x, int y) { COORD pos; HANDLE hOutput; pos.X = x; pos.Y = y; hOutput = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(hOutput, pos); }
COORD是Windows API中定义的一种结构,表示在控制台上的坐标
typedef struct _COORD { SHORT X; // horizontal coordinate SHORT Y; // vertical coordinate } COORD;
而代码中第七行则是获得屏幕缓冲区的句柄,第八行是直接修改光标位置的函数。
1.地图。
有了Pos()函数,打印一个框就不是问题了。

