C语言贪吃蛇

#只讲逻辑不讲一些基础,基础大概过一遍就行#

project-one: 无 (gitee.com)仓库里面有原代码

一、基础工作

1、先将你的编译器换成32位环境,也就是x86,

如果是控制台主机窗口则管,若不是需要改为控制台主机窗口

打开运行窗口后点击那个,向下的箭头

再点击设置

默认终端应用程序改为控制台主机

2、创建三个文件,两个.c文件,一个.h文件。下图供参考

3、为了避免麻烦直接包含所需要用到的头文件

4、在你的 .c 文件中包含 .h的头文件

5、完成头文件里的预先设定

关于蛇结构体的成员的创建

6、进入你的主函数里,我门需要先干的几件事,随机数生成(生成食物时会用到)、修改窗口大小(方便后续的绘图)、本地化、隐藏光标,游戏运行函数

窗口大小

我的窗口大小差不多就是这么大,到绘制地图那里细讲大小的调整。

本地化的设置就需要头文件locale.h,可直接照抄影响不大

隐藏光标函数

名字是自己起的可更改,里面的函数就是系统自己的函数了,不能改名字,用到的头文件 windows.h

7、来到我的测试函数了

可以先不用管下面的代码,到时候你可按照自己逻辑设计

二、开始界面函数

我调用了两个函数实现开始界面

1、欢迎函数

需要说的只用一个光标定位函数,光标定位函数,指定光标的起始位置打印。

我这个写出来就是这样,有点歪了,你们可以微调,需要改什么注意光标的位置就行。

这个俩个任意键继续是因为那两个暂停的代码。

2、地图绘制

建议在excel表格中画出你整个整个窗口的大小,我这个因为一开始写的时候我就直接先画的游戏的地图,外加改了很多次仅供参,

值得注意的是一个 纵坐标对应两个横坐标

黄色和绿色分别是地图方块,如下图,绿色自己就是 y坐标(纵坐标),橙色是x坐标,因为一个汉字占两个空间,

光标定位函数是自己写的,直接用就完了。

我这里一共 36 个方块一个方块两个 x 坐标, x 和 y 都是从 0 开始的

所以x坐标到 70 结束包含 70

y坐标只看中间,为29个方块,一共是31个方块,最下面的 y坐标是30

三、初始化,及帮组信息打印

界面展示

函数主体展示

1、打印帮助信息

没什么好说,找到对应的位置打印出帮助信息,如果打印不打调整坐标,可能是超过窗口范围了。

2、创建蛇身体

身体是身体的符号,我做了区分的

先创建头,再创建4的身体,创建的时候连在一起,相当于是一个单链表,x左边得是2的倍数就行。

3、初始化食物

我的初始化食物函数,自带打印功能,所以在吃掉一个食物时可以直接调用

4、信息初始化

方向设为左,状态正常,一个食物分数1分,总分数 0,睡眠时间200毫米。

5、打印出蛇身

四、游戏运行逻辑

按键判断函数宏,如果这个键被按过返回1否则为0

1、按键判断

2、蛇每走一步我们需要干嘛,Snakemove();

1、连接节点

2、新节点判断

撞墙和撞自己修改状态就行。由end函数来审判

五、结束操作

end game()函数


末尾操作

相关推荐
No0d1es2 分钟前
电子学会青少年软件编程(C语言)等级考试试卷(四级)2025年12月
c语言·青少年编程·电子学会·四级·2025年
roman_日积跬步-终至千里5 分钟前
【Java并发】多线程/并发问题集
java·开发语言
皮皮哎哟6 分钟前
深入浅出双向链表与Linux内核链表 附数组链表核心区别解析
c语言·数据结构·内核链表·双向链表·循环链表·数组和链表的区别
调皮连续波(rsp_tiaopige)8 分钟前
毫米波雷达 : OpenRadar(Matlab版本)正式发布
开发语言·matlab
冷雨夜中漫步19 分钟前
python反转列表reverse()和[::-1]哪个效率更高
开发语言·python
rainbow688922 分钟前
Python面向对象编程与异常处理实战
开发语言·python
你撅嘴真丑44 分钟前
第八章 - 贪心法
开发语言·c++·算法
wanghu20241 小时前
AT_abc443_C~E题题解
c语言·算法
梵刹古音1 小时前
【C语言】 浮点型(实型)变量
c语言·开发语言·嵌入式
历程里程碑1 小时前
Linux 17 程序地址空间
linux·运维·服务器·开发语言·数据结构·笔记·排序算法